<?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>236744</bug_id>
          
          <creation_ts>2022-02-16 17:25:19 -0800</creation_ts>
          <short_desc>REGRESSION(r289580): [ iOS macOS ] TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory is a constant timeout</short_desc>
          <delta_ts>2022-06-09 00:46:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <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>236305</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dawn Morningstar">Morningstar</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>koivisto</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842618</commentid>
    <comment_count>0</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-16 17:25:19 -0800</bug_when>
    <thetext>TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory 

Is a constant timeout on macOS and iOS15.

HISTORY:
https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842619</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 17:25:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/89058397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842632</commentid>
    <comment_count>2</comment_count>
    <who name="Dawn Morningstar">Morningstar</who>
    <bug_when>2022-02-16 17:56:28 -0800</bug_when>
    <thetext>Timeout was reproduced at Monterey Debug TOT using the following test:
run-api-tests TestWebKitAPI.IPCTestingAPI.CanReceiveSharedMemory

Timeout was also reproduced at r289580 but not r289579.

Changes in r289580 likely caused this timeout.
https://trac.webkit.org/changeset/289580/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844934</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2022-02-22 16:44:52 -0800</bug_when>
    <thetext>Disabled test in r290340</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845920</commentid>
    <comment_count>4</comment_count>
      <attachid>453179</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-24 23:58:17 -0800</bug_when>
    <thetext>Created attachment 453179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845930</commentid>
    <comment_count>5</comment_count>
      <attachid>453181</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 00:20:50 -0800</bug_when>
    <thetext>Created attachment 453181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845931</commentid>
    <comment_count>6</comment_count>
      <attachid>453182</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 00:24:37 -0800</bug_when>
    <thetext>Created attachment 453182
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845976</commentid>
    <comment_count>7</comment_count>
      <attachid>453182</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-02-25 05:02:22 -0800</bug_when>
    <thetext>Comment on attachment 453182
Patch

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

&gt; LayoutTests/ipc/stream-sync-reply-shared-memory.html:11
&gt; +    const streamTesterID = 447;

Does this number have some significance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845981</commentid>
    <comment_count>8</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 05:11:30 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #7)
&gt; &gt; LayoutTests/ipc/stream-sync-reply-shared-memory.html:11
&gt; &gt; +    const streamTesterID = 447;
&gt; 
&gt; Does this number have some significance?

No, the test just picks one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845986</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-25 05:27:55 -0800</bug_when>
    <thetext>Committed r290505 (247790@main): &lt;https://commits.webkit.org/247790@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453182.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453179</attachid>
            <date>2022-02-24 23:58:17 -0800</date>
            <delta_ts>2022-02-25 00:32:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236744-20220225095815.patch</filename>
            <type>text/plain</type>
            <size>38790</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMzg2NmMzNDA3OTJiNzRh
NGViNDM1Yzg1YTM0MjkxZGJkMWQzNTcuLjI3NDcxNzFhMjI1MDU4MjQ2ZTgzYmZhNDljMmE1MDcz
Y2QyOGNjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDItMjQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyODk1
ODApOiBbIGlPUyBtYWNPUyBdIFRlc3RXZWJLaXRBUEkuSVBDVGVzdGluZ0FQSS5DYW5SZWNlaXZl
U2hhcmVkTWVtb3J5IGlzIGEgY29uc3RhbnQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB0ZXN0ZXIgaW50ZXJmYWNlIGZvciB0
ZXN0aW5nIElQQyBzdHJlYW0gZmVhdHVyZXMuCisgICAgICAgIEJlZm9yZSwgVGVzdFdlYktpdEFQ
SS5JUENUZXN0aW5nQVBJLkNhblJlY2VpdmVTaGFyZWRNZW1vcnkgd291bGQgdGVzdCB0aGUgZmVh
dHVyZSBvZgorICAgICAgICAiY2FuIHJlcGx5IHN0cmVhbSBzeW5jIG1lc3NhZ2Ugd2l0aCBzaGFy
ZWQgbWVtb3J5IiBieSB1c2luZyBhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQKKyAgICAgICAgbWVz
c2FnZSB0aGF0IGRpZCBzby4gSG93ZXZlciwgd2hlbiB0aGUgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCB3YXMgY2hhbmdlZCB0byB1c2UKKyAgICAgICAgZGlmZmVyZW50IHN0YXRlZ3ksIHRoaXMgdGVz
dCBzdG9wcGVkIHdvcmtpbmcgd2l0aG91dCBjb21waWxlIGZhaWx1cmUgYXMgdGhlCisgICAgICAg
IG1lc3NhZ2UgdGVzdGluZyBpcyBkb25lIGN1cnJlbnRseSBhdCBKUyBsZXZlbC4KKworICAgICAg
ICBBZnRlciwgdGhlIGRlZGljYXRlZCB0ZXN0aW5nIGludGVyZmFjZSBJUENTdHJlYW1UZXN0ZXIg
aGFzIGRlZGljYXRlZCBtZXNzYWdlIGZvcgorICAgICAgICB0ZXN0aW5nIHRoaXMgZmVhdHVyZS4g
VGhlIHRlc3QgaXMgbW92ZWQgdG8gTGF5b3V0VGVzdHMvaXBjIGFuZCBtYWRlIHNvIHRoYXQKKyAg
ICAgICAgaXQgdGVzdHMgdGhlIGZlYXR1cmUgaW4gYWxsIGN1cnJlbnRseSB0ZXN0YWJsZSBwcm9j
ZXNzZXMgV1AgdXNlcyAoR1BVLCBOZXR3b3JraW5nLCBVSSkuCisKKyAgICAgICAgSVBDVGVzdGlu
Z0FQSSBpcyBhbWVuZGVkIHRvIHJldHVybiB0aGUgYWxsIHBvc3NpYmxlIHRlc3RhYmxlIHByb2Nl
c3MgbmFtZXMsIHNvCisgICAgICAgIHRoZSAuaHRtbCB0ZXN0IGNhbiB3b3JrIGV2ZW4gd2hlbiBF
TkFCTEUoR1BVX1BST0NFU1MpIGlzIHRvZ2dsZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAg
ICh0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKiBTaGFy
ZWQvSVBDVGVzdGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGVyOjpjcmVhdGVTdHJl
YW1UZXN0ZXIpOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0ZXI6OnJlbGVhc2VTdHJlYW1UZXN0
ZXIpOgorICAgICAgICAqIFNoYXJlZC9JUENUZXN0ZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvSVBD
VGVzdGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGlu
Z0FQSTo6SlNJUEM6OnN0YXRpY1ZhbHVlcyk6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3RpbmdB
UEk6OnByb2Nlc3NUYXJnZXRGcm9tQXJndW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0
aW5nQVBJOjpKU0lQQzo6cHJvY2Vzc1RhcmdldHMpOgorCiAyMDIyLTAyLTI0ICBLaW1tbyBLaW5u
dW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIsIFVzZXJNZWRpYVNhbXBsZUNhcHR1cmVNYW5hZ2VyUHJveHkgY3JlYXRlIHRoZSBS
ZW1vdGVWaWRlb0ZyYW1lIGluIGluY29ycmVjdGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCA5ZWZh
N2QyNjA5NWNiZWIwNmM0YjhkNzc1ODllYTQzMzc5ZGI4MjVmLi42YWQ0Y2M0ZDBhYzE2NmVjNzlh
M2FjYzViOTU0MGI3N2U2MTMzMjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTIxOSw2ICsyMTks
NyBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL1JUQ0RhdGFDaGFubmVsUmVtb3RlTWFuYWdlclByb3h5CiAKICAgICBTaGFyZWQvQXV4aWxp
YXJ5UHJvY2VzcworICAgIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXIKICAgICBTaGFyZWQvSVBDVGVz
dGVyCiAgICAgU2hhcmVkL1dlYkNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDNjZDM5MWY5ZmJkNjhjZmZlOGU5MGRkNWEz
ZjQ4NzZkMzdlNzVlMDAuLjdmODYwNzM1NDM4NDEyZTRiMzRiZmM1YjBiYjRhNWY3YTAzZDA1ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAg
LTEyNiw2ICsxMjYsOCBAQCAkKFBST0pFQ1RfRElSKS9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9T
aGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBncmFkZUxpc3QudHh0CiskKFBST0pFQ1RfRElSKS9T
aGFyZWQvSVBDU3RyZWFtVGVzdGVyLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9TaGFyZWQv
SVBDU3RyZWFtVGVzdGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9J
UENUZXN0ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dAppbmRleCBjMjZiN2M3MDNiNGQ4MzQwOTViOGE1NWJhZjJkOGE4OTc1ZWU5ZDNmLi4zNGVmOTI5
Zjc4MzlkNzFkMTg5MzI1NTVmYjBhM2I1YzcwZDQxMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTQ2LDYgKzQ2LDEyIEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvR1BVUHJvY2Vzc01lc3NhZ2Vz
UmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0dQ
VVByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQvR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9HUFVQcm9jZXNzUHJveHlNZXNzYWdl
c1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9J
UENTdHJlYW1UZXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0L0lQQ1N0cmVhbVRlc3Rlck1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvSVBDU3RyZWFtVGVzdGVyTWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
SVBDU3RyZWFtVGVzdGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0lQQ1N0cmVhbVRlc3RlclByb3h5TWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9JUENTdHJlYW1U
ZXN0ZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0L0lQQ1Rlc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvSVBDVGVzdGVyTWVzc2FnZXMuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9JUENUZXN0ZXJNZXNzYWdl
c1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDhkYjEyODEzZWJiNzlk
OTUzY2E3MzlmNGQyZjhhZjliOGU1N2Q4NWYuLmI5NzUxYmQwNTBhNzA1NzJjODcyNjc1MDE5NTc5
YzYxNTA4NzE0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFr
ZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE1MSw2ICsxNTEs
OCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVu
dGljYXRpb25NYW5hZ2VyIFwKIAlTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9uIFwKKwlTaGFyZWQvSVBD
U3RyZWFtVGVzdGVyIFwKKwlTaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkgXAogCVNoYXJlZC9J
UENUZXN0ZXIgXAogCVVJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5IFwKIAlVSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNTNjM2Q5NjBkM2Jh
N2NiZDhkYWY4Y2IwNWE2YjI1MjVkNTViZmRjNC4uOGU4YWVmNzFhNTdkMDVmMTU0MDk4NGJmYTI5
NjFiM2E0OWNkNjFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0zMjYsNiArMzI2LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVj
bGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6R2VvbG9jYXRpb25JZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6R3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktp
dDo6SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlJywKKyAgICAgICAgJ1dlYktpdDo6SVBDU3RyZWFt
VGVzdGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJ
RCcsCiAgICAgICAgICdXZWJLaXQ6OkxlZ2FjeUN1c3RvbVByb3RvY29sSUQnLAogICAgICAgICAn
V2ViS2l0OjpMaWJXZWJSVENSZXNvbHZlcklkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0lQQ1N0cmVhbVRlc3Rlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBiZTE2NDZjMTVmNWZmOTVlN2EyZWFj
M2IzODc4MDZkOGM4Yzg3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0lQQ1N0cmVhbVRlc3Rlci5jcHAKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXIuaCIKKworI2lmIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCisjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIklQQ1N0
cmVhbVRlc3Rlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiSVBDU3RyZWFtVGVzdGVyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIklQQ1Rlc3Rlci5oIgorI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rp
b25Xb3JrUXVldWUuaCIKKyNpbmNsdWRlICJTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitSZWZQdHI8SVBDU3RyZWFtVGVzdGVyPiBJUENTdHJlYW1UZXN0
ZXI6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQ1N0cmVhbVRlc3Rlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFt
KQoreworICAgIGF1dG8gdGVzdGVyID0gYWRvcHRSZWYoKm5ldyBJUENTdHJlYW1UZXN0ZXIoY29u
bmVjdGlvbiwgaWRlbnRpZmllciwgV1RGTW92ZShzdHJlYW0pKSk7CisgICAgdGVzdGVyLT5pbml0
aWFsaXplKCk7CisgICAgcmV0dXJuIHRlc3RlcjsKK30KKworSVBDU3RyZWFtVGVzdGVyOjpJUENT
dHJlYW1UZXN0ZXIoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUENTdHJlYW1UZXN0ZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKKyAgICA6IG1fd29ya1F1ZXVlKElQQzo6U3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTo6Y3Jl
YXRlKCJJUENTdHJlYW1UZXN0ZXIgd29yayBxdWV1ZSIpKQorICAgICwgbV9zdHJlYW1Db25uZWN0
aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb24sIFdURk1v
dmUoc3RyZWFtKSwgd29ya1F1ZXVlKCkpKQorICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIp
Cit7Cit9CisKK0lQQ1N0cmVhbVRlc3Rlcjo6fklQQ1N0cmVhbVRlc3RlcigpID0gZGVmYXVsdDsK
Kwordm9pZCBJUENTdHJlYW1UZXN0ZXI6OmluaXRpYWxpemUoKQoreworICAgIG1fc3RyZWFtQ29u
bmVjdGlvbi0+c3RhcnRSZWNlaXZpbmdNZXNzYWdlcygqdGhpcywgTWVzc2FnZXM6OklQQ1N0cmVh
bVRlc3Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7
CisgICAgd29ya1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXNdIHsKKyAgICAgICAgbV9zdHJlYW1Db25u
ZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6SVBDU3RyZWFtVGVzdGVyUHJveHk6
Oldhc0NyZWF0ZWQod29ya1F1ZXVlKCkud2FrZVVwU2VtYXBob3JlKCkpLCBtX2lkZW50aWZpZXIp
OworICAgIH0pOworfQorCit2b2lkIElQQ1N0cmVhbVRlc3Rlcjo6c3RvcExpc3RlbmluZ0ZvcklQ
QyhSZWY8SVBDU3RyZWFtVGVzdGVyPiYmIHJlZkZyb21Db25uZWN0aW9uKQoreworICAgIG1fc3Ry
ZWFtQ29ubmVjdGlvbi0+c3RvcFJlY2VpdmluZ01lc3NhZ2VzKE1lc3NhZ2VzOjpJUENTdHJlYW1U
ZXN0ZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOwor
ICAgIHdvcmtRdWV1ZSgpLnN0b3BBbmRXYWl0Rm9yQ29tcGxldGlvbigpOworfQorCit2b2lkIElQ
Q1N0cmVhbVRlc3Rlcjo6c3luY01lc3NhZ2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxKHVpbnQzMl90
IGJ5dGVDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaGFyZWRNZW1vcnk6OklQQ0hhbmRs
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZXN1bHQgPSBbJl0oKSAtPiBT
aGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7CisgICAgICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OmFsbG9jYXRlKGJ5dGVDb3VudCk7CisgICAgICAgIGlmICghc2hh
cmVkTWVtb3J5KQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAgICAgU2hhcmVkTWVtb3J5
OjpIYW5kbGUgaGFuZGxlOworICAgICAgICBpZiAoIXNoYXJlZE1lbW9yeS0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSkpCisgICAgICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICBpZiAoaGFuZGxlLmlzTnVsbCgpKQorICAgICAgICAgICAg
cmV0dXJuIHsgfTsKKyAgICAgICAgdWludDhfdCogZGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Qq
PihzaGFyZWRNZW1vcnktPmRhdGEoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2hhcmVkTWVtb3J5LT5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGRhdGFbaV0gPSBpOworICAg
ICAgICByZXR1cm4geyBXVEZNb3ZlKGhhbmRsZSksIHNoYXJlZE1lbW9yeS0+c2l6ZSgpIH07Cisg
ICAgfSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7Cit9CisKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZlZGY5OTk0ZTk3MTI2NjFhMDdkM2ZmNTk3YTkzNjZhNTBkNGYxNTAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIuaApAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0
ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1
ZS5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VS
ZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKK2NsYXNzIFN0cmVhbVNlcnZlckNvbm5l
Y3Rpb247CitjbGFzcyBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOworY2xhc3MgU3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZTsKKworLy8gSW50ZXJmYWNlIHRvIHRlc3QgdmFyaW91cyBJUEMgc3RyZWFt
IHJlbGF0ZWQgYWN0aXZpdGllcy4KK2NsYXNzIElQQ1N0cmVhbVRlc3RlciBmaW5hbCA6IHB1Ymxp
YyBJUEM6OlN0cmVhbU1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZlB0
cjxJUENTdHJlYW1UZXN0ZXI+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mLCBJUENTdHJlYW1UZXN0
ZXJJZGVudGlmaWVyLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJik7CisgICAgdm9pZCBz
dG9wTGlzdGVuaW5nRm9ySVBDKFJlZjxJUENTdHJlYW1UZXN0ZXI+JiYgcmVmRnJvbUNvbm5lY3Rp
b24pOworCisgICAgLy8gSVBDOjpTdHJlYW1NZXNzYWdlUmVjZWl2ZXIgb3ZlcnJpZGVzLgorICAg
IHZvaWQgZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
QmFzZSYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworcHJpdmF0ZToKKyAgICBJUENTdHJlYW1UZXN0
ZXIoSVBDOjpDb25uZWN0aW9uJiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciwgSVBDOjpTdHJl
YW1Db25uZWN0aW9uQnVmZmVyJiYpOworICAgIH5JUENTdHJlYW1UZXN0ZXIoKTsKKyAgICB2b2lk
IGluaXRpYWxpemUoKTsKKyAgICBJUEM6OlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUmIHdvcmtR
dWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya1F1ZXVlOyB9CisKKyAgICAvLyBNZXNzYWdlcy4K
KyAgICB2b2lkIHN5bmNNZXNzYWdlUmV0dXJuaW5nU2hhcmVkTWVtb3J5MSh1aW50MzJfdCBieXRl
Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUpPiYm
KTsKKworICAgIGNvbnN0IFJlZjxJUEM6OlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWU+IG1fd29y
a1F1ZXVlOworICAgIGNvbnN0IFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3Ry
ZWFtQ29ubmVjdGlvbjsKKyAgICBjb25zdCBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKK307CisKKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9JUENTdHJlYW1UZXN0ZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9J
UENTdHJlYW1UZXN0ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMzMDU3ZWYzYjI2MzNlM2Yz
NTgzZGQxY2I2ODNmYjA1ZWExMzBjMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI5IEBACisjIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQorCittZXNzYWdlcyAtPiBJUENTdHJlYW1UZXN0ZXIgTm90UmVmQ291bnRlZCBTdHJl
YW0geworICAgIFN5bmNNZXNzYWdlUmV0dXJuaW5nU2hhcmVkTWVtb3J5MSh1aW50MzJfdCBieXRl
Q291bnQpIC0+IChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSkgU3luY2hy
b25vdXMgTm90U3RyZWFtRW5jb2RhYmxlUmVwbHkKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMx
MTVhMzljNTExZWVlYzFhZDVmYWEzNGYyY2NkYWUzNDZmMDI0YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvT2Jq
ZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBJUENTdHJlYW1U
ZXN0ZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVy
ID0gT2JqZWN0SWRlbnRpZmllcjxJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyVHlwZT47CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU4ODAwYTNkMzJiZDUxNGY0MjVhNDFiYmY3MTQwNGMyY2E0
OWFmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRl
c3RlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCisKK21l
c3NhZ2VzIC0+IElQQ1N0cmVhbVRlc3RlclByb3h5IE5vdFJlZkNvdW50ZWQgeworICAgIHZvaWQg
V2FzQ3JlYXRlZChJUEM6OlNlbWFwaG9yZSBzdHJlYW1XYWtlVXBTZW1hcGhvcmUpCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5jcHAKaW5kZXggYThkMjU3ZWM2NzM1ZjEwZGE1
OTU0ODMwMGNlNmZlM2YyY2RmOWJhMy4uMGQ1NzRiMGNjNTAzNDEzMzIxN2ZlMzlmMGIwNDBiNTc5
ZDJmYzFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUgIklQQ1N0cmVhbVRlc3Rlci5oIgogCiAjaW5j
bHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGRsZmNuLmg+CkBAIC0xMzAsNiArMTMxLDIwIEBAIHZv
aWQgSVBDVGVzdGVyOjpzdG9wTWVzc2FnZVRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiBjb21wbGV0aW9uSGFuZGxlcikKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCit2b2lk
IElQQ1Rlc3Rlcjo6Y3JlYXRlU3RyZWFtVGVzdGVyKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJiBzdHJlYW0pCit7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3N0cmVhbVRl
c3RlcnMuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7CisgICAgICAgIHJldHVybiBJUEM6OlNjb3Bl
ZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8SVBDU3RyZWFtVGVzdGVyPiB7IElQQ1N0cmVhbVRl
c3Rlcjo6Y3JlYXRlKGNvbm5lY3Rpb24sIGlkZW50aWZpZXIsIFdURk1vdmUoc3RyZWFtKSkgfTsK
KyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50
cnkgfHwgaXNUZXN0aW5nSVBDKCkpOworfQorCit2b2lkIElQQ1Rlc3Rlcjo6cmVsZWFzZVN0cmVh
bVRlc3RlcihJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3N0cmVhbVRlc3Rl
cnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZv
aWQgSVBDVGVzdGVyOjpzdG9wSWZOZWVkZWQoKQogewogICAgIGlmIChtX3Rlc3RRdWV1ZSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9JUENUZXN0ZXIuaAppbmRleCBlYTQ5MzM1NmQ0MzkyYzNmYTdiNWY3ZjVlMmI1
NjRmNjUzMzI3ZmQyLi41MjNlZWNkMGRiNjZhMWVhNTdjZDNjM2UxODM1NDVkYWYyYzhhYTgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaApAQCAtMjYsOCArMjYsMTYgQEAKICNwcmFnbWEgb25j
ZQogCiAKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVR
dWV1ZS5oIgorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgIlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXIuaCIKKyNpbmNsdWRlICJTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmgiCisj
aW5jbHVkZSAiU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiU3RyZWFtU2VydmVy
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00
MCw2ICs0OCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gYW5kIGV4cG9zZXMgYnVncyB1bmRl
cm5lYXRoLgogYm9vbCBpc1Rlc3RpbmdJUEMoKTsKIAorY2xhc3MgSVBDU3RyZWFtVGVzdGVyOwor
CisvLyBNYWluIHRlc3QgaW50ZXJmYWNlIGZvciBpbml0aWF0aW5nIHZhcmlvdXMgSVBDIHRlc3Qg
YWN0aXZpdGllcy4KIGNsYXNzIElQQ1Rlc3RlciBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgSVBDVGVzdGVyKCk7CkBAIC01MiwxMSArNjMsMTYgQEAg
cHJpdmF0ZToKICAgICAvLyBNZXNzYWdlcy4KICAgICB2b2lkIHN0YXJ0TWVzc2FnZVRlc3Rpbmco
SVBDOjpDb25uZWN0aW9uJiwgU3RyaW5nJiYgZHJpdmVyTmFtZSk7CiAgICAgdm9pZCBzdG9wTWVz
c2FnZVRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPik7CisgICAgdm9pZCBjcmVhdGVT
dHJlYW1UZXN0ZXIoSVBDOjpDb25uZWN0aW9uJiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciwg
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYpOworICAgIHZvaWQgcmVsZWFzZVN0cmVhbVRl
c3RlcihJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgdm9pZCBzdG9wSWZOZWVkZWQoKTsKIAogICAgIFJlZlB0cjxXb3JrUXVldWU+
IG1fdGVzdFF1ZXVlOwogICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1fc2hvdWxkU3RvcCB7IGZhbHNl
IH07CisKKyAgICB1c2luZyBTdHJlYW1UZXN0ZXJNYXAgPSBIYXNoTWFwPElQQ1N0cmVhbVRlc3Rl
cklkZW50aWZpZXIsIElQQzo6U2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZTxJUENTdHJl
YW1UZXN0ZXI+PjsKKyAgICBTdHJlYW1UZXN0ZXJNYXAgbV9zdHJlYW1UZXN0ZXJzOwogfTsKIAog
I2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbgppbmRleCA3
NjVhOTllOThlNTBkZWIzY2Q1MTlkMWE0N2M4YzJlNTQ0NzI0NWFkLi5jZDI0NGZiMGUxNjkxNDQ4
NmY3YjAwNmI4Njc4Y2Y3MGRlNTIzOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9JUENUZXN0ZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVz
dGVyLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw4IEBACiBtZXNzYWdlcyAtPiBJUENUZXN0ZXIg
Tm90UmVmQ291bnRlZCB7CiAgICAgU3RhcnRNZXNzYWdlVGVzdGluZyhTdHJpbmcgZHJpdmVyTmFt
ZSkgV2FudHNDb25uZWN0aW9uCiAgICAgU3RvcE1lc3NhZ2VUZXN0aW5nKCkgLT4gKCkgU3luY2hy
b25vdXMKKyAgICBDcmVhdGVTdHJlYW1UZXN0ZXIoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXJJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciBzdHJlYW0pIFdh
bnRzQ29ubmVjdGlvbgorICAgIFJlbGVhc2VTdHJlYW1UZXN0ZXIoV2ViS2l0OjpJUENTdHJlYW1U
ZXN0ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVy
L01lZGlhRm9ybWF0UmVhZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZv
cm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKaW5kZXggZjg5NTdiM2I4ZTQxODYyM2Iz
YjU2YzAxMjE1NzAwNWJkY2Y2Mjg5OC4uMWMzMzhjNmEzZThjYmVmYjRjNmU0YmFmNTAyMWIxNTUy
NTQ4ZmJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0
UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFj
a1ByaXZhdGUuaD4KICNpbmNsdWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRh
dGlvbi5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKaW5kZXggZjc4MTMzNmU1ZWM4MjMyMGZhMDU1ZmZhNzNmOTEwMWRj
ODhkNjQ4MS4uOTJhNThiMGJkN2NiNTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC0yMzEsNiArMjMxLDcgQEAgU2hhcmVkL0VkaXRvclN0YXRlLmNwcAogU2hhcmVk
L0ZvbnRJbmZvLmNwcAogU2hhcmVkL0ZyYW1lSW5mb0RhdGEuY3BwCiBTaGFyZWQvSW5zcGVjdG9y
RXh0ZW5zaW9uVHlwZXMuY3BwCitTaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNwcAogU2hhcmVkL0lQ
Q1Rlc3Rlci5jcHAKIFNoYXJlZC9MYXllclRyZWVDb250ZXh0LmNwcAogU2hhcmVkL0xvYWRQYXJh
bWV0ZXJzLmNwcApAQCAtODY4LDYgKzg2OSw3IEBAIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCiAKIFdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5
c3RlbVByb3h5LmNwcAogCitJUENTdHJlYW1UZXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBJUENU
ZXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5
TWVzc2FnZVJlY2VpdmVyLmNwcAogUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNTk1Njg1NWFjNTliZjdhNWQxN2IyOTFmYTRlMWYxMmUxZWE3ZDViYS4uNjA3
MzI4ZTA2YmNjY2E0M2IyOWI1NWYwMTdkOWIxZWYxMzQ1NGUwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzM4LDYgKzEzMzgsNyBA
QAogCQk3QkFCMTExMDI1REQwMkIzMDA4RkM0NzkgLyogU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2Vp
dmVRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0JBQjExMEYyNUREMDJCMjAwOEZDNDc5IC8qIFNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVl
dWUuaCAqLzsgfTsKIAkJN0JDRjcwREUyNjE1RDA2RTAwRTRGQjcwIC8qIFNjb3BlZFJlbmRlcmlu
Z1Jlc291cmNlc1JlcXVlc3RDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCQ0Y3MENCMjYxNDkzNUUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJp
bmdSZXNvdXJjZXNSZXF1ZXN0Q29jb2EubW0gKi87IH07CiAJCTdCRERBMzE5Mjc0N0MwNDAwMDM4
NjU5RSAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IH07CisJ
CTdCRTM3RjkzMjdDN0NBNTEwMDdBNkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkUzN0Y5MjI3
QzdDNTE4MDA3QTZDRDMgLyogSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllci5oICovOyB9OwogCQk3
QzA2NUYyQzFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5
cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzA2
NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVz
LmggKi87IH07CiAJCTdDMTM1QUE5MTczQjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdpbkluZm9ybWF0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzEz
NUFBNzE3M0IwQkNBMDA1ODZBRTIgLyogV0tQbHVnaW5JbmZvcm1hdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMUJBMzNFMUE0QTBFNjAw
MDQzRTI0OSAvKiBBUElEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzFCQTMzQzFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFy
eS5oICovOyB9OwpAQCAtNTE3Nyw2ICs1MTc4LDkgQEAKIAkJN0JEREEzM0YyNzU2NTJFQTAwMzg2
NTlFIC8qIEF1eGlsaWFyeVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QkREQTM0MDI3NTY1MkVBMDAzODY1OUUgLyogQXV4aWxpYXJ5UHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXhpbGlhcnlQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
N0JFMzdGNkYyN0IxNDc1RjAwN0E2Q0QzIC8qIFRocmVhZFNhZmVPYmplY3RIZWFwLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRocmVhZFNhZmVPYmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdCRTM3RjkyMjdDN0M1MTgwMDdBNkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGOTQyN0M3Q0Q1MTAwN0E2Q0QzIC8qIElQQ1N0
cmVhbVRlc3Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJUENTdHJlYW1UZXN0ZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JFMzdGOTUyN0M3Q0Q5MDAwN0E2Q0QzIC8qIElQQ1N0cmVh
bVRlc3Rlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJUENTdHJlYW1UZXN0ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkU3MjY1NzI1NzRGNjcyMDBFODVEOTggLyogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVk
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JFNzI2NjgyNTc2ODBFRjAwRTg1
RDk4IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDMDY1RjI5MUM4Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJEYXRhVHlwZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTczMDIsNiArNzMwNiw5IEBACiAJCQkJQkNDRjZCMjMxMkM5M0U3QTAwOEY5
QzM1IC8qIEltYWdlT3B0aW9ucy5oICovLAogCQkJCTk5OUI3RUQ4MjU1MEU0QTgwMEY0NTBBNCAv
KiBJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5jcHAgKi8sCiAJCQkJOTlCRTNCMTYyNTQzM0I5NDAw
QzY1NTFDIC8qIEluc3BlY3RvckV4dGVuc2lvblR5cGVzLmggKi8sCisJCQkJN0JFMzdGOTUyN0M3
Q0Q5MDAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3Rlci5jcHAgKi8sCisJCQkJN0JFMzdGOTQyN0M3
Q0Q1MTAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3Rlci5oICovLAorCQkJCTdCRTM3RjkyMjdDN0M1
MTgwMDdBNkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJN0I1MEU5
N0YyNzcxRjZDRTAwM0RBQUM0IC8qIElQQ1Rlc3Rlci5jcHAgKi8sCiAJCQkJN0I1MEU5ODAyNzcx
RjZDRjAwM0RBQUM0IC8qIElQQ1Rlc3Rlci5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3
QUY2NSAvKiBMYXllclRyZWVDb250ZXh0LmNwcCAqLywKQEAgLTEzMjQ0LDYgKzEzMjUxLDcgQEAK
IAkJCQlDNUJDRTVERjFDNTA3NjZBMDBDREUzRkEgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJENEQyQzgxMURGNjBCRjMwMDJFQjEwQyAv
KiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTMx
RjYwQTQyNUNDN0RCOTAwQUYxNEY0IC8qIElQQ1NlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJN0JFMzdGOTMyN0M3Q0E1MTAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTlCNDc5MDhGMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0Jp
bmRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUU5MDQ5QTI3QkNCOUQ0MDA5MjlFN0UgLyogTGF1bmNoU2VydmljZXNTUEkuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVz
dGluZ0FQSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5n
QVBJLmNwcAppbmRleCA0M2U0NTE3OTNmMDUxOGNlYTVmZWEzNTI4NTlhZDQ2NDI2MDdmZjIxLi43
M2ZiMzEwMWUyNmM2YzZmMWQyNWNjMWFhY2Q0YzEzYTEyMTc3NzhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNjEsNiAr
NjEsMTIgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIG5hbWVzcGFjZSBJUENUZXN0aW5nQVBJIHsK
IAorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nlc3NUYXJnZXROYW1lVUkgPSAiVUkiX3M7Cisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nlc3NUYXJn
ZXROYW1lR1BVID0gIkdQVSJfczsKKyNlbmRpZgorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nl
c3NUYXJnZXROYW1lTmV0d29ya2luZyA9ICJOZXR3b3JraW5nIl9zOworCiBzdGF0aWMgc3RkOjpv
cHRpb25hbDx1aW50NjRfdD4gZGVzdGluYXRpb25JREZyb21Bcmd1bWVudChKU0M6OkpTR2xvYmFs
T2JqZWN0KiwgSlNWYWx1ZVJlZiwgSlNWYWx1ZVJlZiopOwogc3RhdGljIHN0ZDo6b3B0aW9uYWw8
dWludDY0X3Q+IG1lc3NhZ2VJREZyb21Bcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZVJlZiwgSlNWYWx1ZVJlZiopOwogc3RhdGljIEpTQzo6SlNPYmplY3QqIGpzUmVzdWx0RnJv
bVJlcGx5RGVjb2RlcihKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSVBDOjpNZXNzYWdlTmFtZSwgSVBD
OjpEZWNvZGVyJik7CkBAIC0yNzAsNiArMjc2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSlNW
YWx1ZVJlZiByZXRyaWV2ZUlEKEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHVpbnQ2NF90KEpTSVBD
Jik+Jik7CiAKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiBtZXNzYWdlcyhKU0NvbnRleHRSZWYsIEpT
T2JqZWN0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKKyAgICBzdGF0
aWMgSlNWYWx1ZVJlZiBwcm9jZXNzVGFyZ2V0cyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBK
U1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKIAogICAgIFdlYWtQdHI8V2ViUGFn
ZT4gbV93ZWJQYWdlOwogICAgIFdlYWtQdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CkBAIC05NDEs
NiArOTQ4LDcgQEAgY29uc3QgSlNTdGF0aWNWYWx1ZSogSlNJUEM6OnN0YXRpY1ZhbHVlcygpCiAg
ICAgICAgIHsgInNlc3Npb25JRCIsIHNlc3Npb25JRCwgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIHwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB9LAogICAgICAgICB7ICJ3
ZWJQYWdlUHJveHlJRCIsIHdlYlBhZ2VQcm94eUlELCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCiAgICAgICAgIHsgIm1l
c3NhZ2VzIiwgbWVzc2FnZXMsIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfSwKKyAgICAgICAgeyAicHJvY2Vzc1RhcmdldHMi
LCBwcm9jZXNzVGFyZ2V0cywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB9LAogICAgICAgICB7IDAsIDAsIDAsIDAgfQogICAg
IH07CiAgICAgcmV0dXJuIHZhbHVlczsKQEAgLTk1MywxMyArOTYxLDEzIEBAIHN0YXRpYyBSZWZQ
dHI8SVBDOjpDb25uZWN0aW9uPiBwcm9jZXNzVGFyZ2V0RnJvbUFyZ3VtZW50KEpTQzo6SlNHbG9i
YWxPYmplY3QqIGdsCiAgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAotICAgIGlmIChuYW1lID09ICJVSSIpCisgICAgaWYgKG5hbWUgPT0gcHJvY2Vz
c1RhcmdldE5hbWVVSSkKICAgICAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCk7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgIGlm
IChuYW1lID09ICJHUFUiKQorICAgIGlmIChuYW1lID09IHByb2Nlc3NUYXJnZXROYW1lR1BVKQog
ICAgICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwogI2VuZGlmCi0gICAgaWYgKG5hbWUgPT0gIk5ldHdv
cmtpbmciKQorICAgIGlmIChuYW1lID09IHByb2Nlc3NUYXJnZXROYW1lTmV0d29ya2luZykKICAg
ICAgICAgcmV0dXJuICZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCk7CiAKICAgICAqZXhjZXB0aW9uID0gdG9SZWYoSlND
OjpjcmVhdGVUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCAiVGFyZ2V0IHByb2Nlc3MgbXVzdCBiZSBV
SSwgR1BVLCBvciBOZXR3b3JraW5nIl9zKSk7CkBAIC0xODU2LDYgKzE4NjQsMzIgQEAgSlNWYWx1
ZVJlZiBKU0lQQzo6bWVzc2FnZXMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIEpTU3RyaW4KICAgICByZXR1cm4gdG9SZWYodm0sIG1lc3NhZ2VzT2JqZWN0KTsK
IH0KIAorSlNWYWx1ZVJlZiBKU0lQQzo6cHJvY2Vzc1RhcmdldHMoSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCit7CisgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKKyAgICBh
dXRvJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
KHZtKTsKKworICAgIGF1dG8qIGltcGwgPSB0b1dyYXBwZWQoY29udGV4dCwgdGhpc09iamVjdCk7
CisgICAgaWYgKCFpbXBsKSB7CisgICAgICAgICpleGNlcHRpb24gPSB0b1JlZihKU0M6OmNyZWF0
ZVR5cGVFcnJvcih0b0pTKGNvbnRleHQpLCAiV3JvbmcgdHlwZSJfcykpOworICAgICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgfQorICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBKU0M6OkpTT2JqZWN0KiBwcm9jZXNzVGFy
Z2V0c09iamVjdCA9IEpTQzo6Y29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxw
dHIpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpKTsKKyAgICBpbnQgaW5kZXggPSAwOworICAgIHByb2Nlc3NUYXJnZXRzT2JqZWN0
LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4KyssIEpTQzo6anNTdHJpbmcodm0s
IHByb2Nlc3NUYXJnZXROYW1lVUkpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSk7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIHByb2Nlc3NUYXJnZXRzT2JqZWN0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGlu
ZGV4KyssIEpTQzo6anNTdHJpbmcodm0sIHByb2Nlc3NUYXJnZXROYW1lR1BVKSk7CisgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOwor
I2VuZGlmCisgICAgcHJvY2Vzc1RhcmdldHNPYmplY3QtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaW5kZXgrKywgSlNDOjpqc1N0cmluZyh2bSwgcHJvY2Vzc1RhcmdldE5hbWVOZXR3b3Jr
aW5nKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCkpOworICAgIHJldHVybiB0b1JlZih2bSwgcHJvY2Vzc1RhcmdldHNPYmplY3Qp
OworfQorCiBKU01lc3NhZ2VMaXN0ZW5lcjo6SlNNZXNzYWdlTGlzdGVuZXIoSlNJUEMmIGpzSVBD
LCBUeXBlIHR5cGUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBjYWxsYmFjaykK
ICAgICA6IG1fanNJUEMoanNJUEMpCiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2M2UxMTI5ZTA2ODhhNjQ5OTJm
MzhlM2I0OWU1OTI1YjJhN2FmYjY0Li5mYzU5NDAwMjZiNDk0NWEyNWY5YzE2YjEwMTllYzE3MjNh
M2YyZjgzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMjQgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyODk1ODApOiBbIGlPUyBtYWNPUyBd
IFRlc3RXZWJLaXRBUEkuSVBDVGVzdGluZ0FQSS5DYW5SZWNlaXZlU2hhcmVkTWVtb3J5IGlzIGEg
Y29uc3RhbnQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM2NzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEku
bW06CisKIDIwMjItMDItMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZG9wdCBtb3JlIHdpZGVseSB0aGUgbmV3IFVSTCBjb25zdHJ1Y3RvciB0aGF0IHRha2Vz
IGluIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0lQQ1Rlc3RpbmdBUEkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0lQQ1Rlc3RpbmdBUEkubW0KaW5kZXggYzQ5MjFiZmJiYjhiOTZhM2ZiOTFlZTNiMWY2
N2I2YTc4MzU3ODlhMy4uZDVjZTE4MzQxM2RlOTA0ZjY5NWE1YzMwYTg2MTU2OTVmNTVlMGMzZiAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0
aW5nQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBD
VGVzdGluZ0FQSS5tbQpAQCAtOTYsNiArOTYsOCBAQCBURVNUKElQQ1Rlc3RpbmdBUEksIElzRGlz
YWJsZWRCeURlZmF1bHQpCiAgICAgRVhQRUNUX1NUUkVRKFthbGVydE1lc3NhZ2UgVVRGOFN0cmlu
Z10sICJ1bmRlZmluZWQiKTsKIH0KIAorLy8gTm90ZTogVGhlcmUgYXJlIG1vcmUgSVBDIHRlc3Rz
IHVzaW5nIElQQyB0ZXN0aW5nIEFQSSBpbiBgTGF5b3V0VGVzdHMvaXBjYC4KKwogI2lmIEVOQUJM
RShJUENfVEVTVElOR19BUEkpCiAKIHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3Jl
YXRlV2ViVmlld1dpdGhJUENUZXN0aW5nQVBJKCkKQEAgLTMwOSwzOCArMzExLDYgQEAgVEVTVChJ
UENUZXN0aW5nQVBJLCBDYW5SZWNlaXZlSVBDU2VtYXBob3JlKQogICAgIEVYUEVDVF9TVFJFUShb
YWxlcnRNZXNzYWdlIFVURjhTdHJpbmddLCAiMTpTZW1hcGhvcmU6ZmFsc2UiKTsKIH0KIAotLy8g
RklYTUU6IFJlLWVuYWJsZSB0aGlzIHRlc3Qgb25jZSB3ZWJraXQub3JnL2IvMjM2NzQ0IGlzIHJl
c29sdmVkLgotVEVTVChJUENUZXN0aW5nQVBJLCBESVNBQkxFRF9DYW5SZWNlaXZlU2hhcmVkTWVt
b3J5KQotewotICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXdXaXRoSVBDVGVzdGluZ0FQ
SSgpOwotCi0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tJUENUZXN0aW5nQVBJRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKLSAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKLQotICAgIGF1dG8gaHRtbCA9IEAiPCFET0NUWVBFIGh0bWw+IgotICAgICAgICAiPHNj
cmlwdD4iCi0gICAgICAgICJjb25zdCBidWZmZXJTaXplID0gMSA8PCAxNjsiCi0gICAgICAgICJj
b25zdCBzdHJlYW1Db25uZWN0aW9uID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24o
J0dQVScsIGJ1ZmZlclNpemUpOyIKLSAgICAgICAgIklQQy5zZW5kTWVzc2FnZSgnR1BVJywgMCwg
SVBDLm1lc3NhZ2VzLkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NfQ3JlYXRlUmVuZGVyaW5nQmFj
a2VuZC5uYW1lLCBbIgotICAgICAgICAiICAgIHsgdHlwZTogJ1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRDcmVhdGlvblBhcmFtZXRlcnMnLCAnaWRlbnRpZmllcic6IDEyMywgJ3BhZ2VQcm94eUlEJzog
SVBDLndlYlBhZ2VQcm94eUlELCAncGFnZUlEJzogSVBDLnBhZ2VJRCB9LCIKLSAgICAgICAgIiAg
ICB7IHR5cGU6ICdTdHJlYW1Db25uZWN0aW9uQnVmZmVyJywgdmFsdWU6IHN0cmVhbUNvbm5lY3Rp
b24uc3RyZWFtQnVmZmVyKCkgfSwiCi0gICAgICAgICJdKTsiCi0gICAgICAgICJjb25zdCBhcmd1
bWVudHMgPSBJUEMud2FpdEZvck1lc3NhZ2UoJ0dQVScsIDEyMywgSVBDLm1lc3NhZ2VzLlJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eV9EaWRDcmVhdGVXYWtlVXBTZW1hcGhvcmVGb3JEaXNwbGF5
TGlzdFN0cmVhbS5uYW1lLCAxMDApOyIKLSAgICAgICAgInN0cmVhbUNvbm5lY3Rpb24uc2V0V2Fr
ZVVwU2VtYXBob3JlKGFyZ3VtZW50c1swXS52YWx1ZSk7IgotICAgICAgICAiY29uc3QgcmVzdWx0
ID0gc3RyZWFtQ29ubmVjdGlvbi5zZW5kU3luY01lc3NhZ2UoMTIzLCBJUEMubWVzc2FnZXMuUmVt
b3RlUmVuZGVyaW5nQmFja2VuZF9VcGRhdGVTaGFyZWRNZW1vcnlGb3JHZXRQaXhlbEJ1ZmZlci5u
YW1lLCAxMDAsIFt7dHlwZTogJ3VpbnQzMl90JywgdmFsdWU6IDh9XSk7IgotICAgICAgICAiYWxl
cnQocmVzdWx0LmFyZ3VtZW50cy5sZW5ndGgpOyIKLSAgICAgICAgIjwvc2NyaXB0PiI7Ci0KLSAg
ICBkb25lID0gZmFsc2U7Ci0gICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
Omh0bWxdOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Ci0KLSAgICBFWFBF
Q1RfRVEoW2FsZXJ0TWVzc2FnZSBpbnRWYWx1ZV0sIDEpOwotICAgIEVYUEVDVF9TVFJFUShbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZmlyc3RSZXBseSA9IHJlc3VsdC5h
cmd1bWVudHNbMF07IGZpcnN0UmVwbHkudHlwZSJdLlVURjhTdHJpbmcsICJTaGFyZWRNZW1vcnki
KTsKLSAgICBFWFBFQ1RfU1RSRVEoW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImZpcnN0UmVwbHkucHJvdGVjdGlvbiJdLlVURjhTdHJpbmcsICJSZWFkT25seSIpOwotICAg
IEVYUEVDVF9TVFJFUShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiQXJy
YXkuZnJvbShuZXcgVWludDhBcnJheShmaXJzdFJlcGx5LnZhbHVlLnJlYWRCeXRlcygwLCA4KSkp
LnRvU3RyaW5nKCkiXS5VVEY4U3RyaW5nLCAiMCwwLDAsMCwwLDAsMCwwIik7Ci19Ci0KICNlbmRp
ZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCiAKIFRFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuQ3JlYXRl
SVBDU2VtYXBob3JlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJl
cGx5LXNoYXJlZC1tZW1vcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1z
eW5jLXJlcGx5LXNoYXJlZC1tZW1vcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNWU4OTQy
MWY2OTUzNWUwN2Q0MWY3YzBmMmY3MWU3NTllOGU1ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9yeS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdCB0aGF0IHN0cmVhbSBzeW5jIG1lc3NhZ2UgY2Fu
IHJlcGx5IHdpdGggc2hhcmVkIG1lbW9yeQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pcGMv
c3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9yeS5odG1sIGIvTGF5b3V0VGVzdHMvaXBjL3N0
cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTM3NGIyYWNm
NzM4ZmU2NTk5OThjNmYwNTNmZDYxZDRiODVlOGU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbApAQCAtMCwwICsx
LDM1IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIElQQ1Rlc3Rp
bmdBUElFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0IHRoYXQgc3RyZWFtIHN5bmMgbWVz
c2FnZSBjYW4gcmVwbHkgd2l0aCBzaGFyZWQgbWVtb3J5PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitzZXR1cCh7IHNpbmdsZV90ZXN0OiB0cnVlIH0pOworaWYgKHdpbmRvdy5JUEMpIHsgLy8gRm9y
IGNvbXBpbGVzIHdpdGggIUVOQUJMRShJUENfVEVTVElOR19BUEkpCisgICAgY29uc3QgZGVmYXVs
dFRpbWVvdXQgPSAxMDAwOworICAgIGNvbnN0IGJ1ZmZlclNpemUgPSAxMDA7CisgICAgY29uc3Qg
c3RyZWFtVGVzdGVySUQgPSA0NDc7CisgICAgZm9yIChjb25zdCBwcm9jZXNzVGFyZ2V0IG9mIElQ
Qy5wcm9jZXNzVGFyZ2V0cykgeworICAgICAgICBjb25zdCBzdHJlYW1Db25uZWN0aW9uID0gSVBD
LmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24ocHJvY2Vzc1RhcmdldCwgYnVmZmVyU2l6ZSk7
CisgICAgICAgIElQQy5zZW5kTWVzc2FnZShwcm9jZXNzVGFyZ2V0LCAwLCBJUEMubWVzc2FnZXMu
SVBDVGVzdGVyX0NyZWF0ZVN0cmVhbVRlc3Rlci5uYW1lLCBbCisgICAgICAgICAgICB7IHR5cGU6
ICd1aW50NjRfdCcsIHZhbHVlOiBzdHJlYW1UZXN0ZXJJRCB9LAorICAgICAgICAgICAgeyB0eXBl
OiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1Db25uZWN0aW9uLnN0cmVh
bUJ1ZmZlcigpIH0sCisgICAgICAgIF0pOworICAgICAgICBjb25zdCBhcmd1bWVudHMgPSBJUEMu
d2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVySUQsIElQQy5tZXNzYWdl
cy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRlZmF1bHRUaW1lb3V0KTsK
KyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhvcmUoYXJndW1lbnRzWzBd
LnZhbHVlKTsKKworICAgICAgICAvLyBUZXN0IHN0YXJ0cyBoZXJlLgorICAgICAgICB0cnkgewor
ICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RyZWFtQ29ubmVjdGlvbi5zZW5kU3luY01lc3Nh
Z2Uoc3RyZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJfU3luY01lc3Nh
Z2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxLm5hbWUsIGRlZmF1bHRUaW1lb3V0LCBbe3R5cGU6ICd1
aW50MzJfdCcsIHZhbHVlOiA4fV0pOworICAgICAgICAgICAgY29uc3QgZmlyc3RSZXBseSA9IHJl
c3VsdC5hcmd1bWVudHNbMF07CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGZpcnN0UmVwbHku
dHlwZSwgIlNoYXJlZE1lbW9yeSIsIGBmb3IgJHtwcm9jZXNzVGFyZ2V0fWApOworICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhmaXJzdFJlcGx5LnByb3RlY3Rpb24sICJSZWFkT25seSIsIGBmb3Ig
JHtwcm9jZXNzVGFyZ2V0fWApOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhBcnJheS5mcm9t
KG5ldyBVaW50OEFycmF5KGZpcnN0UmVwbHkudmFsdWUucmVhZEJ5dGVzKDAsIDgpKSkudG9TdHJp
bmcoKSwgIjAsMSwyLDMsNCw1LDYsNyIsIGBmb3IgJHtwcm9jZXNzVGFyZ2V0fWApOworICAgICAg
ICB9IGZpbmFsbHkgeworICAgICAgICAgICAgSVBDLnNlbmRTeW5jTWVzc2FnZShwcm9jZXNzVGFy
Z2V0LCAwLCBJUEMubWVzc2FnZXMuSVBDVGVzdGVyX1JlbGVhc2VTdHJlYW1UZXN0ZXIubmFtZSwg
ZGVmYXVsdFRpbWVvdXQsIFsgeyB0eXBlOiAndWludDY0X3QnLCB2YWx1ZTogc3RyZWFtVGVzdGVy
SUQgfSBdKTsKKyAgICAgICAgfQorICAgIH0KK30KK2RvbmUoKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="480466"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453181</attachid>
            <date>2022-02-25 00:20:50 -0800</date>
            <delta_ts>2022-02-25 00:24:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236744-20220225102048.patch</filename>
            <type>text/plain</type>
            <size>40806</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMzg2NmMzNDA3OTJiNzRh
NGViNDM1Yzg1YTM0MjkxZGJkMWQzNTcuLjZhMDA2MjhlZGQ3YWMwZjAzZGY1YzAyY2E5NzAyNmJl
YzBlOTRhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjItMDItMjQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyODk1
ODApOiBbIGlPUyBtYWNPUyBdIFRlc3RXZWJLaXRBUEkuSVBDVGVzdGluZ0FQSS5DYW5SZWNlaXZl
U2hhcmVkTWVtb3J5IGlzIGEgY29uc3RhbnQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB0ZXN0ZXIgaW50ZXJmYWNlIGZvciB0
ZXN0aW5nIElQQyBzdHJlYW0gZmVhdHVyZXMuCisKKyAgICAgICAgQmVmb3JlLCBUZXN0V2ViS2l0
QVBJLklQQ1Rlc3RpbmdBUEkuQ2FuUmVjZWl2ZVNoYXJlZE1lbW9yeSB3b3VsZCB0ZXN0IHRoZSBm
ZWF0dXJlIG9mCisgICAgICAgICJjYW4gcmVwbHkgc3RyZWFtIHN5bmMgbWVzc2FnZSB3aXRoIHNo
YXJlZCBtZW1vcnkiIGJ5IHVzaW5nIGEgUmVtb3RlUmVuZGVyaW5nQmFja2VuZAorICAgICAgICBt
ZXNzYWdlIHRoYXQgZGlkIHNvLiBIb3dldmVyLCB3aGVuIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIHdhcyBjaGFuZ2VkIHRvIHVzZSBhCisgICAgICAgIGRpZmZlcmVudCBzdGF0ZWd5LCB0aGlz
IHRlc3Qgc3RvcHBlZCB3b3JraW5nIHdpdGhvdXQgY29tcGlsZSBmYWlsdXJlLiBUaGUgSVBDIHRl
c3RpbmcKKyAgICAgICAgaXMgY3VycmVudGx5IGRvbmUgYXQgSlMgbGV2ZWwuCisKKyAgICAgICAg
QWZ0ZXIsIHRoZSBuZXcgZGVkaWNhdGVkIHRlc3RpbmcgaW50ZXJmYWNlIElQQ1N0cmVhbVRlc3Rl
ciBoYXMgZGVkaWNhdGVkIG1lc3NhZ2UgZm9yCisgICAgICAgIHRlc3RpbmcgdGhpcyBmZWF0dXJl
LiBUaGUgdGVzdCBpcyBtb3ZlZCB0byBMYXlvdXRUZXN0cy9pcGMgYW5kIG1hZGUgc28gdGhhdAor
ICAgICAgICBpdCB0ZXN0cyB0aGUgZmVhdHVyZSBpbiBhbGwgY3VycmVudGx5IHRlc3RhYmxlIHBy
b2Nlc3NlcyBXUCB1c2VzIChHUFUsIE5ldHdvcmtpbmcsIFVJKS4KKworICAgICAgICBJUENUZXN0
aW5nQVBJIGlzIGFtZW5kZWQgdG8gcmV0dXJuIHRoZSBhbGwgcG9zc2libGUgdGVzdGFibGUgcHJv
Y2VzcyBuYW1lcywgc28KKyAgICAgICAgdGhlIC5odG1sIHRlc3QgY2FuIHdvcmsgZXZlbiB3aGVu
IEVOQUJMRShHUFVfUFJPQ0VTUykgaXMgdG9nZ2xlZC4KKworICAgICAgICBUaGUgLmh0bWwgdGVz
dCBhbHNvIHBhc3NlcyB3aGVuICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKS4gQ3VycmVudGx5Cisg
ICAgICAgIEVOQUJMRV9JUENfVEVTVElOR19BUEkgPT0gKEFTQU5fRU5BQkxFRCB8fCAhZGVmaW5l
ZChOREVCVUcpKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgRS5nLiB0ZXN0IHRlc3RzIHNv
bWV0aGluZyBvbiBSZWxlYXNlK0FTQU4gb3IgRGVidWcuCisKKyAgICAgICAgSGF2aW5nIHRoZSB0
ZXN0IGluIC5odG1sIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gcnVuIHRoZSB0ZXN0IG9uIGlP
UyBkZXZpY2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICogU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OklQQ1N0cmVhbVRlc3Rlcjo6SVBDU3RyZWFtVGVzdGVyKToKKyAgICAg
ICAgKFdlYktpdDo6SVBDU3RyZWFtVGVzdGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktp
dDo6SVBDU3RyZWFtVGVzdGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktp
dDo6SVBDU3RyZWFtVGVzdGVyOjpzeW5jTWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEpOgor
ICAgICAgICAqIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvSVBDVGVzdGVyLmguCisgICAgICAgICogU2hhcmVkL0lQQ1N0cmVhbVRlc3Rl
ci5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVy
Lm1lc3NhZ2VzLmluLgorICAgICAgICAqIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVy
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5oLgorICAgICAg
ICAqIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLm1lc3NhZ2VzLmluLgorICAgICAgICAqIFNo
YXJlZC9JUENUZXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0ZXI6OmNyZWF0ZVN0
cmVhbVRlc3Rlcik6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3Rlcjo6cmVsZWFzZVN0cmVhbVRl
c3Rlcik6CisgICAgICAgICogU2hhcmVkL0lQQ1Rlc3Rlci5oOgorICAgICAgICAqIFNoYXJlZC9J
UENUZXN0ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJl
YWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0
aW5nQVBJOjpKU0lQQzo6c3RhdGljVmFsdWVzKToKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGlu
Z0FQSTo6cHJvY2Vzc1RhcmdldEZyb21Bcmd1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rl
c3RpbmdBUEk6OkpTSVBDOjpwcm9jZXNzVGFyZ2V0cyk6CisKIDIwMjItMDItMjQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlciwgVXNlck1lZGlhU2FtcGxlQ2FwdHVyZU1hbmFnZXJQcm94eSBjcmVhdGUgdGhl
IFJlbW90ZVZpZGVvRnJhbWUgaW4gaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDll
ZmE3ZDI2MDk1Y2JlYjA2YzRiOGQ3NzU4OWVhNDMzNzlkYjgyNWYuLjZhZDRjYzRkMGFjMTY2ZWM3
OWEzYWNjNWI5NTQwYjc3ZTYxMzMyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYgKzIx
OSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93
ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkKIAogICAgIFNoYXJlZC9BdXhp
bGlhcnlQcm9jZXNzCisgICAgU2hhcmVkL0lQQ1N0cmVhbVRlc3RlcgogICAgIFNoYXJlZC9JUENU
ZXN0ZXIKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggM2NkMzkxZjlmYmQ2OGNmZmU4ZTkwZGQ1
YTNmNDg3NmQzN2U3NWUwMC4uN2Y4NjA3MzU0Mzg0MTJlNGIzNGJmYzViMGJiNGE1ZjdhMDNkMDVl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtMTI2LDYgKzEyNiw4IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1NoYXJlZC9IVFRQU1VwZ3JhZGUvSFRUUFNVcGdyYWRlTGlzdC50eHQKKyQoUFJPSkVDVF9ESVIp
L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJl
ZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVk
L0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IGMyNmI3YzcwM2I0ZDgzNDA5NWI4YTU1YmFmMmQ4YTg5NzVlZTlkM2YuLjM0ZWY5
MjlmNzgzOWQ3MWQxODkzMjU1NWZiMGEzYjVjNzBkNDExNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNDYsNiArNDYsMTIgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9HUFVQcm9jZXNzTWVzc2Fn
ZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
R1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9HUFVQcm9jZXNzUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0dQVVByb2Nlc3NQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L0lQQ1N0cmVhbVRlc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvSVBDU3RyZWFtVGVzdGVyTWVzc2FnZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9JUENTdHJlYW1UZXN0ZXJNZXNz
YWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9JUENTdHJlYW1UZXN0ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvSVBDU3RyZWFtVGVzdGVyUHJveHlNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0lQQ1N0cmVh
bVRlc3RlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvSVBDVGVzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9JUENUZXN0ZXJNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0lQQ1Rlc3Rlck1lc3Nh
Z2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOGRiMTI4MTNlYmI3
OWQ5NTNjYTczOWY0ZDJmOGFmOWI4ZTU3ZDg1Zi4uYjk3NTFiZDA1MGE3MDU3MmM4NzI2NzUwMTk1
NzljNjE1MDg3MTQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTUxLDYgKzE1
MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIgXAogCVNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlciBcCiAJU2hhcmVkL1dlYkNvbm5lY3Rpb24gXAorCVNoYXJlZC9J
UENTdHJlYW1UZXN0ZXIgXAorCVNoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eSBcCiAJU2hhcmVk
L0lQQ1Rlc3RlciBcCiAJVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA1M2MzZDk2MGQz
YmE3Y2JkOGRhZjhjYjA1YTZiMjUyNWQ1NWJmZGM0Li44ZThhZWY3MWE1N2QwNWYxNTQwOTg0YmZh
Mjk2MWIzYTQ5Y2Q2MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTMyNiw2ICszMjYsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9k
ZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpHZW9sb2NhdGlvbklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXInLAogICAgICAgICAnV2Vi
S2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUnLAorICAgICAgICAnV2ViS2l0OjpJUENTdHJl
YW1UZXN0ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4
dElEJywKICAgICAgICAgJ1dlYktpdDo6TGVnYWN5Q3VzdG9tUHJvdG9jb2xJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkxpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGJlMTY0NmMxNWY1ZmY5NWU3YTJl
YWMzYjM4NzgwNmQ4YzhjODc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklQQ1N0cmVhbVRlc3Rlci5oIgorCisjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiSVBD
U3RyZWFtVGVzdGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiSVBDVGVzdGVyLmgiCisjaW5jbHVkZSAiU3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZS5oIgorI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZlB0cjxJUENTdHJlYW1UZXN0ZXI+IElQQ1N0cmVhbVRl
c3Rlcjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDU3RyZWFtVGVzdGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJl
YW0pCit7CisgICAgYXV0byB0ZXN0ZXIgPSBhZG9wdFJlZigqbmV3IElQQ1N0cmVhbVRlc3Rlcihj
b25uZWN0aW9uLCBpZGVudGlmaWVyLCBXVEZNb3ZlKHN0cmVhbSkpKTsKKyAgICB0ZXN0ZXItPmlu
aXRpYWxpemUoKTsKKyAgICByZXR1cm4gdGVzdGVyOworfQorCitJUENTdHJlYW1UZXN0ZXI6OklQ
Q1N0cmVhbVRlc3RlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQ1N0cmVhbVRlc3Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3Ry
ZWFtKQorICAgIDogbV93b3JrUXVldWUoSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlOjpj
cmVhdGUoIklQQ1N0cmVhbVRlc3RlciB3b3JrIHF1ZXVlIikpCisgICAgLCBtX3N0cmVhbUNvbm5l
Y3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbiwgV1RG
TW92ZShzdHJlYW0pLCB3b3JrUXVldWUoKSkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKK3sKK30KKworSVBDU3RyZWFtVGVzdGVyOjp+SVBDU3RyZWFtVGVzdGVyKCkgPSBkZWZhdWx0
OworCit2b2lkIElQQ1N0cmVhbVRlc3Rlcjo6aW5pdGlhbGl6ZSgpCit7CisgICAgbV9zdHJlYW1D
b25uZWN0aW9uLT5zdGFydFJlY2VpdmluZ01lc3NhZ2VzKCp0aGlzLCBNZXNzYWdlczo6SVBDU3Ry
ZWFtVGVzdGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKKyAgICB3b3JrUXVldWUoKS5kaXNwYXRjaChbdGhpc10geworICAgICAgICBtX3N0cmVhbUNv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpJUENTdHJlYW1UZXN0ZXJQcm94
eTo6V2FzQ3JlYXRlZCh3b3JrUXVldWUoKS53YWtlVXBTZW1hcGhvcmUoKSksIG1faWRlbnRpZmll
cik7CisgICAgfSk7Cit9CisKK3ZvaWQgSVBDU3RyZWFtVGVzdGVyOjpzdG9wTGlzdGVuaW5nRm9y
SVBDKFJlZjxJUENTdHJlYW1UZXN0ZXI+JiYgcmVmRnJvbUNvbm5lY3Rpb24pCit7CisgICAgbV9z
dHJlYW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OklQQ1N0cmVh
bVRlc3Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7
CisgICAgd29ya1F1ZXVlKCkuc3RvcEFuZFdhaXRGb3JDb21wbGV0aW9uKCk7Cit9CisKK3ZvaWQg
SVBDU3RyZWFtVGVzdGVyOjpzeW5jTWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEodWludDMy
X3QgYnl0ZUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IFsmXSgpIC0+
IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsKKyAgICAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoYnl0ZUNvdW50KTsKKyAgICAgICAgaWYgKCFz
aGFyZWRNZW1vcnkpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBTaGFyZWRNZW1v
cnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmICghc2hhcmVkTWVtb3J5LT5jcmVhdGVIYW5k
bGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCisgICAgICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICB1aW50OF90KiBkYXRhID0gc3RhdGljX2Nhc3Q8dWludDhf
dCo+KHNoYXJlZE1lbW9yeS0+ZGF0YSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaGFyZWRNZW1vcnktPnNpemUoKTsgKytpKQorICAgICAgICAgICAgZGF0YVtpXSA9IGk7Cisg
ICAgICAgIHJldHVybiB7IFdURk1vdmUoaGFuZGxlKSwgc2hhcmVkTWVtb3J5LT5zaXplKCkgfTsK
KyAgICB9KCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRl
c3Rlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTk3OGFkZjdiNjNhOWYxZGYxNDc3NDZlNmViMjdhZTQ1ZWMwZTg2NwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5oCkBAIC0wLDAgKzEs
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCisKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSAiU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIgorI2luY2x1ZGUgIlNoYXJlZE1l
bW9yeS5oIgorI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IFN0cmVhbVNlcnZlckNvbm5lY3Rpb247CitjbGFzcyBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOwor
Y2xhc3MgU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKy8vIEludGVyZmFjZSB0byB0ZXN0IHZhcmlvdXMgSVBDIHN0cmVhbSByZWxhdGVkIGFjdGl2
aXRpZXMuCitjbGFzcyBJUENTdHJlYW1UZXN0ZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8SVBDU3RyZWFtVGVz
dGVyPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciwg
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0Zv
cklQQyhSZWY8SVBDU3RyZWFtVGVzdGVyPiYmIHJlZkZyb21Db25uZWN0aW9uKTsKKworICAgIC8v
IElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKK3ByaXZhdGU6CisgICAgSVBDU3RyZWFtVGVzdGVyKElQQzo6Q29ubmVj
dGlvbiYsIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlciYmKTsKKyAgICB+SVBDU3RyZWFtVGVzdGVyKCk7CisgICAgdm9pZCBpbml0aWFsaXplKCk7
CisgICAgSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlJiB3b3JrUXVldWUoKSBjb25zdCB7
IHJldHVybiBtX3dvcmtRdWV1ZTsgfQorCisgICAgLy8gTWVzc2FnZXMuCisgICAgdm9pZCBzeW5j
TWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEodWludDMyX3QgYnl0ZUNvdW50LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlKT4mJik7CisKKyAgICBjb25z
dCBSZWY8SVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKKyAgICBj
b25zdCBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247
CisgICAgY29uc3QgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9Owor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFt
VGVzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMzA1N2VmM2IyNjMzZTNmMzU4M2RkMWNiNjgzZmIw
NWVhMTMwYzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJl
YW1UZXN0ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbWVz
c2FnZXMgLT4gSVBDU3RyZWFtVGVzdGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICBTeW5j
TWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEodWludDMyX3QgYnl0ZUNvdW50KSAtPiAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzIE5vdFN0cmVh
bUVuY29kYWJsZVJlcGx5Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
SVBDU3RyZWFtVGVzdGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmYzk2MmQ3MzcyNTViMjE3
ODY0OTk5ZjljN2EyOWUxYjk0NjFmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKwor
I2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitlbnVtIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIElQQ1N0cmVh
bVRlc3RlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPElQQ1N0cmVhbVRlc3RlcklkZW50
aWZpZXJUeXBlPjsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU4ODAwYTNk
MzJiZDUxNGY0MjVhNDFiYmY3MTQwNGMyY2E0OWFmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVO
QUJMRShJUENfVEVTVElOR19BUEkpCisKK21lc3NhZ2VzIC0+IElQQ1N0cmVhbVRlc3RlclByb3h5
IE5vdFJlZkNvdW50ZWQgeworICAgIHZvaWQgV2FzQ3JlYXRlZChJUEM6OlNlbWFwaG9yZSBzdHJl
YW1XYWtlVXBTZW1hcGhvcmUpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvSVBDVGVzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5j
cHAKaW5kZXggYThkMjU3ZWM2NzM1ZjEwZGE1OTU0ODMwMGNlNmZlM2YyY2RmOWJhMy4uMGQ1NzRi
MGNjNTAzNDEzMzIxN2ZlMzlmMGIwNDBiNTc5ZDJmYzFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvSVBDVGVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENU
ZXN0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUg
IklQQ1N0cmVhbVRlc3Rlci5oIgogCiAjaW5jbHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGRsZmNu
Lmg+CkBAIC0xMzAsNiArMTMxLDIwIEBAIHZvaWQgSVBDVGVzdGVyOjpzdG9wTWVzc2FnZVRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcikKICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCit2b2lkIElQQ1Rlc3Rlcjo6Y3JlYXRlU3RyZWFtVGVzdGVy
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCit7CisgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3N0cmVhbVRlc3RlcnMuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7
CisgICAgICAgIHJldHVybiBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8SVBD
U3RyZWFtVGVzdGVyPiB7IElQQ1N0cmVhbVRlc3Rlcjo6Y3JlYXRlKGNvbm5lY3Rpb24sIGlkZW50
aWZpZXIsIFdURk1vdmUoc3RyZWFtKSkgfTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFk
ZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkgfHwgaXNUZXN0aW5nSVBDKCkpOworfQorCit2
b2lkIElQQ1Rlc3Rlcjo6cmVsZWFzZVN0cmVhbVRlc3RlcihJUENTdHJlYW1UZXN0ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBtX3N0cmVhbVRlc3RlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgSVBDVGVzdGVyOjpzdG9wSWZOZWVkZWQoKQog
ewogICAgIGlmIChtX3Rlc3RRdWV1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDVGVzdGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaAppbmRleCBl
YTQ5MzM1NmQ0MzkyYzNmYTdiNWY3ZjVlMmI1NjRmNjUzMzI3ZmQyLi42OGJiNmNiYjE0ZjU4YjEz
NzYxZWFkOWNkNWIzOGE5YzlkYjlmYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9JUENUZXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaApAQCAt
MjYsMTAgKzI2LDIyIEBACiAjcHJhZ21hIG9uY2UKIAogCisjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKKworI2luY2x1ZGUgIklQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTY29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2
ZVF1ZXVlLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiU3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlci5oIgorI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaCIK
KyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKICNkZWZpbmUgQVNTRVJUX0lTX1RFU1RJTkdfSVBDKCkgQVNTRVJUKGlzVGVzdGlu
Z0lQQygpLCAiVW50cnVzdGVkIGNvbm5lY3Rpb24gc2VudCBpbnZhbGlkIGRhdGEuIFNob3VsZCBv
bmx5IGhhcHBlbiB3aGVuIHRlc3RpbmcgSVBDLiIpCkBAIC00MCw2ICs1Miw5IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogLy8gYW5kIGV4cG9zZXMgYnVncyB1bmRlcm5lYXRoLgogYm9vbCBpc1Rlc3Rp
bmdJUEMoKTsKIAorY2xhc3MgSVBDU3RyZWFtVGVzdGVyOworCisvLyBNYWluIHRlc3QgaW50ZXJm
YWNlIGZvciBpbml0aWF0aW5nIHZhcmlvdXMgSVBDIHRlc3QgYWN0aXZpdGllcy4KIGNsYXNzIElQ
Q1Rlc3RlciBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAg
ICAgSVBDVGVzdGVyKCk7CkBAIC01MiwxMSArNjcsMTYgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNz
YWdlcy4KICAgICB2b2lkIHN0YXJ0TWVzc2FnZVRlc3RpbmcoSVBDOjpDb25uZWN0aW9uJiwgU3Ry
aW5nJiYgZHJpdmVyTmFtZSk7CiAgICAgdm9pZCBzdG9wTWVzc2FnZVRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPik7CisgICAgdm9pZCBjcmVhdGVTdHJlYW1UZXN0ZXIoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyJiYpOworICAgIHZvaWQgcmVsZWFzZVN0cmVhbVRlc3RlcihJUENTdHJlYW1UZXN0ZXJJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBzdG9w
SWZOZWVkZWQoKTsKIAogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fdGVzdFF1ZXVlOwogICAgIHN0
ZDo6YXRvbWljPGJvb2w+IG1fc2hvdWxkU3RvcCB7IGZhbHNlIH07CisKKyAgICB1c2luZyBTdHJl
YW1UZXN0ZXJNYXAgPSBIYXNoTWFwPElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIsIElQQzo6U2Nv
cGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZTxJUENTdHJlYW1UZXN0ZXI+PjsKKyAgICBTdHJl
YW1UZXN0ZXJNYXAgbV9zdHJlYW1UZXN0ZXJzOwogfTsKIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbgppbmRleCA3NjVhOTllOThlNTBkZWIzY2Q1MTlk
MWE0N2M4YzJlNTQ0NzI0NWFkLi5jZDI0NGZiMGUxNjkxNDQ4NmY3YjAwNmI4Njc4Y2Y3MGRlNTIz
OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLm1lc3NhZ2VzLmluCkBAIC0y
NSw2ICsyNSw4IEBACiBtZXNzYWdlcyAtPiBJUENUZXN0ZXIgTm90UmVmQ291bnRlZCB7CiAgICAg
U3RhcnRNZXNzYWdlVGVzdGluZyhTdHJpbmcgZHJpdmVyTmFtZSkgV2FudHNDb25uZWN0aW9uCiAg
ICAgU3RvcE1lc3NhZ2VUZXN0aW5nKCkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBDcmVhdGVTdHJl
YW1UZXN0ZXIoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciBzdHJlYW0pIFdhbnRzQ29ubmVjdGlvbgorICAgIFJl
bGVhc2VTdHJlYW1UZXN0ZXIoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpIC0+ICgpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1h
dFJlYWRlci5jcHAKaW5kZXggZjg5NTdiM2I4ZTQxODYyM2IzYjU2YzAxMjE1NzAwNWJkY2Y2Mjg5
OC4uMWMzMzhjNmEzZThjYmVmYjRjNmU0YmFmNTAyMWIxNTUyNTQ4ZmJmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVh
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhU2FtcGxlQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KICNpbmNsdWRl
IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggZjc4MTMzNmU1ZWM4MjMyMGZhMDU1ZmZhNzNmOTEwMWRjODhkNjQ4MS4uOTJhNThiMGJkN2Ni
NTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yMzEsNiArMjMx
LDcgQEAgU2hhcmVkL0VkaXRvclN0YXRlLmNwcAogU2hhcmVkL0ZvbnRJbmZvLmNwcAogU2hhcmVk
L0ZyYW1lSW5mb0RhdGEuY3BwCiBTaGFyZWQvSW5zcGVjdG9yRXh0ZW5zaW9uVHlwZXMuY3BwCitT
aGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNwcAogU2hhcmVkL0lQQ1Rlc3Rlci5jcHAKIFNoYXJlZC9M
YXllclRyZWVDb250ZXh0LmNwcAogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcApAQCAtODY4LDYg
Kzg2OSw3IEBAIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuY3BwCiAKIFdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmNwcAogCitJUENT
dHJlYW1UZXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBJUENUZXN0ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAog
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTk1Njg1NWFj
NTliZjdhNWQxN2IyOTFmYTRlMWYxMmUxZWE3ZDViYS4uNjA3MzI4ZTA2YmNjY2E0M2IyOWI1NWYw
MTdkOWIxZWYxMzQ1NGUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzM4LDYgKzEzMzgsNyBAQAogCQk3QkFCMTExMDI1REQwMkIz
MDA4RkM0NzkgLyogU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JBQjExMEYyNUREMDJCMjAwOEZD
NDc5IC8qIFNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWUuaCAqLzsgfTsKIAkJN0JDRjcw
REUyNjE1RDA2RTAwRTRGQjcwIC8qIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3RDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQ0Y3
MENCMjYxNDkzNUUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29j
b2EubW0gKi87IH07CiAJCTdCRERBMzE5Mjc0N0MwNDAwMDM4NjU5RSAvKiAobnVsbCkgaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IH07CisJCTdCRTM3RjkzMjdDN0NBNTEwMDdB
NkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkUzN0Y5MjI3QzdDNTE4MDA3QTZDRDMgLyogSVBD
U3RyZWFtVGVzdGVySWRlbnRpZmllci5oICovOyB9OwogCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5
NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzA2NUYyQTFDOENEOTVGMDBDMkQ5NTAg
LyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggKi87IH07CiAJCTdDMTM1QUE5
MTczQjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdpbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzEzNUFBNzE3M0IwQkNBMDA1ODZBRTIg
LyogV0tQbHVnaW5JbmZvcm1hdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDMUJBMzNFMUE0QTBFNjAwMDQzRTI0OSAvKiBBUElEaWN0aW9u
YXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzFC
QTMzQzFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFyeS5oICovOyB9OwpAQCAtNTE3Nyw2
ICs1MTc4LDkgQEAKIAkJN0JEREEzM0YyNzU2NTJFQTAwMzg2NTlFIC8qIEF1eGlsaWFyeVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV4aWxpYXJ5UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTM0
MDI3NTY1MkVBMDAzODY1OUUgLyogQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXhpbGlhcnlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JFMzdGNkYyN0IxNDc1RjAwN0E2
Q0QzIC8qIFRocmVhZFNhZmVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVP
YmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRTM3RjkyMjdDN0M1
MTgwMDdBNkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0JFMzdGOTQyN0M3Q0Q1MTAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3Rlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJUENTdHJlYW1UZXN0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0JFMzdGOTUyN0M3Q0Q5MDAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3Rlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJUENTdHJlYW1UZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkU3MjY1NzI1NzRGNjcyMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JFNzI2NjgyNTc2ODBFRjAwRTg1RDk4IC8qIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDY1RjI5MUM4
Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTczMDIsNiAr
NzMwNiw5IEBACiAJCQkJQkNDRjZCMjMxMkM5M0U3QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5o
ICovLAogCQkJCTk5OUI3RUQ4MjU1MEU0QTgwMEY0NTBBNCAvKiBJbnNwZWN0b3JFeHRlbnNpb25U
eXBlcy5jcHAgKi8sCiAJCQkJOTlCRTNCMTYyNTQzM0I5NDAwQzY1NTFDIC8qIEluc3BlY3RvckV4
dGVuc2lvblR5cGVzLmggKi8sCisJCQkJN0JFMzdGOTUyN0M3Q0Q5MDAwN0E2Q0QzIC8qIElQQ1N0
cmVhbVRlc3Rlci5jcHAgKi8sCisJCQkJN0JFMzdGOTQyN0M3Q0Q1MTAwN0E2Q0QzIC8qIElQQ1N0
cmVhbVRlc3Rlci5oICovLAorCQkJCTdCRTM3RjkyMjdDN0M1MTgwMDdBNkNEMyAvKiBJUENTdHJl
YW1UZXN0ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0IC8q
IElQQ1Rlc3Rlci5jcHAgKi8sCiAJCQkJN0I1MEU5ODAyNzcxRjZDRjAwM0RBQUM0IC8qIElQQ1Rl
c3Rlci5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRyZWVDb250
ZXh0LmNwcCAqLywKQEAgLTEzMjQ0LDYgKzEzMjUxLDcgQEAKIAkJCQlDNUJDRTVERjFDNTA3NjZB
MDBDREUzRkEgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJENEQyQzgxMURGNjBCRjMwMDJFQjEwQyAvKiBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTMxRjYwQTQyNUNDN0RCOTAwQUYxNEY0
IC8qIElQQ1NlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JFMzdGOTMyN0M3Q0E1MTAw
N0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTlCNDc5MDhGMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNl
WFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUU5MDQ5QTI3QkNCOUQ0MDA5MjlF
N0UgLyogTGF1bmNoU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCA0M2U0NTE3
OTNmMDUxOGNlYTVmZWEzNTI4NTlhZDQ2NDI2MDdmZjIxLi43M2ZiMzEwMWUyNmM2YzZmMWQyNWNj
MWFhY2Q0YzEzYTEyMTc3NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNjEsNiArNjEsMTIgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIG5hbWVzcGFjZSBJUENUZXN0aW5nQVBJIHsKIAorc3RhdGljIGNvbnN0ZXhwciBh
dXRvIHByb2Nlc3NUYXJnZXROYW1lVUkgPSAiVUkiX3M7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nlc3NUYXJnZXROYW1lR1BVID0gIkdQVSJfczsK
KyNlbmRpZgorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nlc3NUYXJnZXROYW1lTmV0d29ya2lu
ZyA9ICJOZXR3b3JraW5nIl9zOworCiBzdGF0aWMgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZGVz
dGluYXRpb25JREZyb21Bcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZVJlZiwg
SlNWYWx1ZVJlZiopOwogc3RhdGljIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG1lc3NhZ2VJREZy
b21Bcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZVJlZiwgSlNWYWx1ZVJlZiop
Owogc3RhdGljIEpTQzo6SlNPYmplY3QqIGpzUmVzdWx0RnJvbVJlcGx5RGVjb2RlcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSVBDOjpNZXNzYWdlTmFtZSwgSVBDOjpEZWNvZGVyJik7CkBAIC0yNzAs
NiArMjc2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiByZXRyaWV2ZUlEKEpT
Q29udGV4dFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHVpbnQ2NF90KEpTSVBDJik+Jik7CiAKICAgICBzdGF0aWMg
SlNWYWx1ZVJlZiBtZXNzYWdlcyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0cmluZ1Jl
ZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKKyAgICBzdGF0aWMgSlNWYWx1ZVJlZiBwcm9jZXNz
VGFyZ2V0cyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKIAogICAgIFdlYWtQdHI8V2ViUGFnZT4gbV93ZWJQYWdlOwogICAgIFdl
YWtQdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CkBAIC05NDEsNiArOTQ4LDcgQEAgY29uc3QgSlNT
dGF0aWNWYWx1ZSogSlNJUEM6OnN0YXRpY1ZhbHVlcygpCiAgICAgICAgIHsgInNlc3Npb25JRCIs
IHNlc3Npb25JRCwgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB9LAogICAgICAgICB7ICJ3ZWJQYWdlUHJveHlJRCIsIHdlYlBh
Z2VQcm94eUlELCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCiAgICAgICAgIHsgIm1lc3NhZ2VzIiwgbWVzc2FnZXMsIDAs
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfSwKKyAgICAgICAgeyAicHJvY2Vzc1RhcmdldHMiLCBwcm9jZXNzVGFyZ2V0cywgMCwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB9LAogICAgICAgICB7IDAsIDAsIDAsIDAgfQogICAgIH07CiAgICAgcmV0dXJuIHZhbHVl
czsKQEAgLTk1MywxMyArOTYxLDEzIEBAIHN0YXRpYyBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBw
cm9jZXNzVGFyZ2V0RnJvbUFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsCiAgICAgaWYg
KHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChu
YW1lID09ICJVSSIpCisgICAgaWYgKG5hbWUgPT0gcHJvY2Vzc1RhcmdldE5hbWVVSSkKICAgICAg
ICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCk7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgIGlmIChuYW1lID09ICJHUFUiKQorICAg
IGlmIChuYW1lID09IHByb2Nlc3NUYXJnZXROYW1lR1BVKQogICAgICAgICByZXR1cm4gJldlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpOwogI2VuZGlmCi0gICAgaWYgKG5hbWUgPT0gIk5ldHdvcmtpbmciKQorICAgIGlmIChuYW1l
ID09IHByb2Nlc3NUYXJnZXROYW1lTmV0d29ya2luZykKICAgICAgICAgcmV0dXJuICZXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCk7CiAKICAgICAqZXhjZXB0aW9uID0gdG9SZWYoSlNDOjpjcmVhdGVUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCAiVGFyZ2V0IHByb2Nlc3MgbXVzdCBiZSBVSSwgR1BVLCBvciBOZXR3b3JraW5n
Il9zKSk7CkBAIC0xODU2LDYgKzE4NjQsMzIgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6bWVzc2FnZXMo
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW4KICAg
ICByZXR1cm4gdG9SZWYodm0sIG1lc3NhZ2VzT2JqZWN0KTsKIH0KIAorSlNWYWx1ZVJlZiBKU0lQ
Qzo6cHJvY2Vzc1RhcmdldHMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgYXV0byog
Z2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKKyAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKworICAgIGF1dG8qIGlt
cGwgPSB0b1dyYXBwZWQoY29udGV4dCwgdGhpc09iamVjdCk7CisgICAgaWYgKCFpbXBsKSB7Cisg
ICAgICAgICpleGNlcHRpb24gPSB0b1JlZihKU0M6OmNyZWF0ZVR5cGVFcnJvcih0b0pTKGNvbnRl
eHQpLCAiV3JvbmcgdHlwZSJfcykpOworICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CisgICAgfQorICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKKyAgICBKU0M6OkpTT2JqZWN0KiBwcm9jZXNzVGFyZ2V0c09iamVjdCA9IEpTQzo6Y29u
c3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKKyAgICBpbnQg
aW5kZXggPSAwOworICAgIHByb2Nlc3NUYXJnZXRzT2JqZWN0LT5wdXREaXJlY3RJbmRleChnbG9i
YWxPYmplY3QsIGluZGV4KyssIEpTQzo6anNTdHJpbmcodm0sIHByb2Nlc3NUYXJnZXROYW1lVUkp
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KSk7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHByb2Nlc3NUYXJnZXRzT2Jq
ZWN0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4KyssIEpTQzo6anNTdHJpbmco
dm0sIHByb2Nlc3NUYXJnZXROYW1lR1BVKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOworI2VuZGlmCisgICAgcHJvY2Vzc1Rh
cmdldHNPYmplY3QtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywgSlNDOjpq
c1N0cmluZyh2bSwgcHJvY2Vzc1RhcmdldE5hbWVOZXR3b3JraW5nKSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOworICAgIHJl
dHVybiB0b1JlZih2bSwgcHJvY2Vzc1RhcmdldHNPYmplY3QpOworfQorCiBKU01lc3NhZ2VMaXN0
ZW5lcjo6SlNNZXNzYWdlTGlzdGVuZXIoSlNJUEMmIGpzSVBDLCBUeXBlIHR5cGUsIEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBjYWxsYmFjaykKICAgICA6IG1fanNJUEMoanNJUEMp
CiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2M2UxMTI5ZTA2ODhhNjQ5OTJmMzhlM2I0OWU1OTI1YjJhN2FmYjY0
Li5mYzU5NDAwMjZiNDk0NWEyNWY5YzE2YjEwMTllYzE3MjNhM2YyZjgzIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MjItMDItMjQgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyODk1ODApOiBbIGlPUyBtYWNPUyBdIFRlc3RXZWJLaXRBUEkuSVBDVGVz
dGluZ0FQSS5DYW5SZWNlaXZlU2hhcmVkTWVtb3J5IGlzIGEgY29uc3RhbnQgdGltZW91dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW06CisKIDIwMjItMDItMjMgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBtb3JlIHdpZGVs
eSB0aGUgbmV3IFVSTCBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGluIGEgU3RyaW5nCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEku
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEku
bW0KaW5kZXggYzQ5MjFiZmJiYjhiOTZhM2ZiOTFlZTNiMWY2N2I2YTc4MzU3ODlhMy4uZDVjZTE4
MzQxM2RlOTA0ZjY5NWE1YzMwYTg2MTU2OTVmNTVlMGMzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQpAQCAtOTYs
NiArOTYsOCBAQCBURVNUKElQQ1Rlc3RpbmdBUEksIElzRGlzYWJsZWRCeURlZmF1bHQpCiAgICAg
RVhQRUNUX1NUUkVRKFthbGVydE1lc3NhZ2UgVVRGOFN0cmluZ10sICJ1bmRlZmluZWQiKTsKIH0K
IAorLy8gTm90ZTogVGhlcmUgYXJlIG1vcmUgSVBDIHRlc3RzIHVzaW5nIElQQyB0ZXN0aW5nIEFQ
SSBpbiBgTGF5b3V0VGVzdHMvaXBjYC4KKwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAK
IHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0
aW5nQVBJKCkKQEAgLTMwOSwzOCArMzExLDYgQEAgVEVTVChJUENUZXN0aW5nQVBJLCBDYW5SZWNl
aXZlSVBDU2VtYXBob3JlKQogICAgIEVYUEVDVF9TVFJFUShbYWxlcnRNZXNzYWdlIFVURjhTdHJp
bmddLCAiMTpTZW1hcGhvcmU6ZmFsc2UiKTsKIH0KIAotLy8gRklYTUU6IFJlLWVuYWJsZSB0aGlz
IHRlc3Qgb25jZSB3ZWJraXQub3JnL2IvMjM2NzQ0IGlzIHJlc29sdmVkLgotVEVTVChJUENUZXN0
aW5nQVBJLCBESVNBQkxFRF9DYW5SZWNlaXZlU2hhcmVkTWVtb3J5KQotewotICAgIGF1dG8gd2Vi
VmlldyA9IGNyZWF0ZVdlYlZpZXdXaXRoSVBDVGVzdGluZ0FQSSgpOwotCi0gICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tJUENUZXN0aW5nQVBJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKLQotICAgIGF1dG8gaHRt
bCA9IEAiPCFET0NUWVBFIGh0bWw+IgotICAgICAgICAiPHNjcmlwdD4iCi0gICAgICAgICJjb25z
dCBidWZmZXJTaXplID0gMSA8PCAxNjsiCi0gICAgICAgICJjb25zdCBzdHJlYW1Db25uZWN0aW9u
ID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24oJ0dQVScsIGJ1ZmZlclNpemUpOyIK
LSAgICAgICAgIklQQy5zZW5kTWVzc2FnZSgnR1BVJywgMCwgSVBDLm1lc3NhZ2VzLkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NfQ3JlYXRlUmVuZGVyaW5nQmFja2VuZC5uYW1lLCBbIgotICAgICAg
ICAiICAgIHsgdHlwZTogJ1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRDcmVhdGlvblBhcmFtZXRlcnMn
LCAnaWRlbnRpZmllcic6IDEyMywgJ3BhZ2VQcm94eUlEJzogSVBDLndlYlBhZ2VQcm94eUlELCAn
cGFnZUlEJzogSVBDLnBhZ2VJRCB9LCIKLSAgICAgICAgIiAgICB7IHR5cGU6ICdTdHJlYW1Db25u
ZWN0aW9uQnVmZmVyJywgdmFsdWU6IHN0cmVhbUNvbm5lY3Rpb24uc3RyZWFtQnVmZmVyKCkgfSwi
Ci0gICAgICAgICJdKTsiCi0gICAgICAgICJjb25zdCBhcmd1bWVudHMgPSBJUEMud2FpdEZvck1l
c3NhZ2UoJ0dQVScsIDEyMywgSVBDLm1lc3NhZ2VzLlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eV9EaWRDcmVhdGVXYWtlVXBTZW1hcGhvcmVGb3JEaXNwbGF5TGlzdFN0cmVhbS5uYW1lLCAxMDAp
OyIKLSAgICAgICAgInN0cmVhbUNvbm5lY3Rpb24uc2V0V2FrZVVwU2VtYXBob3JlKGFyZ3VtZW50
c1swXS52YWx1ZSk7IgotICAgICAgICAiY29uc3QgcmVzdWx0ID0gc3RyZWFtQ29ubmVjdGlvbi5z
ZW5kU3luY01lc3NhZ2UoMTIzLCBJUEMubWVzc2FnZXMuUmVtb3RlUmVuZGVyaW5nQmFja2VuZF9V
cGRhdGVTaGFyZWRNZW1vcnlGb3JHZXRQaXhlbEJ1ZmZlci5uYW1lLCAxMDAsIFt7dHlwZTogJ3Vp
bnQzMl90JywgdmFsdWU6IDh9XSk7IgotICAgICAgICAiYWxlcnQocmVzdWx0LmFyZ3VtZW50cy5s
ZW5ndGgpOyIKLSAgICAgICAgIjwvc2NyaXB0PiI7Ci0KLSAgICBkb25lID0gZmFsc2U7Ci0gICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmh0bWxdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Ci0KLSAgICBFWFBFQ1RfRVEoW2FsZXJ0TWVzc2FnZSBp
bnRWYWx1ZV0sIDEpOwotICAgIEVYUEVDVF9TVFJFUShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZmlyc3RSZXBseSA9IHJlc3VsdC5hcmd1bWVudHNbMF07IGZpcnN0UmVw
bHkudHlwZSJdLlVURjhTdHJpbmcsICJTaGFyZWRNZW1vcnkiKTsKLSAgICBFWFBFQ1RfU1RSRVEo
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImZpcnN0UmVwbHkucHJvdGVj
dGlvbiJdLlVURjhTdHJpbmcsICJSZWFkT25seSIpOwotICAgIEVYUEVDVF9TVFJFUShbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiQXJyYXkuZnJvbShuZXcgVWludDhBcnJh
eShmaXJzdFJlcGx5LnZhbHVlLnJlYWRCeXRlcygwLCA4KSkpLnRvU3RyaW5nKCkiXS5VVEY4U3Ry
aW5nLCAiMCwwLDAsMCwwLDAsMCwwIik7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKIFRFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuQ3JlYXRlSVBDU2VtYXBob3JlKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDU0ZmRkY2NjODU2MGNkMDFiZjlkZjg3MzU3ZGU1ODE4YjVmYWVhYmMuLjZlMTNiNzU2MzQwNTMy
MmE4YWIxZjAwOTE4YmY1M2E1NTI5Nzg1OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0w
Mi0yNCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJF
R1JFU1NJT04ocjI4OTU4MCk6IFsgaU9TIG1hY09TIF0gVGVzdFdlYktpdEFQSS5JUENUZXN0aW5n
QVBJLkNhblJlY2VpdmVTaGFyZWRNZW1vcnkgaXMgYSBjb25zdGFudCB0aW1lb3V0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3NDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlwYy9zdHJlYW0tc3lu
Yy1yZXBseS1zaGFyZWQtbWVtb3J5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaXBj
L3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbDogQWRkZWQuCisKIDIwMjItMDIt
MjMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjkwMjg0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaXBj
L3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjliNWU4OTQyMWY2OTUzNWUwN2Q0MWY3YzBmMmY3MWU3NTllOGU1ZDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9y
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdCB0aGF0IHN0cmVhbSBz
eW5jIG1lc3NhZ2UgY2FuIHJlcGx5IHdpdGggc2hhcmVkIG1lbW9yeQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9yeS5odG1sIGIvTGF5
b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZjAyOWFkMWUyY2ZkZmQ3ZGY5OTNjMjdlNjI2NWNkZWVmZWQ0NWQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnku
aHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIElQQ1Rlc3RpbmdBUElFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0IHRoYXQg
c3RyZWFtIHN5bmMgbWVzc2FnZSBjYW4gcmVwbHkgd2l0aCBzaGFyZWQgbWVtb3J5PC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitzZXR1cCh7IHNpbmdsZV90ZXN0OiB0cnVlIH0pOworaWYgKHdpbmRv
dy5JUEMpIHsgLy8gRm9yIGNvbXBpbGVzIHdpdGggIUVOQUJMRShJUENfVEVTVElOR19BUEkpCisg
ICAgY29uc3QgZGVmYXVsdFRpbWVvdXQgPSAxMDAwOworICAgIGNvbnN0IGJ1ZmZlclNpemUgPSAx
MDA7CisgICAgY29uc3Qgc3RyZWFtVGVzdGVySUQgPSA0NDc7CisgICAgZm9yIChjb25zdCBwcm9j
ZXNzVGFyZ2V0IG9mIElQQy5wcm9jZXNzVGFyZ2V0cykgeworICAgICAgICBjb25zdCBzdHJlYW1D
b25uZWN0aW9uID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24ocHJvY2Vzc1Rhcmdl
dCwgYnVmZmVyU2l6ZSk7CisgICAgICAgIElQQy5zZW5kTWVzc2FnZShwcm9jZXNzVGFyZ2V0LCAw
LCBJUEMubWVzc2FnZXMuSVBDVGVzdGVyX0NyZWF0ZVN0cmVhbVRlc3Rlci5uYW1lLCBbCisgICAg
ICAgICAgICB7IHR5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBzdHJlYW1UZXN0ZXJJRCB9LAorICAg
ICAgICAgICAgeyB0eXBlOiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1D
b25uZWN0aW9uLnN0cmVhbUJ1ZmZlcigpIH0sCisgICAgICAgIF0pOworICAgICAgICBjb25zdCBh
cmd1bWVudHMgPSBJUEMud2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVy
SUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRl
ZmF1bHRUaW1lb3V0KTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhv
cmUoYXJndW1lbnRzWzBdLnZhbHVlKTsKKworICAgICAgICAvLyBUZXN0IHN0YXJ0cyBoZXJlLgor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RyZWFtQ29ubmVjdGlv
bi5zZW5kU3luY01lc3NhZ2Uoc3RyZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1U
ZXN0ZXJfU3luY01lc3NhZ2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxLm5hbWUsIGRlZmF1bHRUaW1l
b3V0LCBbeyB0eXBlOiAndWludDMyX3QnLCB2YWx1ZTogOCB9XSk7CisgICAgICAgICAgICBjb25z
dCBmaXJzdFJlcGx5ID0gcmVzdWx0LmFyZ3VtZW50c1swXTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZmlyc3RSZXBseS50eXBlLCAiU2hhcmVkTWVtb3J5IiwgYGZvciAkeyBwcm9jZXNzVGFy
Z2V0IH1gKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZmlyc3RSZXBseS5wcm90ZWN0aW9u
LCAiUmVhZE9ubHkiLCBgZm9yICR7IHByb2Nlc3NUYXJnZXQgfWApOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGZpcnN0UmVwbHkudmFsdWUucmVh
ZEJ5dGVzKDAsIDgpKSkudG9TdHJpbmcoKSwgIjAsMSwyLDMsNCw1LDYsNyIsIGBmb3IgJHsgcHJv
Y2Vzc1RhcmdldCB9YCk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBJUEMuc2Vu
ZFN5bmNNZXNzYWdlKHByb2Nlc3NUYXJnZXQsIDAsIElQQy5tZXNzYWdlcy5JUENUZXN0ZXJfUmVs
ZWFzZVN0cmVhbVRlc3Rlci5uYW1lLCBkZWZhdWx0VGltZW91dCwgW3sgdHlwZTogJ3VpbnQ2NF90
JywgdmFsdWU6IHN0cmVhbVRlc3RlcklEIH1dKTsKKyAgICAgICAgfQorICAgIH0KK30KK2RvbmUo
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453182</attachid>
            <date>2022-02-25 00:24:37 -0800</date>
            <delta_ts>2022-02-25 05:27:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236744-20220225102435.patch</filename>
            <type>text/plain</type>
            <size>40806</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMzg2NmMzNDA3OTJiNzRh
NGViNDM1Yzg1YTM0MjkxZGJkMWQzNTcuLjYxZGJjMjZmZWQzYTIwMjJmZTY5ZjQ4MzRkMmMwYmM2
NTA3NWJjZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjItMDItMjUgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyODk1
ODApOiBbIGlPUyBtYWNPUyBdIFRlc3RXZWJLaXRBUEkuSVBDVGVzdGluZ0FQSS5DYW5SZWNlaXZl
U2hhcmVkTWVtb3J5IGlzIGEgY29uc3RhbnQgdGltZW91dAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyB0ZXN0ZXIgaW50ZXJmYWNlIGZvciB0
ZXN0aW5nIElQQyBzdHJlYW0gZmVhdHVyZXMuCisKKyAgICAgICAgQmVmb3JlLCBUZXN0V2ViS2l0
QVBJLklQQ1Rlc3RpbmdBUEkuQ2FuUmVjZWl2ZVNoYXJlZE1lbW9yeSB3b3VsZCB0ZXN0IHRoZSBm
ZWF0dXJlIG9mCisgICAgICAgICJjYW4gcmVwbHkgc3RyZWFtIHN5bmMgbWVzc2FnZSB3aXRoIHNo
YXJlZCBtZW1vcnkiIGJ5IHVzaW5nIGEgUmVtb3RlUmVuZGVyaW5nQmFja2VuZAorICAgICAgICBt
ZXNzYWdlIHRoYXQgZGlkIHNvLiBIb3dldmVyLCB3aGVuIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kIHdhcyBjaGFuZ2VkIHRvIHVzZSBhCisgICAgICAgIGRpZmZlcmVudCBzdGF0ZWd5LCB0aGlz
IHRlc3Qgc3RvcHBlZCB3b3JraW5nIHdpdGhvdXQgY29tcGlsZSBmYWlsdXJlLiBUaGUgSVBDIHRl
c3RpbmcKKyAgICAgICAgaXMgY3VycmVudGx5IGRvbmUgYXQgSlMgbGV2ZWwuCisKKyAgICAgICAg
QWZ0ZXIsIHRoZSBuZXcgZGVkaWNhdGVkIHRlc3RpbmcgaW50ZXJmYWNlIElQQ1N0cmVhbVRlc3Rl
ciBoYXMgZGVkaWNhdGVkIG1lc3NhZ2UgZm9yCisgICAgICAgIHRlc3RpbmcgdGhpcyBmZWF0dXJl
LiBUaGUgdGVzdCBpcyBtb3ZlZCB0byBMYXlvdXRUZXN0cy9pcGMgYW5kIG1hZGUgc28gdGhhdAor
ICAgICAgICBpdCB0ZXN0cyB0aGUgZmVhdHVyZSBpbiBhbGwgY3VycmVudGx5IHRlc3RhYmxlIHBy
b2Nlc3NlcyBXUCB1c2VzIChHUFUsIE5ldHdvcmtpbmcsIFVJKS4KKworICAgICAgICBJUENUZXN0
aW5nQVBJIGlzIGFtZW5kZWQgdG8gcmV0dXJuIHRoZSBhbGwgcG9zc2libGUgdGVzdGFibGUgcHJv
Y2VzcyBuYW1lcywgc28KKyAgICAgICAgdGhlIC5odG1sIHRlc3QgY2FuIHdvcmsgZXZlbiB3aGVu
IEVOQUJMRShHUFVfUFJPQ0VTUykgaXMgdG9nZ2xlZC4KKworICAgICAgICBUaGUgLmh0bWwgdGVz
dCBhbHNvIHBhc3NlcyB3aGVuICFFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKS4gQ3VycmVudGx5Cisg
ICAgICAgIEVOQUJMRV9JUENfVEVTVElOR19BUEkgPT0gKEFTQU5fRU5BQkxFRCB8fCAhZGVmaW5l
ZChOREVCVUcpKSAmJiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgRS5nLiB0ZXN0IHRlc3RzIHNv
bWV0aGluZyBvbiBSZWxlYXNlK0FTQU4gb3IgRGVidWcuCisKKyAgICAgICAgSGF2aW5nIHRoZSB0
ZXN0IGluIC5odG1sIGFsc28gbWFrZXMgaXQgcG9zc2libGUgdG8gcnVuIHRoZSB0ZXN0IG9uIGlP
UyBkZXZpY2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3Rf
YmVfZm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgICogU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OklQQ1N0cmVhbVRlc3Rlcjo6SVBDU3RyZWFtVGVzdGVyKToKKyAgICAg
ICAgKFdlYktpdDo6SVBDU3RyZWFtVGVzdGVyOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktp
dDo6SVBDU3RyZWFtVGVzdGVyOjpzdG9wTGlzdGVuaW5nRm9ySVBDKToKKyAgICAgICAgKFdlYktp
dDo6SVBDU3RyZWFtVGVzdGVyOjpzeW5jTWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEpOgor
ICAgICAgICAqIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9TaGFyZWQvSVBDVGVzdGVyLmguCisgICAgICAgICogU2hhcmVkL0lQQ1N0cmVhbVRlc3Rl
ci5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVy
Lm1lc3NhZ2VzLmluLgorICAgICAgICAqIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVy
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5oLgorICAgICAg
ICAqIFNoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLm1lc3NhZ2VzLmluLgorICAgICAgICAqIFNo
YXJlZC9JUENUZXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0ZXI6OmNyZWF0ZVN0
cmVhbVRlc3Rlcik6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rlc3Rlcjo6cmVsZWFzZVN0cmVhbVRl
c3Rlcik6CisgICAgICAgICogU2hhcmVkL0lQQ1Rlc3Rlci5oOgorICAgICAgICAqIFNoYXJlZC9J
UENUZXN0ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJl
YWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHA6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0lQQ1Rlc3RpbmdBUEkuY3BwOgorICAgICAgICAoV2ViS2l0OjpJUENUZXN0
aW5nQVBJOjpKU0lQQzo6c3RhdGljVmFsdWVzKToKKyAgICAgICAgKFdlYktpdDo6SVBDVGVzdGlu
Z0FQSTo6cHJvY2Vzc1RhcmdldEZyb21Bcmd1bWVudCk6CisgICAgICAgIChXZWJLaXQ6OklQQ1Rl
c3RpbmdBUEk6OkpTSVBDOjpwcm9jZXNzVGFyZ2V0cyk6CisKIDIwMjItMDItMjQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlciwgVXNlck1lZGlhU2FtcGxlQ2FwdHVyZU1hbmFnZXJQcm94eSBjcmVhdGUgdGhl
IFJlbW90ZVZpZGVvRnJhbWUgaW4gaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDll
ZmE3ZDI2MDk1Y2JlYjA2YzRiOGQ3NzU4OWVhNDMzNzlkYjgyNWYuLjZhZDRjYzRkMGFjMTY2ZWM3
OWEzYWNjNWI5NTQwYjc3ZTYxMzMyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtMjE5LDYgKzIx
OSw3IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBOZXR3b3JrUHJvY2Vzcy93
ZWJydGMvUlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyUHJveHkKIAogICAgIFNoYXJlZC9BdXhp
bGlhcnlQcm9jZXNzCisgICAgU2hhcmVkL0lQQ1N0cmVhbVRlc3RlcgogICAgIFNoYXJlZC9JUENU
ZXN0ZXIKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggM2NkMzkxZjlmYmQ2OGNmZmU4ZTkwZGQ1
YTNmNDg3NmQzN2U3NWUwMC4uN2Y4NjA3MzU0Mzg0MTJlNGIzNGJmYzViMGJiNGE1ZjdhMDNkMDVl
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtMTI2LDYgKzEyNiw4IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvU2hhcmVkL0F1eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1NoYXJlZC9IVFRQU1VwZ3JhZGUvSFRUUFNVcGdyYWRlTGlzdC50eHQKKyQoUFJPSkVDVF9ESVIp
L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJl
ZC9JUENTdHJlYW1UZXN0ZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVk
L0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CmluZGV4IGMyNmI3YzcwM2I0ZDgzNDA5NWI4YTU1YmFmMmQ4YTg5NzVlZTlkM2YuLjM0ZWY5
MjlmNzgzOWQ3MWQxODkzMjU1NWZiMGEzYjVjNzBkNDExNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtNDYsNiArNDYsMTIgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9HUFVQcm9jZXNzTWVzc2Fn
ZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQv
R1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9HUFVQcm9jZXNzUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0dQVVByb2Nlc3NQcm94eU1lc3Nh
Z2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L0lQQ1N0cmVhbVRlc3Rlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQvSVBDU3RyZWFtVGVzdGVyTWVzc2FnZXMuaAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9JUENTdHJlYW1UZXN0ZXJNZXNz
YWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dC9JUENTdHJlYW1UZXN0ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvSVBDU3RyZWFtVGVzdGVyUHJveHlNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0lQQ1N0cmVh
bVRlc3RlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQvSVBDVGVzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9JUENUZXN0ZXJNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L0lQQ1Rlc3Rlck1lc3Nh
Z2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggOGRiMTI4MTNlYmI3
OWQ5NTNjYTczOWY0ZDJmOGFmOWI4ZTU3ZDg1Zi4uYjk3NTFiZDA1MGE3MDU3MmM4NzI2NzUwMTk1
NzljNjE1MDg3MTQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTUxLDYgKzE1
MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRo
ZW50aWNhdGlvbk1hbmFnZXIgXAogCVNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlciBcCiAJU2hhcmVkL1dlYkNvbm5lY3Rpb24gXAorCVNoYXJlZC9J
UENTdHJlYW1UZXN0ZXIgXAorCVNoYXJlZC9JUENTdHJlYW1UZXN0ZXJQcm94eSBcCiAJU2hhcmVk
L0lQQ1Rlc3RlciBcCiAJVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA1M2MzZDk2MGQz
YmE3Y2JkOGRhZjhjYjA1YTZiMjUyNWQ1NWJmZGM0Li44ZThhZWY3MWE1N2QwNWYxNTQwOTg0YmZh
Mjk2MWIzYTQ5Y2Q2MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKQEAgLTMyNiw2ICszMjYsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9k
ZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpHZW9sb2NhdGlvbklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViS2l0OjpHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXInLAogICAgICAgICAnV2Vi
S2l0OjpJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUnLAorICAgICAgICAnV2ViS2l0OjpJUENTdHJl
YW1UZXN0ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4
dElEJywKICAgICAgICAgJ1dlYktpdDo6TGVnYWN5Q3VzdG9tUHJvdG9jb2xJRCcsCiAgICAgICAg
ICdXZWJLaXQ6OkxpYldlYlJUQ1Jlc29sdmVySWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYmI2YWM0OWQ2ODE3Y2U2MDIwZjlj
N2QzYWM3YjI2NWE2MWZkYjM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyLmNwcApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklQQ1N0cmVhbVRlc3Rlci5oIgorCisjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKKyNpbmNsdWRlICJEZWNvZGVyLmgiCisjaW5jbHVkZSAiSVBD
U3RyZWFtVGVzdGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJQcm94eU1l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiSVBDVGVzdGVyLmgiCisjaW5jbHVkZSAiU3RyZWFtQ29ubmVj
dGlvbldvcmtRdWV1ZS5oIgorI2luY2x1ZGUgIlN0cmVhbVNlcnZlckNvbm5lY3Rpb24uaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZlB0cjxJUENTdHJlYW1UZXN0ZXI+IElQQ1N0cmVhbVRl
c3Rlcjo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDU3RyZWFtVGVzdGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJl
YW0pCit7CisgICAgYXV0byB0ZXN0ZXIgPSBhZG9wdFJlZigqbmV3IElQQ1N0cmVhbVRlc3Rlcihj
b25uZWN0aW9uLCBpZGVudGlmaWVyLCBXVEZNb3ZlKHN0cmVhbSkpKTsKKyAgICB0ZXN0ZXItPmlu
aXRpYWxpemUoKTsKKyAgICByZXR1cm4gdGVzdGVyOworfQorCitJUENTdHJlYW1UZXN0ZXI6OklQ
Q1N0cmVhbVRlc3RlcihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQ1N0cmVhbVRlc3Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3Ry
ZWFtKQorICAgIDogbV93b3JrUXVldWUoSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlOjpj
cmVhdGUoIklQQ1N0cmVhbVRlc3RlciB3b3JrIHF1ZXVlIikpCisgICAgLCBtX3N0cmVhbUNvbm5l
Y3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbiwgV1RG
TW92ZShzdHJlYW0pLCB3b3JrUXVldWUoKSkpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKK3sKK30KKworSVBDU3RyZWFtVGVzdGVyOjp+SVBDU3RyZWFtVGVzdGVyKCkgPSBkZWZhdWx0
OworCit2b2lkIElQQ1N0cmVhbVRlc3Rlcjo6aW5pdGlhbGl6ZSgpCit7CisgICAgbV9zdHJlYW1D
b25uZWN0aW9uLT5zdGFydFJlY2VpdmluZ01lc3NhZ2VzKCp0aGlzLCBNZXNzYWdlczo6SVBDU3Ry
ZWFtVGVzdGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmllci50b1VJbnQ2NCgp
KTsKKyAgICB3b3JrUXVldWUoKS5kaXNwYXRjaChbdGhpc10geworICAgICAgICBtX3N0cmVhbUNv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpJUENTdHJlYW1UZXN0ZXJQcm94
eTo6V2FzQ3JlYXRlZCh3b3JrUXVldWUoKS53YWtlVXBTZW1hcGhvcmUoKSksIG1faWRlbnRpZmll
cik7CisgICAgfSk7Cit9CisKK3ZvaWQgSVBDU3RyZWFtVGVzdGVyOjpzdG9wTGlzdGVuaW5nRm9y
SVBDKFJlZjxJUENTdHJlYW1UZXN0ZXI+JiYgcmVmRnJvbUNvbm5lY3Rpb24pCit7CisgICAgbV9z
dHJlYW1Db25uZWN0aW9uLT5zdG9wUmVjZWl2aW5nTWVzc2FnZXMoTWVzc2FnZXM6OklQQ1N0cmVh
bVRlc3Rlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSk7
CisgICAgd29ya1F1ZXVlKCkuc3RvcEFuZFdhaXRGb3JDb21wbGV0aW9uKCk7Cit9CisKK3ZvaWQg
SVBDU3RyZWFtVGVzdGVyOjpzeW5jTWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEodWludDMy
X3QgYnl0ZUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlc3VsdCA9IFsmXSgpIC0+
IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsKKyAgICAgICAgYXV0byBzaGFyZWRNZW1vcnkgPSBX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6YWxsb2NhdGUoYnl0ZUNvdW50KTsKKyAgICAgICAgaWYgKCFz
aGFyZWRNZW1vcnkpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICBTaGFyZWRNZW1v
cnk6OkhhbmRsZSBoYW5kbGU7CisgICAgICAgIGlmICghc2hhcmVkTWVtb3J5LT5jcmVhdGVIYW5k
bGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIGlmIChoYW5kbGUuaXNOdWxsKCkpCisgICAgICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICB1aW50OF90KiBkYXRhID0gc3RhdGljX2Nhc3Q8dWludDhf
dCo+KHNoYXJlZE1lbW9yeS0+ZGF0YSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaGFyZWRNZW1vcnktPnNpemUoKTsgKytpKQorICAgICAgICAgICAgZGF0YVtpXSA9IGk7Cisg
ICAgICAgIHJldHVybiB7IFdURk1vdmUoaGFuZGxlKSwgc2hhcmVkTWVtb3J5LT5zaXplKCkgfTsK
KyAgICB9KCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRl
c3Rlci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWE1OWEyZjI0MmY3YWI5OGZkNzMxNzFhNDg3ODBkOWZiMjc4NWM1YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3Rlci5oCkBAIC0wLDAgKzEs
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCisKKyNpbmNsdWRlICJJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgiCisjaW5jbHVk
ZSAiU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIgorI2luY2x1ZGUgIlNoYXJlZE1l
bW9yeS5oIgorI2luY2x1ZGUgIlN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNz
IFN0cmVhbVNlcnZlckNvbm5lY3Rpb247CitjbGFzcyBTdHJlYW1Db25uZWN0aW9uQnVmZmVyOwor
Y2xhc3MgU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKy8vIEludGVyZmFjZSB0byB0ZXN0IHZhcmlvdXMgSVBDIHN0cmVhbSByZWxhdGVkIGFjdGl2
aXRpZXMuCitjbGFzcyBJUENTdHJlYW1UZXN0ZXIgZmluYWwgOiBwdWJsaWMgSVBDOjpTdHJlYW1N
ZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWZQdHI8SVBDU3RyZWFtVGVz
dGVyPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciwg
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYpOworICAgIHZvaWQgc3RvcExpc3RlbmluZ0Zv
cklQQyhSZWY8SVBDU3RyZWFtVGVzdGVyPiYmIHJlZkZyb21Db25uZWN0aW9uKTsKKworICAgIC8v
IElQQzo6U3RyZWFtTWVzc2FnZVJlY2VpdmVyIG92ZXJyaWRlcy4KKyAgICB2b2lkIGRpZFJlY2Vp
dmVTdHJlYW1NZXNzYWdlKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbkJhc2UmLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKK3ByaXZhdGU6CisgICAgSVBDU3RyZWFtVGVzdGVyKElQQzo6Q29ubmVj
dGlvbiYsIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1
ZmZlciYmKTsKKyAgICB+SVBDU3RyZWFtVGVzdGVyKCk7CisgICAgdm9pZCBpbml0aWFsaXplKCk7
CisgICAgSVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlJiB3b3JrUXVldWUoKSBjb25zdCB7
IHJldHVybiBtX3dvcmtRdWV1ZTsgfQorCisgICAgLy8gTWVzc2FnZXMuCisgICAgdm9pZCBzeW5j
TWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEodWludDMyX3QgYnl0ZUNvdW50LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlKT4mJik7CisKKyAgICBjb25z
dCBSZWY8SVBDOjpTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlPiBtX3dvcmtRdWV1ZTsKKyAgICBj
b25zdCBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247
CisgICAgY29uc3QgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciBtX2lkZW50aWZpZXI7Cit9Owor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFt
VGVzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDU3RyZWFtVGVzdGVy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZjYxYzA1MDFiNGRmNzhmZDM2MmUxYThhMTg3Y2Zk
YTQ5MjdkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENTdHJl
YW1UZXN0ZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyOSBAQAorIyBDb3B5cmlnaHQgKEMpIDIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKworbWVz
c2FnZXMgLT4gSVBDU3RyZWFtVGVzdGVyIE5vdFJlZkNvdW50ZWQgU3RyZWFtIHsKKyAgICBTeW5j
TWVzc2FnZVJldHVybmluZ1NoYXJlZE1lbW9yeTEodWludDMyX3QgYnl0ZUNvdW50KSAtPiAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUpIFN5bmNocm9ub3VzIE5vdFN0cmVh
bUVuY29kYWJsZVJlcGx5Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
SVBDU3RyZWFtVGVzdGVySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmYzk2MmQ3MzcyNTViMjE3
ODY0OTk5ZjljN2EyOWUxYjk0NjFmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9JUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKKwor
I2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitlbnVtIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIElQQ1N0cmVh
bVRlc3RlcklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPElQQ1N0cmVhbVRlc3RlcklkZW50
aWZpZXJUeXBlPjsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDU3RyZWFtVGVzdGVyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU4ODAwYTNk
MzJiZDUxNGY0MjVhNDFiYmY3MTQwNGMyY2E0OWFmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0lQQ1N0cmVhbVRlc3RlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAg
KzEsMjkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVO
QUJMRShJUENfVEVTVElOR19BUEkpCisKK21lc3NhZ2VzIC0+IElQQ1N0cmVhbVRlc3RlclByb3h5
IE5vdFJlZkNvdW50ZWQgeworICAgIHZvaWQgV2FzQ3JlYXRlZChJUEM6OlNlbWFwaG9yZSBzdHJl
YW1XYWtlVXBTZW1hcGhvcmUpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvSVBDVGVzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5j
cHAKaW5kZXggYThkMjU3ZWM2NzM1ZjEwZGE1OTU0ODMwMGNlNmZlM2YyY2RmOWJhMy4uMGQ1NzRi
MGNjNTAzNDEzMzIxN2ZlMzlmMGIwNDBiNTc5ZDJmYzFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvSVBDVGVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENU
ZXN0ZXIuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkK
ICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiRGVjb2Rlci5oIgorI2luY2x1ZGUg
IklQQ1N0cmVhbVRlc3Rlci5oIgogCiAjaW5jbHVkZSA8YXRvbWljPgogI2luY2x1ZGUgPGRsZmNu
Lmg+CkBAIC0xMzAsNiArMTMxLDIwIEBAIHZvaWQgSVBDVGVzdGVyOjpzdG9wTWVzc2FnZVRlc3Rp
bmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcikKICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCit2b2lkIElQQ1Rlc3Rlcjo6Y3JlYXRlU3RyZWFtVGVzdGVy
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCit7CisgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3N0cmVhbVRlc3RlcnMuZW5zdXJlKGlkZW50aWZpZXIsIFsmXSB7
CisgICAgICAgIHJldHVybiBJUEM6OlNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWU8SVBD
U3RyZWFtVGVzdGVyPiB7IElQQ1N0cmVhbVRlc3Rlcjo6Y3JlYXRlKGNvbm5lY3Rpb24sIGlkZW50
aWZpZXIsIFdURk1vdmUoc3RyZWFtKSkgfTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVU5VU0VEKGFk
ZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkgfHwgaXNUZXN0aW5nSVBDKCkpOworfQorCit2
b2lkIElQQ1Rlc3Rlcjo6cmVsZWFzZVN0cmVhbVRlc3RlcihJUENTdHJlYW1UZXN0ZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBtX3N0cmVhbVRlc3RlcnMucmVtb3ZlKGlkZW50aWZpZXIpOworICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgSVBDVGVzdGVyOjpzdG9wSWZOZWVkZWQoKQog
ewogICAgIGlmIChtX3Rlc3RRdWV1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvSVBDVGVzdGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaAppbmRleCBl
YTQ5MzM1NmQ0MzkyYzNmYTdiNWY3ZjVlMmI1NjRmNjUzMzI3ZmQyLi42OGJiNmNiYjE0ZjU4YjEz
NzYxZWFkOWNkNWIzOGE5YzlkYjlmYmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9JUENUZXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIuaApAQCAt
MjYsMTAgKzI2LDIyIEBACiAjcHJhZ21hIG9uY2UKIAogCisjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKKworI2luY2x1ZGUgIklQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTY29wZWRBY3RpdmVNZXNzYWdlUmVjZWl2
ZVF1ZXVlLmgiCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCisjaW5jbHVkZSAiU3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlci5oIgorI2luY2x1ZGUgIlN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaCIK
KyNpbmNsdWRlICJTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJTdHJlYW1TZXJ2
ZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKICNkZWZpbmUgQVNTRVJUX0lTX1RFU1RJTkdfSVBDKCkgQVNTRVJUKGlzVGVzdGlu
Z0lQQygpLCAiVW50cnVzdGVkIGNvbm5lY3Rpb24gc2VudCBpbnZhbGlkIGRhdGEuIFNob3VsZCBv
bmx5IGhhcHBlbiB3aGVuIHRlc3RpbmcgSVBDLiIpCkBAIC00MCw2ICs1Miw5IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogLy8gYW5kIGV4cG9zZXMgYnVncyB1bmRlcm5lYXRoLgogYm9vbCBpc1Rlc3Rp
bmdJUEMoKTsKIAorY2xhc3MgSVBDU3RyZWFtVGVzdGVyOworCisvLyBNYWluIHRlc3QgaW50ZXJm
YWNlIGZvciBpbml0aWF0aW5nIHZhcmlvdXMgSVBDIHRlc3QgYWN0aXZpdGllcy4KIGNsYXNzIElQ
Q1Rlc3RlciBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAg
ICAgSVBDVGVzdGVyKCk7CkBAIC01MiwxMSArNjcsMTYgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNz
YWdlcy4KICAgICB2b2lkIHN0YXJ0TWVzc2FnZVRlc3RpbmcoSVBDOjpDb25uZWN0aW9uJiwgU3Ry
aW5nJiYgZHJpdmVyTmFtZSk7CiAgICAgdm9pZCBzdG9wTWVzc2FnZVRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPik7CisgICAgdm9pZCBjcmVhdGVTdHJlYW1UZXN0ZXIoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllciwgSVBDOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyJiYpOworICAgIHZvaWQgcmVsZWFzZVN0cmVhbVRlc3RlcihJUENTdHJlYW1UZXN0ZXJJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBzdG9w
SWZOZWVkZWQoKTsKIAogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fdGVzdFF1ZXVlOwogICAgIHN0
ZDo6YXRvbWljPGJvb2w+IG1fc2hvdWxkU3RvcCB7IGZhbHNlIH07CisKKyAgICB1c2luZyBTdHJl
YW1UZXN0ZXJNYXAgPSBIYXNoTWFwPElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIsIElQQzo6U2Nv
cGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZTxJUENTdHJlYW1UZXN0ZXI+PjsKKyAgICBTdHJl
YW1UZXN0ZXJNYXAgbV9zdHJlYW1UZXN0ZXJzOwogfTsKIAogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0lQQ1Rlc3Rlci5tZXNzYWdlcy5pbgppbmRleCA3NjVhOTllOThlNTBkZWIzY2Q1MTlk
MWE0N2M4YzJlNTQ0NzI0NWFkLi5jZDI0NGZiMGUxNjkxNDQ4NmY3YjAwNmI4Njc4Y2Y3MGRlNTIz
OGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JUENUZXN0ZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSVBDVGVzdGVyLm1lc3NhZ2VzLmluCkBAIC0y
NSw2ICsyNSw4IEBACiBtZXNzYWdlcyAtPiBJUENUZXN0ZXIgTm90UmVmQ291bnRlZCB7CiAgICAg
U3RhcnRNZXNzYWdlVGVzdGluZyhTdHJpbmcgZHJpdmVyTmFtZSkgV2FudHNDb25uZWN0aW9uCiAg
ICAgU3RvcE1lc3NhZ2VUZXN0aW5nKCkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBDcmVhdGVTdHJl
YW1UZXN0ZXIoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIElQ
Qzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciBzdHJlYW0pIFdhbnRzQ29ubmVjdGlvbgorICAgIFJl
bGVhc2VTdHJlYW1UZXN0ZXIoV2ViS2l0OjpJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpIC0+ICgpIFN5bmNocm9ub3VzCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1h
dFJlYWRlci5jcHAKaW5kZXggZjg5NTdiM2I4ZTQxODYyM2IzYjU2YzAxMjE1NzAwNWJkY2Y2Mjg5
OC4uMWMzMzhjNmEzZThjYmVmYjRjNmU0YmFmNTAyMWIxNTUyNTQ4ZmJmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVh
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFGb3JtYXRSZWFkZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTYW1wbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01l
ZGlhU2FtcGxlQVZGT2JqQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9UcmFja1ByaXZhdGUuaD4KICNpbmNsdWRl
IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggZjc4MTMzNmU1ZWM4MjMyMGZhMDU1ZmZhNzNmOTEwMWRjODhkNjQ4MS4uOTJhNThiMGJkN2Ni
NTMwMzAxYmViMmFiMWU5YjExNTkzOGQwODMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yMzEsNiArMjMx
LDcgQEAgU2hhcmVkL0VkaXRvclN0YXRlLmNwcAogU2hhcmVkL0ZvbnRJbmZvLmNwcAogU2hhcmVk
L0ZyYW1lSW5mb0RhdGEuY3BwCiBTaGFyZWQvSW5zcGVjdG9yRXh0ZW5zaW9uVHlwZXMuY3BwCitT
aGFyZWQvSVBDU3RyZWFtVGVzdGVyLmNwcAogU2hhcmVkL0lQQ1Rlc3Rlci5jcHAKIFNoYXJlZC9M
YXllclRyZWVDb250ZXh0LmNwcAogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmNwcApAQCAtODY4LDYg
Kzg2OSw3IEBAIFdlYlByb2Nlc3MvV2ViU3RvcmFnZS9XZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuY3BwCiAKIFdlYlByb2Nlc3MvWFIvUGxhdGZvcm1YUlN5c3RlbVByb3h5LmNwcAogCitJUENT
dHJlYW1UZXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiBJUENUZXN0ZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBOZXR3b3JrQnJvYWRjYXN0Q2hhbm5lbFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAog
UlRDRGF0YUNoYW5uZWxSZW1vdGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTk1Njg1NWFj
NTliZjdhNWQxN2IyOTFmYTRlMWYxMmUxZWE3ZDViYS4uNjA3MzI4ZTA2YmNjY2E0M2IyOWI1NWYw
MTdkOWIxZWYxMzQ1NGUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMzM4LDYgKzEzMzgsNyBAQAogCQk3QkFCMTExMDI1REQwMkIz
MDA4RkM0NzkgLyogU2NvcGVkQWN0aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JBQjExMEYyNUREMDJCMjAwOEZD
NDc5IC8qIFNjb3BlZEFjdGl2ZU1lc3NhZ2VSZWNlaXZlUXVldWUuaCAqLzsgfTsKIAkJN0JDRjcw
REUyNjE1RDA2RTAwRTRGQjcwIC8qIFNjb3BlZFJlbmRlcmluZ1Jlc291cmNlc1JlcXVlc3RDb2Nv
YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQ0Y3
MENCMjYxNDkzNUUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29j
b2EubW0gKi87IH07CiAJCTdCRERBMzE5Mjc0N0MwNDAwMDM4NjU5RSAvKiAobnVsbCkgaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IH07CisJCTdCRTM3RjkzMjdDN0NBNTEwMDdB
NkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkUzN0Y5MjI3QzdDNTE4MDA3QTZDRDMgLyogSVBD
U3RyZWFtVGVzdGVySWRlbnRpZmllci5oICovOyB9OwogCQk3QzA2NUYyQzFDOENEOTVGMDBDMkQ5
NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzA2NUYyQTFDOENEOTVGMDBDMkQ5NTAg
LyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggKi87IH07CiAJCTdDMTM1QUE5
MTczQjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdpbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzEzNUFBNzE3M0IwQkNBMDA1ODZBRTIg
LyogV0tQbHVnaW5JbmZvcm1hdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdDMUJBMzNFMUE0QTBFNjAwMDQzRTI0OSAvKiBBUElEaWN0aW9u
YXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzFC
QTMzQzFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFyeS5oICovOyB9OwpAQCAtNTE3Nyw2
ICs1MTc4LDkgQEAKIAkJN0JEREEzM0YyNzU2NTJFQTAwMzg2NTlFIC8qIEF1eGlsaWFyeVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV4aWxpYXJ5UHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTM0
MDI3NTY1MkVBMDAzODY1OUUgLyogQXV4aWxpYXJ5UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXhpbGlhcnlQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JFMzdGNkYyN0IxNDc1RjAwN0E2
Q0QzIC8qIFRocmVhZFNhZmVPYmplY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZFNhZmVP
YmplY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRTM3RjkyMjdDN0M1
MTgwMDdBNkNEMyAvKiBJUENTdHJlYW1UZXN0ZXJJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJN0JFMzdGOTQyN0M3Q0Q1MTAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3Rlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJUENTdHJlYW1UZXN0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
N0JFMzdGOTUyN0M3Q0Q5MDAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3Rlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJUENTdHJlYW1UZXN0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkU3MjY1NzI1NzRGNjcyMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFByb3h5RnVuY3Rpb25zR2VuZXJhdGVkLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JFNzI2NjgyNTc2ODBFRjAwRTg1RDk4IC8qIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMDY1RjI5MUM4
Q0Q5NUYwMEMyRDk1MCAvKiBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyRGF0YVR5cGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTczMDIsNiAr
NzMwNiw5IEBACiAJCQkJQkNDRjZCMjMxMkM5M0U3QTAwOEY5QzM1IC8qIEltYWdlT3B0aW9ucy5o
ICovLAogCQkJCTk5OUI3RUQ4MjU1MEU0QTgwMEY0NTBBNCAvKiBJbnNwZWN0b3JFeHRlbnNpb25U
eXBlcy5jcHAgKi8sCiAJCQkJOTlCRTNCMTYyNTQzM0I5NDAwQzY1NTFDIC8qIEluc3BlY3RvckV4
dGVuc2lvblR5cGVzLmggKi8sCisJCQkJN0JFMzdGOTUyN0M3Q0Q5MDAwN0E2Q0QzIC8qIElQQ1N0
cmVhbVRlc3Rlci5jcHAgKi8sCisJCQkJN0JFMzdGOTQyN0M3Q0Q1MTAwN0E2Q0QzIC8qIElQQ1N0
cmVhbVRlc3Rlci5oICovLAorCQkJCTdCRTM3RjkyMjdDN0M1MTgwMDdBNkNEMyAvKiBJUENTdHJl
YW1UZXN0ZXJJZGVudGlmaWVyLmggKi8sCiAJCQkJN0I1MEU5N0YyNzcxRjZDRTAwM0RBQUM0IC8q
IElQQ1Rlc3Rlci5jcHAgKi8sCiAJCQkJN0I1MEU5ODAyNzcxRjZDRjAwM0RBQUM0IC8qIElQQ1Rl
c3Rlci5oICovLAogCQkJCTFBOTJEQzEyMTJGOEJBQjkwMDE3QUY2NSAvKiBMYXllclRyZWVDb250
ZXh0LmNwcCAqLywKQEAgLTEzMjQ0LDYgKzEzMjUxLDcgQEAKIAkJCQlDNUJDRTVERjFDNTA3NjZB
MDBDREUzRkEgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJENEQyQzgxMURGNjBCRjMwMDJFQjEwQyAvKiBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTMxRjYwQTQyNUNDN0RCOTAwQUYxNEY0
IC8qIElQQ1NlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JFMzdGOTMyN0M3Q0E1MTAw
N0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTlCNDc5MDhGMjUzMTUxQ0MwMEVDMTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNl
WFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUU5MDQ5QTI3QkNCOUQ0MDA5MjlF
N0UgLyogTGF1bmNoU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvSVBDVGVzdGluZ0FQSS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAppbmRleCA0M2U0NTE3
OTNmMDUxOGNlYTVmZWEzNTI4NTlhZDQ2NDI2MDdmZjIxLi43M2ZiMzEwMWUyNmM2YzZmMWQyNWNj
MWFhY2Q0YzEzYTEyMTc3NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9JUENUZXN0aW5nQVBJLmNwcApAQCAtNjEsNiArNjEsMTIgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIG5hbWVzcGFjZSBJUENUZXN0aW5nQVBJIHsKIAorc3RhdGljIGNvbnN0ZXhwciBh
dXRvIHByb2Nlc3NUYXJnZXROYW1lVUkgPSAiVUkiX3M7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nlc3NUYXJnZXROYW1lR1BVID0gIkdQVSJfczsK
KyNlbmRpZgorc3RhdGljIGNvbnN0ZXhwciBhdXRvIHByb2Nlc3NUYXJnZXROYW1lTmV0d29ya2lu
ZyA9ICJOZXR3b3JraW5nIl9zOworCiBzdGF0aWMgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gZGVz
dGluYXRpb25JREZyb21Bcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZVJlZiwg
SlNWYWx1ZVJlZiopOwogc3RhdGljIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IG1lc3NhZ2VJREZy
b21Bcmd1bWVudChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZVJlZiwgSlNWYWx1ZVJlZiop
Owogc3RhdGljIEpTQzo6SlNPYmplY3QqIGpzUmVzdWx0RnJvbVJlcGx5RGVjb2RlcihKU0M6OkpT
R2xvYmFsT2JqZWN0KiwgSVBDOjpNZXNzYWdlTmFtZSwgSVBDOjpEZWNvZGVyJik7CkBAIC0yNzAs
NiArMjc2LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgSlNWYWx1ZVJlZiByZXRyaWV2ZUlEKEpT
Q29udGV4dFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
LCBjb25zdCBXVEY6OkZ1bmN0aW9uPHVpbnQ2NF90KEpTSVBDJik+Jik7CiAKICAgICBzdGF0aWMg
SlNWYWx1ZVJlZiBtZXNzYWdlcyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0cmluZ1Jl
ZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKKyAgICBzdGF0aWMgSlNWYWx1ZVJlZiBwcm9jZXNz
VGFyZ2V0cyhKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKIAogICAgIFdlYWtQdHI8V2ViUGFnZT4gbV93ZWJQYWdlOwogICAgIFdl
YWtQdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CkBAIC05NDEsNiArOTQ4LDcgQEAgY29uc3QgSlNT
dGF0aWNWYWx1ZSogSlNJUEM6OnN0YXRpY1ZhbHVlcygpCiAgICAgICAgIHsgInNlc3Npb25JRCIs
IHNlc3Npb25JRCwgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB9LAogICAgICAgICB7ICJ3ZWJQYWdlUHJveHlJRCIsIHdlYlBh
Z2VQcm94eUlELCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IH0sCiAgICAgICAgIHsgIm1lc3NhZ2VzIiwgbWVzc2FnZXMsIDAs
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfSwKKyAgICAgICAgeyAicHJvY2Vzc1RhcmdldHMiLCBwcm9jZXNzVGFyZ2V0cywgMCwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIHwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB9LAogICAgICAgICB7IDAsIDAsIDAsIDAgfQogICAgIH07CiAgICAgcmV0dXJuIHZhbHVl
czsKQEAgLTk1MywxMyArOTYxLDEzIEBAIHN0YXRpYyBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBw
cm9jZXNzVGFyZ2V0RnJvbUFyZ3VtZW50KEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsCiAgICAgaWYg
KHNjb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGlmIChu
YW1lID09ICJVSSIpCisgICAgaWYgKG5hbWUgPT0gcHJvY2Vzc1RhcmdldE5hbWVVSSkKICAgICAg
ICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCk7CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgIGlmIChuYW1lID09ICJHUFUiKQorICAg
IGlmIChuYW1lID09IHByb2Nlc3NUYXJnZXROYW1lR1BVKQogICAgICAgICByZXR1cm4gJldlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpOwogI2VuZGlmCi0gICAgaWYgKG5hbWUgPT0gIk5ldHdvcmtpbmciKQorICAgIGlmIChuYW1l
ID09IHByb2Nlc3NUYXJnZXROYW1lTmV0d29ya2luZykKICAgICAgICAgcmV0dXJuICZXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0
aW9uKCk7CiAKICAgICAqZXhjZXB0aW9uID0gdG9SZWYoSlNDOjpjcmVhdGVUeXBlRXJyb3IoZ2xv
YmFsT2JqZWN0LCAiVGFyZ2V0IHByb2Nlc3MgbXVzdCBiZSBVSSwgR1BVLCBvciBOZXR3b3JraW5n
Il9zKSk7CkBAIC0xODU2LDYgKzE4NjQsMzIgQEAgSlNWYWx1ZVJlZiBKU0lQQzo6bWVzc2FnZXMo
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW4KICAg
ICByZXR1cm4gdG9SZWYodm0sIG1lc3NhZ2VzT2JqZWN0KTsKIH0KIAorSlNWYWx1ZVJlZiBKU0lQ
Qzo6cHJvY2Vzc1RhcmdldHMoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgYXV0byog
Z2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKKyAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKworICAgIGF1dG8qIGlt
cGwgPSB0b1dyYXBwZWQoY29udGV4dCwgdGhpc09iamVjdCk7CisgICAgaWYgKCFpbXBsKSB7Cisg
ICAgICAgICpleGNlcHRpb24gPSB0b1JlZihKU0M6OmNyZWF0ZVR5cGVFcnJvcih0b0pTKGNvbnRl
eHQpLCAiV3JvbmcgdHlwZSJfcykpOworICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CisgICAgfQorICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKKyAgICBKU0M6OkpTT2JqZWN0KiBwcm9jZXNzVGFyZ2V0c09iamVjdCA9IEpTQzo6Y29u
c3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOworICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKKyAgICBpbnQg
aW5kZXggPSAwOworICAgIHByb2Nlc3NUYXJnZXRzT2JqZWN0LT5wdXREaXJlY3RJbmRleChnbG9i
YWxPYmplY3QsIGluZGV4KyssIEpTQzo6anNTdHJpbmcodm0sIHByb2Nlc3NUYXJnZXROYW1lVUkp
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KSk7CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgIHByb2Nlc3NUYXJnZXRzT2Jq
ZWN0LT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGluZGV4KyssIEpTQzo6anNTdHJpbmco
dm0sIHByb2Nlc3NUYXJnZXROYW1lR1BVKSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOworI2VuZGlmCisgICAgcHJvY2Vzc1Rh
cmdldHNPYmplY3QtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaW5kZXgrKywgSlNDOjpq
c1N0cmluZyh2bSwgcHJvY2Vzc1RhcmdldE5hbWVOZXR3b3JraW5nKSk7CisgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkpOworICAgIHJl
dHVybiB0b1JlZih2bSwgcHJvY2Vzc1RhcmdldHNPYmplY3QpOworfQorCiBKU01lc3NhZ2VMaXN0
ZW5lcjo6SlNNZXNzYWdlTGlzdGVuZXIoSlNJUEMmIGpzSVBDLCBUeXBlIHR5cGUsIEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBjYWxsYmFjaykKICAgICA6IG1fanNJUEMoanNJUEMp
CiAgICAgLCBtX3R5cGUodHlwZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA2M2UxMTI5ZTA2ODhhNjQ5OTJmMzhlM2I0OWU1OTI1YjJhN2FmYjY0
Li43MjI1YmQ1MjQyYzI3YmMwZTEyZTVlMTY3YjYxNmE4ZmQxMTRmYjQ5IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MjItMDItMjUgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSRUdSRVNTSU9OKHIyODk1ODApOiBbIGlPUyBtYWNPUyBdIFRlc3RXZWJLaXRBUEkuSVBDVGVz
dGluZ0FQSS5DYW5SZWNlaXZlU2hhcmVkTWVtb3J5IGlzIGEgY29uc3RhbnQgdGltZW91dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2NzQ0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEkubW06CisKIDIwMjItMDItMjMgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBtb3JlIHdpZGVs
eSB0aGUgbmV3IFVSTCBjb25zdHJ1Y3RvciB0aGF0IHRha2VzIGluIGEgU3RyaW5nCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEku
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lQQ1Rlc3RpbmdBUEku
bW0KaW5kZXggYzQ5MjFiZmJiYjhiOTZhM2ZiOTFlZTNiMWY2N2I2YTc4MzU3ODlhMy4uZDVjZTE4
MzQxM2RlOTA0ZjY5NWE1YzMwYTg2MTU2OTVmNTVlMGMzZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JUENUZXN0aW5nQVBJLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSVBDVGVzdGluZ0FQSS5tbQpAQCAtOTYs
NiArOTYsOCBAQCBURVNUKElQQ1Rlc3RpbmdBUEksIElzRGlzYWJsZWRCeURlZmF1bHQpCiAgICAg
RVhQRUNUX1NUUkVRKFthbGVydE1lc3NhZ2UgVVRGOFN0cmluZ10sICJ1bmRlZmluZWQiKTsKIH0K
IAorLy8gTm90ZTogVGhlcmUgYXJlIG1vcmUgSVBDIHRlc3RzIHVzaW5nIElQQyB0ZXN0aW5nIEFQ
SSBpbiBgTGF5b3V0VGVzdHMvaXBjYC4KKwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAK
IHN0YXRpYyBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gY3JlYXRlV2ViVmlld1dpdGhJUENUZXN0
aW5nQVBJKCkKQEAgLTMwOSwzOCArMzExLDYgQEAgVEVTVChJUENUZXN0aW5nQVBJLCBDYW5SZWNl
aXZlSVBDU2VtYXBob3JlKQogICAgIEVYUEVDVF9TVFJFUShbYWxlcnRNZXNzYWdlIFVURjhTdHJp
bmddLCAiMTpTZW1hcGhvcmU6ZmFsc2UiKTsKIH0KIAotLy8gRklYTUU6IFJlLWVuYWJsZSB0aGlz
IHRlc3Qgb25jZSB3ZWJraXQub3JnL2IvMjM2NzQ0IGlzIHJlc29sdmVkLgotVEVTVChJUENUZXN0
aW5nQVBJLCBESVNBQkxFRF9DYW5SZWNlaXZlU2hhcmVkTWVtb3J5KQotewotICAgIGF1dG8gd2Vi
VmlldyA9IGNyZWF0ZVdlYlZpZXdXaXRoSVBDVGVzdGluZ0FQSSgpOwotCi0gICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tJUENUZXN0aW5nQVBJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKLQotICAgIGF1dG8gaHRt
bCA9IEAiPCFET0NUWVBFIGh0bWw+IgotICAgICAgICAiPHNjcmlwdD4iCi0gICAgICAgICJjb25z
dCBidWZmZXJTaXplID0gMSA8PCAxNjsiCi0gICAgICAgICJjb25zdCBzdHJlYW1Db25uZWN0aW9u
ID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24oJ0dQVScsIGJ1ZmZlclNpemUpOyIK
LSAgICAgICAgIklQQy5zZW5kTWVzc2FnZSgnR1BVJywgMCwgSVBDLm1lc3NhZ2VzLkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NfQ3JlYXRlUmVuZGVyaW5nQmFja2VuZC5uYW1lLCBbIgotICAgICAg
ICAiICAgIHsgdHlwZTogJ1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRDcmVhdGlvblBhcmFtZXRlcnMn
LCAnaWRlbnRpZmllcic6IDEyMywgJ3BhZ2VQcm94eUlEJzogSVBDLndlYlBhZ2VQcm94eUlELCAn
cGFnZUlEJzogSVBDLnBhZ2VJRCB9LCIKLSAgICAgICAgIiAgICB7IHR5cGU6ICdTdHJlYW1Db25u
ZWN0aW9uQnVmZmVyJywgdmFsdWU6IHN0cmVhbUNvbm5lY3Rpb24uc3RyZWFtQnVmZmVyKCkgfSwi
Ci0gICAgICAgICJdKTsiCi0gICAgICAgICJjb25zdCBhcmd1bWVudHMgPSBJUEMud2FpdEZvck1l
c3NhZ2UoJ0dQVScsIDEyMywgSVBDLm1lc3NhZ2VzLlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eV9EaWRDcmVhdGVXYWtlVXBTZW1hcGhvcmVGb3JEaXNwbGF5TGlzdFN0cmVhbS5uYW1lLCAxMDAp
OyIKLSAgICAgICAgInN0cmVhbUNvbm5lY3Rpb24uc2V0V2FrZVVwU2VtYXBob3JlKGFyZ3VtZW50
c1swXS52YWx1ZSk7IgotICAgICAgICAiY29uc3QgcmVzdWx0ID0gc3RyZWFtQ29ubmVjdGlvbi5z
ZW5kU3luY01lc3NhZ2UoMTIzLCBJUEMubWVzc2FnZXMuUmVtb3RlUmVuZGVyaW5nQmFja2VuZF9V
cGRhdGVTaGFyZWRNZW1vcnlGb3JHZXRQaXhlbEJ1ZmZlci5uYW1lLCAxMDAsIFt7dHlwZTogJ3Vp
bnQzMl90JywgdmFsdWU6IDh9XSk7IgotICAgICAgICAiYWxlcnQocmVzdWx0LmFyZ3VtZW50cy5s
ZW5ndGgpOyIKLSAgICAgICAgIjwvc2NyaXB0PiI7Ci0KLSAgICBkb25lID0gZmFsc2U7Ci0gICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmh0bWxdOwotICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Ci0KLSAgICBFWFBFQ1RfRVEoW2FsZXJ0TWVzc2FnZSBp
bnRWYWx1ZV0sIDEpOwotICAgIEVYUEVDVF9TVFJFUShbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZmlyc3RSZXBseSA9IHJlc3VsdC5hcmd1bWVudHNbMF07IGZpcnN0UmVw
bHkudHlwZSJdLlVURjhTdHJpbmcsICJTaGFyZWRNZW1vcnkiKTsKLSAgICBFWFBFQ1RfU1RSRVEo
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImZpcnN0UmVwbHkucHJvdGVj
dGlvbiJdLlVURjhTdHJpbmcsICJSZWFkT25seSIpOwotICAgIEVYUEVDVF9TVFJFUShbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiQXJyYXkuZnJvbShuZXcgVWludDhBcnJh
eShmaXJzdFJlcGx5LnZhbHVlLnJlYWRCeXRlcygwLCA4KSkpLnRvU3RyaW5nKCkiXS5VVEY4U3Ry
aW5nLCAiMCwwLDAsMCwwLDAsMCwwIik7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKIFRFU1QoSVBDVGVzdGluZ0FQSSwgQ2FuQ3JlYXRlSVBDU2VtYXBob3JlKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDU0ZmRkY2NjODU2MGNkMDFiZjlkZjg3MzU3ZGU1ODE4YjVmYWVhYmMuLmVlZGJjN2YzYWNlYmQz
ZDY2Mjg1NjkzZmJiODJiMDRmODZkZjc2ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0w
Mi0yNSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJF
R1JFU1NJT04ocjI4OTU4MCk6IFsgaU9TIG1hY09TIF0gVGVzdFdlYktpdEFQSS5JUENUZXN0aW5n
QVBJLkNhblJlY2VpdmVTaGFyZWRNZW1vcnkgaXMgYSBjb25zdGFudCB0aW1lb3V0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3NDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlwYy9zdHJlYW0tc3lu
Yy1yZXBseS1zaGFyZWQtbWVtb3J5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaXBj
L3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbDogQWRkZWQuCisKIDIwMjItMDIt
MjMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjkwMjg0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaXBj
L3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnktZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjliNWU4OTQyMWY2OTUzNWUwN2Q0MWY3YzBmMmY3MWU3NTllOGU1ZDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9y
eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdCB0aGF0IHN0cmVhbSBz
eW5jIG1lc3NhZ2UgY2FuIHJlcGx5IHdpdGggc2hhcmVkIG1lbW9yeQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pcGMvc3RyZWFtLXN5bmMtcmVwbHktc2hhcmVkLW1lbW9yeS5odG1sIGIvTGF5
b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnkuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZjAyOWFkMWUyY2ZkZmQ3ZGY5OTNjMjdlNjI2NWNkZWVmZWQ0NWQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaXBjL3N0cmVhbS1zeW5jLXJlcGx5LXNoYXJlZC1tZW1vcnku
aHRtbApAQCAtMCwwICsxLDM1IEBACis8IWRvY3R5cGUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIElQQ1Rlc3RpbmdBUElFbmFibGVkPXRydWUgXSAtLT4KKzx0aXRsZT5UZXN0IHRoYXQg
c3RyZWFtIHN5bmMgbWVzc2FnZSBjYW4gcmVwbHkgd2l0aCBzaGFyZWQgbWVtb3J5PC90aXRsZT4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitzZXR1cCh7IHNpbmdsZV90ZXN0OiB0cnVlIH0pOworaWYgKHdpbmRv
dy5JUEMpIHsgLy8gRm9yIGNvbXBpbGVzIHdpdGggIUVOQUJMRShJUENfVEVTVElOR19BUEkpCisg
ICAgY29uc3QgZGVmYXVsdFRpbWVvdXQgPSAxMDAwOworICAgIGNvbnN0IGJ1ZmZlclNpemUgPSAx
MDA7CisgICAgY29uc3Qgc3RyZWFtVGVzdGVySUQgPSA0NDc7CisgICAgZm9yIChjb25zdCBwcm9j
ZXNzVGFyZ2V0IG9mIElQQy5wcm9jZXNzVGFyZ2V0cykgeworICAgICAgICBjb25zdCBzdHJlYW1D
b25uZWN0aW9uID0gSVBDLmNyZWF0ZVN0cmVhbUNsaWVudENvbm5lY3Rpb24ocHJvY2Vzc1Rhcmdl
dCwgYnVmZmVyU2l6ZSk7CisgICAgICAgIElQQy5zZW5kTWVzc2FnZShwcm9jZXNzVGFyZ2V0LCAw
LCBJUEMubWVzc2FnZXMuSVBDVGVzdGVyX0NyZWF0ZVN0cmVhbVRlc3Rlci5uYW1lLCBbCisgICAg
ICAgICAgICB7IHR5cGU6ICd1aW50NjRfdCcsIHZhbHVlOiBzdHJlYW1UZXN0ZXJJRCB9LAorICAg
ICAgICAgICAgeyB0eXBlOiAnU3RyZWFtQ29ubmVjdGlvbkJ1ZmZlcicsIHZhbHVlOiBzdHJlYW1D
b25uZWN0aW9uLnN0cmVhbUJ1ZmZlcigpIH0sCisgICAgICAgIF0pOworICAgICAgICBjb25zdCBh
cmd1bWVudHMgPSBJUEMud2FpdEZvck1lc3NhZ2UocHJvY2Vzc1RhcmdldCwgc3RyZWFtVGVzdGVy
SUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1UZXN0ZXJQcm94eV9XYXNDcmVhdGVkLm5hbWUsIGRl
ZmF1bHRUaW1lb3V0KTsKKyAgICAgICAgc3RyZWFtQ29ubmVjdGlvbi5zZXRXYWtlVXBTZW1hcGhv
cmUoYXJndW1lbnRzWzBdLnZhbHVlKTsKKworICAgICAgICAvLyBUZXN0IHN0YXJ0cyBoZXJlLgor
ICAgICAgICB0cnkgeworICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc3RyZWFtQ29ubmVjdGlv
bi5zZW5kU3luY01lc3NhZ2Uoc3RyZWFtVGVzdGVySUQsIElQQy5tZXNzYWdlcy5JUENTdHJlYW1U
ZXN0ZXJfU3luY01lc3NhZ2VSZXR1cm5pbmdTaGFyZWRNZW1vcnkxLm5hbWUsIGRlZmF1bHRUaW1l
b3V0LCBbeyB0eXBlOiAndWludDMyX3QnLCB2YWx1ZTogOCB9XSk7CisgICAgICAgICAgICBjb25z
dCBmaXJzdFJlcGx5ID0gcmVzdWx0LmFyZ3VtZW50c1swXTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZmlyc3RSZXBseS50eXBlLCAiU2hhcmVkTWVtb3J5IiwgYGZvciAkeyBwcm9jZXNzVGFy
Z2V0IH1gKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZmlyc3RSZXBseS5wcm90ZWN0aW9u
LCAiUmVhZE9ubHkiLCBgZm9yICR7IHByb2Nlc3NUYXJnZXQgfWApOworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGZpcnN0UmVwbHkudmFsdWUucmVh
ZEJ5dGVzKDAsIDgpKSkudG9TdHJpbmcoKSwgIjAsMSwyLDMsNCw1LDYsNyIsIGBmb3IgJHsgcHJv
Y2Vzc1RhcmdldCB9YCk7CisgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICBJUEMuc2Vu
ZFN5bmNNZXNzYWdlKHByb2Nlc3NUYXJnZXQsIDAsIElQQy5tZXNzYWdlcy5JUENUZXN0ZXJfUmVs
ZWFzZVN0cmVhbVRlc3Rlci5uYW1lLCBkZWZhdWx0VGltZW91dCwgW3sgdHlwZTogJ3VpbnQ2NF90
JywgdmFsdWU6IHN0cmVhbVRlc3RlcklEIH1dKTsKKyAgICAgICAgfQorICAgIH0KK30KK2RvbmUo
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>