<?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>238731</bug_id>
          
          <creation_ts>2022-04-04 03:30:55 -0700</creation_ts>
          <short_desc>Source/WebKit code should be testable with C++ unit tests</short_desc>
          <delta_ts>2022-08-10 04:38:13 -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>Tools / Tests</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>243780</dependson>
          <blocked>238515</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1857801</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-04 03:30:55 -0700</bug_when>
    <thetext>Source/WebKit code should be testable with C++ unit tests

Source/WebKit contains very untrivial code, and it should be possible to write C++ unit tests for this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857807</commentid>
    <comment_count>1</comment_count>
      <attachid>456556</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-04 03:56:29 -0700</bug_when>
    <thetext>Created attachment 456556
Strawman with BUILD_FOR_TESTING</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857808</commentid>
    <comment_count>2</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-04 04:17:53 -0700</bug_when>
    <thetext>Limiting the solutions to the current build system and to the logic of having tests in TestWebKitAPI:

The options I can come up with with:
1) Use BUILD_FOR_TESTING to select whether to export the tested symbols from WebKit or not

2) ??



The workaround options sometimes discussed but which I don&apos;t think work:

N1) Helper static library: &quot;add some testing functionality to WebKitTestSupport.a&quot;.
The goal is to test the interfaces extensively. It is not feasible to duplicate the tested interfaces into another header. E.g. to test IPC::Connection, it is not feasible to re-type the whole of IPC::Connection interface to WebKitTestSupport.h to test each and every aspect of said interface.
   

N2) Helper static library: build the tests inside WebKitTestSupport.a
The tests need the tested symbols. IPC::Connection cannot exist in WebKit and WebKitTestSupport at the same time.


N3) Main dynamic library: build the tests inside WebKit.framework
The tests need to use gtest symbols to execute the gtest framework logic, assertions, etc. these cannot exist in WebKit.framework and TestWebKitAPI at the same time

The tests need to use the TestWebKitAPI helpers to print, setup, etc. misc functionality. These cannot exist in WebKit.framework and TestWebKitAPI at the same time

N4) Test via layout tests, expose each and all tested interfaces through JS
It is not feasible or possible to expose all nuances of the C++ interfaces through the JS bindings. Also, this is laboursome extra work to maintain JS bindings to C++ for the sole purpose of running C++ methods. See IPC_TESTING_API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857813</commentid>
    <comment_count>3</comment_count>
      <attachid>456557</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-04 04:26:02 -0700</bug_when>
    <thetext>Created attachment 456557
Strawman with BUILD_FOR_TESTING</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857887</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-04-04 09:34:20 -0700</bug_when>
    <thetext>I appreciate the analysis of challenges around other approaches. 

I still think that this approach doesn&apos;t work either - we just can&apos;t have a &quot;for testing&quot; build that exports different symbols and headers. One of the reasons is shown by EWS, where tapi failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857970</commentid>
    <comment_count>5</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-04-04 11:44:56 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #4)
&gt; I appreciate the analysis of challenges around other approaches. 
&gt; 
&gt; I still think that this approach doesn&apos;t work either - we just can&apos;t have a
&gt; &quot;for testing&quot; build that exports different symbols and headers. One of the
&gt; reasons is shown by EWS, where tapi failed.

Can you expand? Did having &quot;for testing&quot; build break something?

I&apos;ll still try quickly to expand the patch tomorrow, as currently there are no proposed alternatives.

I&apos;ll try to workaround the header issue by introducing empty libWebKitTestSupport and have the implementation-private WebKit headers be associated with that project as project headers, so they don&apos;t mix with real WebKit framework headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858012</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-04-04 13:04:05 -0700</bug_when>
    <thetext>&gt; Can you expand? Did having &quot;for testing&quot; build break something?

Some of the EWS failures are caused by exports not matching API/SPI headers. It is an invariant that WebKit exports exactly the same symbols as what is exposed in API/SPI.

error: headers don&apos;t have symbol &apos;__ZN3IPC10Connection22createClientConnectionENS0_10IdentifierERNS0_6ClientE&apos;
error: headers don&apos;t have symbol &apos;__ZN3IPC10Connection22createServerConnectionENS0_10IdentifierERNS0_6ClientE&apos;
error: headers don&apos;t have symbol &apos;__ZN3IPC10Connection30createConnectionIdentifierPairEv&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860245</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-11 03:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/91556917&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456556</attachid>
            <date>2022-04-04 03:56:29 -0700</date>
            <delta_ts>2022-04-04 04:25:58 -0700</delta_ts>
            <desc>Strawman with BUILD_FOR_TESTING</desc>
            <filename>bug-238731-20220404135627.patch</filename>
            <type>text/plain</type>
            <size>25056</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ1ZWQ2OTk2NjBkZDAyMThl
MTNhY2UxOGVjMjM4Y2RiNmZhMzg4NGYuLjUyYmMxYjM0NmM0NjRkN2E3MzZkOGViMjQ3ODkxMjk1
YjdlMTE3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDQtMDQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBTb3VyY2UvV2ViS2l0IGNv
ZGUgc2hvdWxkIGJlIHRlc3RhYmxlIHdpdGggQysrIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODczMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgc3RyYXdtYW4gZXhhbXBsZSBvZiBo
b3cgU291cmNlL1dlYktpdCBjb3VsZCBiZSB0ZXN0ZWQgdXNpbmcgRU5BQkxFKEJVSUxEX0ZPUl9U
RVNUSU5HKS4KKyAgICAgICAgVGhlIGlkZWEgd291bGQgYmUgdG86CisgICAgICAgICAtIEV4cG9y
dCB0ZXN0aW5nLXJlbGF0ZWQgc3ltYm9scyB3aGVuIEJVSUxEX0ZPUl9URVNUSU5HID09IDEKKyAg
ICAgICAgIC0gTm90IGV4cG9ydCBub24gV0sgc3ltYm9scyBmb3IgcHJvZHVjdGlvbgorCisgICAg
ICAgIFByb2JsZW1zOgorICAgICAgICAgIC0gSG93IHRvIGdldCB0aGUgaGVhZGVycyB0byBUZXN0
V2ViS2l0QVBJPworICAgICAgICAgICAgV2ViQ29yZSBnZXRzIHRoZSBoZWFkZXJzIGJ5IGRpc3Ry
aWJ1dGluZyB0aGUgdGVzdGVkIGhlYWRlcnMgYXMgcHJvamVjdCBwcml2YXRlIGhlYWRlcnMuCisg
ICAgICAgICAgICBDdXJyZW50bHkgV2ViS2l0IGRvZXMgbm90IGhhdmUgdGhpcyBjb25jZXB0Lgor
ICAgICAgICAgICAgQWxzbywgU291cmNlL1dlYktpdCB0ZXN0aW5nIHdvdWxkIG5lZWQgdG8gaGF2
ZSB0aGUgZGVyaXZlZCBzb3VyY2VzIGFzIHBhcnQgb2YgcHJvamVjdCBwcml2YXRlCisgICAgICAg
ICAgICBoZWFkZXJzLCBzaW5jZSBhIGxvdCBvZiBTb3VyY2UvV2ViS2l0IGlzIGJhc2VkIG9uIHRo
ZSBkZXJpdmVkIHNvdXJjZXMuCisgICAgICAgICAgLSBIb3cgdG8gZ2VuZXJhdGUgdGhlIHN5bWJv
bHMgaW4gV2ViS2l0LlRlc3RpbmcuZXhwPyBBcHBhcmVudGx5IHRoYXQgaXMgZW5mb3JjZWQgZm9y
IHNvbWUgcmVhc29uLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWc6CisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjb25maWcuaDoKKwogMjAyMi0wNC0wMyAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBfV0tEYXRhVGFz
ayBkb2Vzbid0IHdvcmsgaW4gbWFjQ2F0YWx5c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpp
bmRleCA0NTBkZTZiYmE4ZmYyYTFkY2Y3ZGE2ZTdlZjc3NDdlZWM2NjdkYjNiLi4wZGQ5Y2ZhYjk3
YTA4YzZjYTU2ODAxMWEzOGQ1ODEyNDYzZTljMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMDQgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBTb3VyY2UvV2ViS2l0IGNvZGUgc2hvdWxkIGJlIHRl
c3RhYmxlIHdpdGggQysrIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODczMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViS2l0UHJlZml4Lmg6CisKIDIwMjItMDMtMjQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5kKCkgLyBy
ZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0
ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcKaW5kZXggZmI0MWUyZDBkY2Q5NzM1YjZhZDdkNTg0NGY4ZGYyMjBlNjI1MTVkMy4uNWIxMWMz
NWEzZjZlZGZmODgzMzNiOTQzMWJlYTFlMjNkYTEyMDQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29u
ZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtMTMwLDYgKzEzMCw4IEBAIENPREVfU0lHTl9J
REVOVElUWSA9IC07CiBTVVBQT1JURURfUExBVEZPUk1TID0gaXBob25lb3MgaXBob25lc2ltdWxh
dG9yIG1hY29zeCBhcHBsZXR2b3MgYXBwbGV0dnNpbXVsYXRvciB3YXRjaG9zIHdhdGNoc2ltdWxh
dG9yOwogU1VQUE9SVFNfTUFDQ0FUQUxZU1QgPSBZRVM7CiAKK09USEVSX0NGTEFHUyA9ICQoaW5o
ZXJpdGVkKSAkKFdLX0NGTEFHU19CVUlMRF9GT1JfVEVTVElOR18kKFdLX0JVSUxEX0ZPUl9URVNU
SU5HKSkKKwogT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRlZCkgLWlzeXN0ZW0gJChT
REtST09UKS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbS5mcmFtZXdvcmsvUHJpdmF0
ZUhlYWRlcnM7CiAKIFNVUFBPUlRTX1RFWFRfQkFTRURfQVBJW3Nkaz1pcGhvbmUqXSA9IFlFUzsK
QEAgLTE0Myw2ICsxNDUsOCBAQCBUQVBJX1ZFUklGWV9NT0RFW3Nkaz1pcGhvbmUqXSA9IFBlZGFu
dGljOwogLy8gVGhpcyBpcyByZXF1aXJlZCB0byBtYWtlIExMVk1fVEFSR0VUX1RSSVBMRV9TVUZG
SVggcHJvcGFnYXRlIGludG8gc2NyaXB0cy4KIExMVk1fVEFSR0VUX1RSSVBMRV9TVUZGSVggPSAk
KGluaGVyaXRlZCk7CiAKK1dLX0NGTEFHU19CVUlMRF9GT1JfVEVTVElOR19ZRVMgPSAtREVOQUJM
RV9CVUlMRF9GT1JfVEVTVElORzsKKwogV0tfQ09DT0FfVE9VQ0ggPSAkKFdLX0NPQ09BX1RPVUNI
XyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfQ09DT0FfVE9VQ0hfaXBob25lb3MgPSBjb2NvYXRv
dWNoOwogV0tfQ09DT0FfVE9VQ0hfaXBob25lc2ltdWxhdG9yID0gY29jb2F0b3VjaDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGVidWdSZWxlYXNlLnhjY29uZmln
IGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKaW5k
ZXggZWE0MTBiMWI3YzE0MmEwMGFiZTMxYmFhOWM2NDFmYWQ0ODdiMjdjYi4uMTk3YzA1MjRlNDQ5
OWRjOGU2MDUxNDk3NzZlODgwOTc4Y2FhZTU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9D
b25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKQEAgLTM1LDYgKzM1LDggQEAgU0RL
Uk9PVCA9ICQoU0RLUk9PVF8kKFVTRV9JTlRFUk5BTF9TREspKTsKIFNES1JPT1RfID0gbWFjb3N4
OwogU0RLUk9PVF9ZRVMgPSBtYWNvc3guaW50ZXJuYWw7CiAKK1dLX0JVSUxEX0ZPUl9URVNUSU5H
ID0gWUVTOworCiBDT0RFX1NJR05fSURFTlRJVFlbc2RrPW1hY29zeCpdID0gJChDT0RFX1NJR05f
SURFTlRJVFlfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMpKQogQ09ERV9TSUdOX0lE
RU5USVRZXyA9ICQoQ09ERV9TSUdOX0lERU5USVRZX05PKTsKIENPREVfU0lHTl9JREVOVElUWV9O
TyA9IC07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKaW5kZXggYjMxNWQ5
OGVlY2U1MmM5YjJhMzg1ZWViMWM3NDdjNjQxZTMzMzBhMy4uNTViMmU3NWNjODc5MTIzMmM5YmI1
Yjk0ZTNkOWYzNWQ3OTFhYTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rp
b24uaApAQCAtMjAzLDEzICsyMDMsMTYgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlkZW50
aWZpZXJJc1ZhbGlkKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gISFpZGVudGlmaWVy
OyB9CiAjZW5kaWYKIAorICAgIFdFQktJVF9FWFBPUlRfVEVTVElORwogICAgIHN0YXRpYyBSZWY8
Q29ubmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQmKTsK
KyAgICBXRUJLSVRfRVhQT1JUX1RFU1RJTkcKICAgICBzdGF0aWMgUmVmPENvbm5lY3Rpb24+IGNy
ZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50Jik7CiAKICAgICBzdHJ1Y3Qg
Q29ubmVjdGlvbklkZW50aWZpZXJQYWlyIHsKICAgICAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIHNlcnZlcjsKICAgICAgICAgSVBDOjpBdHRhY2htZW50IGNsaWVudDsKICAgICB9Owor
ICAgIFdFQktJVF9FWFBPUlRfVEVTVElORwogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENvbm5l
Y3Rpb25JZGVudGlmaWVyUGFpcj4gY3JlYXRlQ29ubmVjdGlvbklkZW50aWZpZXJQYWlyKCk7CiAK
ICAgICB+Q29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Q
bGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9QbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViY2FlNDIzODkwNTQzOWE5ZGE5OThlNWM3ZGYxZGFi
ZDE5NGExNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL1BsYXRm
b3JtRXhwb3J0TWFjcm9zLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKgorICogVGhpcyBmaWxlIGhhbmRsZXMgc2hhcmVkIGxpYnJh
cnkgc3ltYm9sIGV4cG9ydCBkZWNvcmF0aW9ucy4gSXQgaXMgcmVjb21tZW5kZWQKKyAqIHRoYXQg
YWxsIFdlYktpdCBwcm9qZWN0cyB1c2UgdGhlc2UgZGVmaW5pdGlvbnMgc28gdGhhdCBzeW1ib2wg
ZXhwb3J0cyB3b3JrCisgKiBwcm9wZXJseSBvbiBhbGwgcGxhdGZvcm1zIGFuZCBjb21waWxlcnMg
dGhhdCBXZWJLaXQgYnVpbGRzIHVuZGVyLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgorCisKKyNpZiBFTkFCTEUoQlVJTERfRk9SX1RFU1RJTkcp
CisKKyNpZiAhZGVmaW5lZChXRUJLSVRfRVhQT1JUX1RFU1RJTkcpCisKKyNpZiBkZWZpbmVkKEJV
SUxESU5HX1dlYktpdCkgfHwgZGVmaW5lZChTVEFUSUNBTExZX0xJTktFRF9XSVRIX1dlYktpdCkK
KyNkZWZpbmUgV0VCS0lUX0VYUE9SVF9URVNUSU5HIFdURl9FWFBPUlRfREVDTEFSQVRJT04KKyNl
bHNlCisjZGVmaW5lIFdFQktJVF9FWFBPUlRfVEVTVElORyBXVEZfSU1QT1JUX0RFQ0xBUkFUSU9O
CisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdFQktJVF9FWFBPUlRfVEVTVElORworCisjZW5kaWYK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkYzA4OGE4NzE0ZTA3N2MzNGQzMmYzYWM3NzJlYzU2Y2Q3NTQ3YjMzLi43Yjcz
ZWY5YzRkMmI0ZDVhN2MzODMyY2ZiMTdiNzJhZmJkOTBjMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNTIsNiArMTM1Miw3IEBA
CiAJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAvKiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNS
ZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QkNGNzBDQjI2MTQ5MzVFMDBFNEZCNzAgLyogU2NvcGVkUmVuZGVyaW5nUmVzb3VyY2Vz
UmVxdWVzdENvY29hLm1tICovOyB9OwogCQk3QkREQTMxOTI3NDdDMDQwMDAzODY1OUUgLyogKG51
bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyB9OwogCQk3QkUzN0Y5MzI3
QzdDQTUxMDA3QTZDRDMgLyogSVBDU3RyZWFtVGVzdGVySWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JFMzdGOTIyN0M3QzUxODAwN0E2
Q0QzIC8qIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaCAqLzsgfTsKKwkJN0JFOTMyNjcyN0ZB
REIwRDAwRDVGRUZCIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkU5MzI2NjI3RkFEQjBDMDBENUZFRkIgLyog
UGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgfTsKIAkJN0MwNjVGMkMxQzhDRDk1RjAwQzJEOTUw
IC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwNjVGMkExQzhDRDk1RjAwQzJEOTUwIC8q
IFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovOyB9OwogCQk3QzEzNUFBOTE3
M0IwQkNBMDA1ODZBRTIgLyogV0tQbHVnaW5JbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MxMzVBQTcxNzNCMEJDQTAwNTg2QUUyIC8q
IFdLUGx1Z2luSW5mb3JtYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QzFCQTMzRTFBNEEwRTYwMDA0M0UyNDkgLyogQVBJRGljdGlvbmFy
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MxQkEz
M0MxQTRBMEU2MDAwNDNFMjQ5IC8qIEFQSURpY3Rpb25hcnkuaCAqLzsgfTsKQEAgLTU1MjYsNiAr
NTUyNyw3IEBACiAJCTdCRTM3Rjk1MjdDN0NEOTAwMDdBNkNEMyAvKiBJUENTdHJlYW1UZXN0ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSVBDU3RyZWFtVGVzdGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JFNzI2NTcyNTc0RjY3MjAwRTg1RDk4IC8qIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dlbmVyYXRlZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjY4MjU3NjgwRUYwMEU4NUQ5OCAvKiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3QkU5MzI2NjI3RkFEQjBDMDBENUZFRkIgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwNjVGMjkxQzhDRDk1RjAwQzJEOTUwIC8qIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJEYXRhVHlwZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzA2NUYyQTFDOENEOTVGMDBDMkQ5NTAgLyog
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QzEzNUFBNjE3M0IwQkNBMDA1ODZBRTIgLyogV0tQbHVn
aW5JbmZvcm1hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S1BsdWdpbkluZm9ybWF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
NDA3LDYgKzEyNDA5LDcgQEAKIAkJCQkwRkRDRDdGNjFENDdFOTJBMDA5RjA4QkMgLyogTG9nSW5p
dGlhbGl6YXRpb24uaCAqLywKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxl
LmNwcCAqLywKIAkJCQlDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi8sCisJ
CQkJN0JFOTMyNjYyN0ZBREIwQzAwRDVGRUZCIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8s
CiAJCQkJQTFBREFGQjUyMzY4RTRCODAwOUNCNzc2IC8qIFNoYXJlZE1lbW9yeS5jcHAgKi8sCiAJ
CQkJMUEyNEJFRDMxMjA4OTREMTAwRkJCMDU5IC8qIFNoYXJlZE1lbW9yeS5oICovLAogCQkJKTsK
QEAgLTE0NDg1LDYgKzE0NDg4LDcgQEAKIAkJCQkyREEwNDlCNDE4MENDQ0QzMDBBQUZBOUUgLyog
UGxhdGZvcm1DQUxheWVyUmVtb3RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3MTAxNzE4Mjg0
MTVEMDAxOEZBMDEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDg5NDlGMTE4MjA0NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3Rl
VGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkU5MzI2NzI3RkFEQjBEMDBENUZF
RkIgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzQzQUJC
MTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVudURhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY0QkUwRDc3MjdBQUUxQ0IwMDVGMDMyMyAvKiBQbGF5YmFja1Nlc3Npb25Db250ZXh0
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NG
IC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKaW5kZXggZWUz
YzAzYTVlNGU2MTg5YWM1ZTcxM2M0N2Q4OWM0YTQ0MTdhZDgxNS4uZWEyMGZlYTczNTZjYTRmMzI3
NTM3Yzg3MzQyYjBkYWIyM2NkNzFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jb25maWcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiY21ha2Vjb25maWcuaCIKICNlbmRpZgogCisjaW5jbHVkZSAiUGxhdGZvcm1FeHBvcnRNYWNy
b3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0V4cG9ydE1hY3Jvcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1FeHBvcnRNYWNyb3MuaD4KICNpbmNsdWRlIDxwYWwvRXhwb3J0
TWFjcm9zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQcmVm
aXguaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5oCmluZGV4IGM4M2Nh
NTllNmQ5MTE3MTZjNTViYjQ2ZjQwMDM4MTkzMzljZTg4YzYuLjM0ZDdkYWMxOTJiYTE0MWFiM2U2
ODU4ZTlmY2Y4M2UxZmI0MDNiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYktpdFByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZp
eC5oCkBAIC0zNyw2ICszNyw3IEBACiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0V4cG9y
dE1hY3Jvcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1FeHBvcnRNYWNyb3MuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvUGxhdGZvcm1FeHBvcnRNYWNyb3MuaD4KICNpbmNsdWRlIDxwYWwvRXhw
b3J0TWFjcm9zLmg+CiAKICNpZiBVU0UoQ0YpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjBiZThlYmZhZTg5NzMzZmUwYjMxMDcyYjQ5ZmIyZGJj
OTliNmNjYi4uN2U2M2Q0NWJjYjNmYzc0NmQyMzZiNjJjN2M4NDhjZDgyNDg2MWVmYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTA0LTA0ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU291cmNlL1dlYktpdCBjb2RlIHNob3VsZCBiZSB0ZXN0YWJsZSB3aXRoIEMrKyB1
bml0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzg3MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoY2hl
Y2tfZm9yX25vbl9zdGFuZGFyZF9jb25zdHJ1Y3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMv
QmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Rl
YnVnUmVsZWFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2Nv
bmZpZy5oOgorCiAyMDIyLTA0LTAyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBdXRvbWF0aWNhbGx5IHJlbGF5b3V0IHRoZSBwYWdl
IHdoZW4gbmV3IGZvbnRzIGFyZSBpbnN0YWxsZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jcHAucHkKaW5kZXggZjMwNjRmYzYwMDgwNWRjNDg1Y2ZhYmM1ZTkxMzU3
M2FjNWY4MzlhOS4uMGNiMjYwNjBkZTAyNDhmZDUzNGNiMzIyMmYwNTliODgzNTc4MjNjNyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKQEAgLTE1NSw2
ICsxNTUsNyBAQCBfRVhQT1JUX01BQ1JPX1NQRUMgPSB7CiAgICAgIyBFeGNsdWRlcyBQQUwgYW5k
IHRlc3RpbmcgZGlyZWN0b3JpZXMKICAgICAnV0VCQ09SRV9FWFBPUlQnOiAnU291cmNlL1dlYkNv
cmUvKD8hKFBBTHx0ZXN0aW5nKSknLAogICAgICdXS19FWFBPUlQnOiAnU291cmNlL1dlYktpdCcs
CisgICAgJ1dFQktJVF9FWFBPUlRfVEVTVElORyc6ICdTb3VyY2UvV2ViS2l0JywKICAgICAnV1RG
X0VYUE9SVF9QUklWQVRFJzogJ1NvdXJjZS9XVEYnLAogfQogCkBAIC0xNTA2LDcgKzE1MDcsNyBA
QCBkZWYgY2hlY2tfZm9yX25vbl9zdGFuZGFyZF9jb25zdHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5l
X251bWJlciwKICAgICBjbGFzc2luZm9fc3RhY2sgPSBjbGFzc19zdGF0ZS5jbGFzc2luZm9fc3Rh
Y2sKICAgICAjIExvb2sgZm9yIGEgY2xhc3MgZGVjbGFyYXRpb24KICAgICBjbGFzc19kZWNsX21h
dGNoID0gbWF0Y2goCi0gICAgICAgIHInXHMqKHRlbXBsYXRlXHMqPFtcd1xzPD4sOl0qPlxzKik/
KGNsYXNzfHN0cnVjdCkoXHMrKFdURl9FWFBPUlR8V1RGX0VYUE9SVF9QUklWQVRFfFBBTF9FWFBP
UlR8SlNfRVhQT1JUX1BSSVZBVEV8V0VCQ09SRV9FWFBPUlQpKT9ccysoXHcrKDo6XHcrKSopJywg
bGluZSkKKyAgICAgICAgcidccyoodGVtcGxhdGVccyo8W1x3XHM8Piw6XSo+XHMqKT8oY2xhc3N8
c3RydWN0KShccysoV1RGX0VYUE9SVHxXVEZfRVhQT1JUX1BSSVZBVEV8UEFMX0VYUE9SVHxKU19F
WFBPUlRfUFJJVkFURXxXRUJDT1JFX0VYUE9SVHxXRUJLSVRfRVhQT1JUX1RFU1RJTkcpKT9ccyso
XHcrKDo6XHcrKSopJywgbGluZSkKICAgICBpZiBjbGFzc19kZWNsX21hdGNoOgogICAgICAgICBj
bGFzc2luZm9fc3RhY2suYXBwZW5kKF9DbGFzc0luZm8oY2xhc3NfZGVjbF9tYXRjaC5ncm91cCg1
KSwgbGluZV9udW1iZXIsIGNsYXNzX2RlY2xfbWF0Y2guZ3JvdXAoNCkpKQogCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZTM5YTQwNmI1NTM5ZGQ1N2JmYmExYTAxZDdlZWM3MmU5
ZDhkMWE5Li4wNDlmNDFkNTA4MzJjZjMzZjM0N2Q3YTZkOGYwYmM2Njg2ZmQwYmVjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKQEAgLTE3MCw2ICsxNzAsOCBAQCBpZiAoRU5BQkxFX1dF
QkNPUkUpCiAgICAgICAgIFRlc3RzQ29udHJvbGxlci5jcHAKICAgICAgICAgV1RGU3RyaW5nVXRp
bGl0aWVzLmNwcAogCisgICAgICAgIFRlc3RzL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1Rl
c3RDb25uZWN0aW9uLmNwcAorCiAgICAgICAgIFRlc3RzL1dlYkNvcmUvQWZmaW5lVHJhbnNmb3Jt
LmNwcAogICAgICAgICBUZXN0cy9XZWJDb3JlL0NTU1BhcnNlci5jcHAKICAgICAgICAgVGVzdHMv
V2ViQ29yZS9DYWxjdWxhdGlvblZhbHVlLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IDc5M2U3MWFhNjNiMTQ2YzQ4YWJkYmM5
OTkzYWI4ZGFlMzMyNzIzYjguLjU5OTIxZjBlYmFjZTI4ZDU3YjcxNWNkMWI4Zjg2ZTEzYzJiMGJk
YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54
Y2NvbmZpZworKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcKQEAgLTM3LDcgKzM3LDE5IEBAIENMQU5HX1dBUk5fQ1hYMFhfRVhURU5TSU9OUyA9IE5P
OwogQUxURVJOQVRFX0hFQURFUl9TRUFSQ0hfUEFUSFMgPSAkKEFMVEVSTkFURV9IRUFERVJfU0VB
UkNIX1BBVEhTXyQoU0RLX1ZBUklBTlQpKTsKIEFMVEVSTkFURV9IRUFERVJfU0VBUkNIX1BBVEhT
X2lvc21hYyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKSQoV0tfQUxURVJOQVRFX0ZSQU1FV09SS1Nf
RElSKS91c3IvbG9jYWwvaW5jbHVkZQogCi1IRUFERVJfU0VBUkNIX1BBVEhTID0gJChBTFRFUk5B
VEVfSEVBREVSX1NFQVJDSF9QQVRIUykgJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9p
bmNsdWRlICQoV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSKS9Gb3J3YXJkaW5nSGVhZGVycyAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvV2ViQ29yZVRlc3RTdXBwb3J0ICR7U1JDUk9PVH0gJChTUkNS
T09UKS8uLi8uLi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hOworSEVBREVSX1NFQVJDSF9Q
QVRIUyA9ICQoQUxURVJOQVRFX0hFQURFUl9TRUFSQ0hfUEFUSFMpICR7QlVJTFRfUFJPRFVDVFNf
RElSfS91c3IvbG9jYWwvaW5jbHVkZSAkKFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUikvRm9y
d2FyZGluZ0hlYWRlcnMgJChCVUlMVF9QUk9EVUNUU19ESVIpL1dlYkNvcmVUZXN0U3VwcG9ydCAk
e1NSQ1JPT1R9ICQoU1JDUk9PVCkvLi4vLi4vU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYQor
CisjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE0OTgganVzdCBh
ZGRlZCBvbmUgcGF0aCBmb3Igb25lIHVzZS1jYXNlIHRoYXQgaGFwcGVucyB0byB3b3JrCisKKyMg
T3B0aW9uIEE6IFVzZSBoZWFkZXJzIGZyb20gcHJvamVjdCBwYXRocworIyAgSE9XIFRPIEFERCBX
ZWJLaXQgUHJvamVjdCBoZWFkZXJzIHRvIFRlc3RXZWJLaXRBUEkgaGVhZGVyIHBhdGg/CisjICAt
IFdlYktpdCBkZXJpdmVkIHNvdXJjZXMgLmggZmlsZXMKKyMgIC0gV2ViS2l0IGhlYWRlciBtYXBz
CisKKyMgT3B0aW9uIEI6IE1hcmsgdGVzdGVkIFdlYktpdCBoZWFkZXJzIGFzIFByaXZhdGUuCisj
IEhPVyBUTyBESVNUUklCVVRFIFdlYktpdCBQcml2YXRlIGhlYWRlcnM/CisjIC0gV2ViS2l0IGRl
cml2ZWQgc291cmNlcyAuaCBmaWxlcworIyAtIE5vcm1hbCAuaCBmaWxlcwogCiBHQ0NfTk9fQ09N
TU9OX0JMT0NLUyA9IFlFUzsKIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKERFQlVH
X0RFRklORVMpIFVfRElTQUJMRV9SRU5BTUlORz0xIFVfU0hPV19DUExVU1BMVVNfQVBJPTAgJChH
Q0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TXyQoUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25m
aWcgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2Nv
bmZpZwppbmRleCA1YWJlZjBkYjg0MTZlZWZhMzFlOTJkMjM5YTFlMTE1M2ZmOWY4MGEwLi4zM2E1
YjZhMDMxNzdmZDRiYmJhZjllNDljYjYxY2NhY2I5YjM5NDcwIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZworKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwpA
QCAtMzQsNiArMzQsOCBAQCBTREtST09UID0gJChTREtST09UXyQoVVNFX0lOVEVSTkFMX1NESykp
OwogU0RLUk9PVF8gPSBtYWNvc3g7CiBTREtST09UX1lFUyA9IG1hY29zeC5pbnRlcm5hbDsKIAor
V0tfQlVJTERfRk9SX1RFU1RJTkcgPSBZRVM7CisKIE9USEVSX0NQTFVTUExVU0ZMQUdTID0gJChp
bmhlcml0ZWQpIC1mdGVtcGxhdGUtZGVwdGg9MjU2OwogCiBXS19SRUxPQ0FUQUJMRV9GUkFNRVdP
UktTID0gWUVTOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YTc4YTg4MmMwOWJiNTVkYTFk
YjJiYWUyMzJlOTQzNzA0Y2ZkNmJjLi5mZWZlYzY1NzVhODMyZjQ1NDY5YzE1YmU0MjY2Yjk3YTI1
MzIzZjFiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTI3LDYgKzUyNyw3IEBACiAJCTdC
Nzc0OTA2MjY3Q0NFNzIwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3NzQ5MDQyNjdDQ0U2ODAwOTg3
M0I0IC8qIFRlc3RSdW5uZXJUZXN0cy5jcHAgKi87IH07CiAJCTdCN0QwOTZBMjUxOUY4RjkwMDE3
QTA3OCAvKiBXZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4
IC8qIFdlYkdMTm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi87IH07CiAJCTdCQTM5MzZD
MjcxRURGQ0EwMDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTM5MzZCMjcxRURGQ0Ew
MDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLzsgfTsKKwkJN0JFOTMy
NzQyN0ZBRENDNTAwRDVGRUZCIC8qIFRlc3RDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRTkzMjczMjdGQURDODkwMEQ1RkVGQiAv
KiBUZXN0Q29ubmVjdGlvbi5jcHAgKi87IH07CiAJCTdDMzk2NTA2MUNERDc0RjkwMDk0REJCOCAv
KiBDb2xvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCAqLzsgfTsK
IAkJN0M0ODZCQTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0ODZCQTAxQUEx
MjU0QjAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi87IH07CiAJCTdDNzRDOEZBMjJERkJB
OTYwMERBMkRBQiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8qIFdU
RlN0cmluZ1V0aWxpdGllcy5jcHAgKi87IH07CkBAIC0yNDYzLDYgKzI0NjQsNyBAQAogCQk3QkEz
OTM2RDI3MUVFQzUzMDAxNTkxMUMgLyogV2ViQ29yZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdCQjc1NEFGMjc0RTM5QTEwMEQwMEVDMSAvKiBUZXN0VXRpbGl0aWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRlc3RVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0JCNzU0QjAyNzRFMzlBMTAwRDAwRUMxIC8qIFRlc3RVdGlsaXRpZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGVzdFV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdCRTkzMjczMjdGQURDODkwMEQ1RkVGQiAvKiBUZXN0Q29ubmVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZXN0Q29ubmVjdGlvbi5jcHA7IHBh
dGggPSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9UZXN0Q29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDMUFGNzkzMUU4RENCQUIwMDI2NDVCOSAvKiBQcmVw
YXJlRm9yTW92ZVRvV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJN0MzOTY1MDUxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JUZXN0cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdDM0RCOEUyMUQxMjEyOUIwMEFFOENDMyAvKiBDb21tYW5kQmFj
a0ZvcndhcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb21t
YW5kQmFja0ZvcndhcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDIyLDYg
KzQwMjQsMzggQEAKIAkJCXBhdGggPSBNaXNjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJN0JFOTMyNkQyN0ZBREMwOTAwRDVGRUZCIC8qIFNvdXJjZSAqLyA9IHsKKwkJCWlz
YSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0JFOTMyNzAyN0ZBREM1MTAwRDVG
RUZCIC8qIFdlYktpdCAqLywKKwkJCSk7CisJCQluYW1lID0gU291cmNlOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJN0JFOTMyNzAyN0ZBREM1MTAwRDVGRUZCIC8qIFdlYktp
dCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0JFOTMy
NzEyN0ZBREM1QTAwRDVGRUZCIC8qIFBsYXRmb3JtICovLAorCQkJKTsKKwkJCW5hbWUgPSBXZWJL
aXQ7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk3QkU5MzI3MTI3RkFEQzVB
MDBENUZFRkIgLyogUGxhdGZvcm0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTdCRTkzMjcyMjdGQURDNjMwMEQ1RkVGQiAvKiBJUEMgKi8sCisJCQkpOwor
CQkJbmFtZSA9IFBsYXRmb3JtOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
N0JFOTMyNzIyN0ZBREM2MzAwRDVGRUZCIC8qIElQQyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0JFOTMyNzMyN0ZBREM4OTAwRDVGRUZCIC8qIFRlc3RD
b25uZWN0aW9uLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gSVBDOworCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKKwkJfTsKIAkJN0M4M0UwMjgxRDBBNUNERjAwRkVCQ0YzIC8qIEZyYW1ld29y
a3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNDg3NCw2
ICs0OTA4LDcgQEAKIAkJCQkxNENDNDJFMDI0QjhEN0U3MDBFNjRGNDggLyogSmF2YVNjcmlwdENv
cmUgKi8sCiAJCQkJQzA3RTZDQUQxM0ZENjc2NTAwMzhCMjJCIC8qIG1hYyAqLywKIAkJCQk3Qjc3
NDkwMzI2N0NDRTM4MDA5ODczQjQgLyogTWlzYyAqLywKKwkJCQk3QkU5MzI2RDI3RkFEQzA5MDBE
NUZFRkIgLyogU291cmNlICovLAogCQkJCUMwODU4N0Y5MTNGRUMzOUIwMDFFRjRFNSAvKiBUZXN0
V2ViS2l0QVBJICovLAogCQkJCTQ0MEExRDM2MTRBMDEwMDAwMDhBNjZGMiAvKiBXZWJDb3JlICov
LAogCQkJCUJDOTA5NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQgKi8sCkBAIC01ODQzLDYg
KzU4NzgsNyBAQAogCQkJCUUzRUZCMDJGMjU1MDY1MDMwMDNDMkY5NiAvKiBTeXN0ZW1CZWVwLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMTYxQTQxMUFFNjAwNDQ3QzRDIC8qIFRlcm1pbmF0
ZVR3aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE5MUE0MTFBMUQwMDQ0N0M0QyAv
KiBUZXN0QnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
N0JFOTMyNzQyN0ZBRENDNTAwRDVGRUZCIC8qIFRlc3RDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDRTc1OTQ5MjJBODgzRDIwMEMxMjQwOSAvKiBUZXN0Q29udGV4dE1lbnVEcml2
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDYxMjhDQjIxMUQ0NzUxMDBEOUZBREIgLyogVGVz
dERyYWdnaW5nSW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0RTBBMkI4MjEyMjg0NzQwMEFG
N0M3RiAvKiBUZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9UZXN0Q29ubmVjdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL1Rlc3RDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmRiYmNi
ZTA1MjEyNjY1ZTVkMTk3ZTU1MWY2ZWM2NDlkN2E2MzIyCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9UZXN0Q29u
bmVjdGlvbi5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShCVUlMRF9GT1JfVEVTVElORykKKyNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBJUEM7
CisKK25hbWVzcGFjZSB7CitjbGFzcyBNb2NrQ29ubmVjdGlvbkNsaWVudCA6IHB1YmxpYyBDb25u
ZWN0aW9uOjpDbGllbnQgeworcHVibGljOgorICAgIE1vY2tDb25uZWN0aW9uQ2xpZW50KCkgPSBk
ZWZhdWx0OworICAgIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbiYpIGZpbmFsCisgICAgeworICAg
IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb25uZWN0aW9uJiwgTWVzc2Fn
ZU5hbWUpIGZpbmFsCisgICAgeworICAgIH0KK307Cit9CisKK1RFU1QoVGVzdENvbm5lY3Rpb24s
IENyZWF0ZVN1Y2NlZWRzKQoreworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBDb25uZWN0aW9uOjpj
cmVhdGVDb25uZWN0aW9uSWRlbnRpZmllclBhaXIoKTsKKyAgICBBU1NFUlRfVFJVRShpZGVudGlm
aWVycy5oYXNfdmFsdWUoKSk7CisgICAgCisgICAgTW9ja0Nvbm5lY3Rpb25DbGllbnQgbW9ja1Nl
cnZlckNsaWVudDsKKyAgICBhdXRvIHNlcnZlckNvbm5lY3Rpb24gPSBDb25uZWN0aW9uOjpjcmVh
dGVTZXJ2ZXJDb25uZWN0aW9uKGlkZW50aWZpZXJzLT5zZXJ2ZXIsIG1vY2tTZXJ2ZXJDbGllbnQp
OworICAgIAorI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyIHsgaWRlbnRpZmllcnMtPmNsaWVudC5yZWxl
YXNlRmlsZURlc2NyaXB0b3IoKSB9OworI2VsaWYgT1MoREFSV0lOKQorICAgIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyIHsgaWRlbnRpZmllcnMtPmNsaWVudC5w
b3J0KCkgfTsKKyNlbGlmIE9TKFdJTkRPV1MpCisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIgeyBpZGVudGlmaWVycy0+Y2xpZW50LmhhbmRsZSgpIH07Cisj
ZWxzZQorICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOwor
I2VuZGlmCisgICAgTW9ja0Nvbm5lY3Rpb25DbGllbnQgbW9ja0NsaWVudENsaWVudDsKKyAgICBh
dXRvIGNsaWVudENvbm5lY3Rpb24gPSBDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9u
KGNsaWVudElkZW50aWZpZXIsIG1vY2tDbGllbnRDbGllbnQpOworfQorCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb25maWcuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29uZmlnLmgKaW5kZXggNzJmOGUyMjQ2NGU0MGZkZjJiNjI1OWM1NWU4NDAyMWQ0Y2Rl
NTI4Ny4uNzFlYzgzOTg5MDFkODYyZDk4MTY4OTMwNzUxYzMwYWJiMWM5MzgyNCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb25maWcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvbmZpZy5oCkBAIC01NSw2ICs1NSw3IEBACiAjaWYgZGVmaW5lZChCVUlMRElOR19UZXN0V2Vi
S2l0KQogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRXhwb3J0TWFjcm9zLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYktpdC9QbGF0
Zm9ybUV4cG9ydE1hY3Jvcy5oPgogI2luY2x1ZGUgPHBhbC9FeHBvcnRNYWNyb3MuaD4KICNpbmNs
dWRlIDxXZWJLaXQvV2ViS2l0Ml9DLmg+CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456557</attachid>
            <date>2022-04-04 04:26:02 -0700</date>
            <delta_ts>2022-04-04 04:33:51 -0700</delta_ts>
            <desc>Strawman with BUILD_FOR_TESTING</desc>
            <filename>bug-238731-20220404142600.patch</filename>
            <type>text/plain</type>
            <size>26700</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ1ZWQ2OTk2NjBkZDAyMThl
MTNhY2UxOGVjMjM4Y2RiNmZhMzg4NGYuLmUyOTZkM2ExZWI0OTQwZWMwMTk4OGM3MjRhOTQ1MmE5
N2U3MmMwYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDQtMDQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBTb3VyY2UvV2ViS2l0IGNv
ZGUgc2hvdWxkIGJlIHRlc3RhYmxlIHdpdGggQysrIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODczMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgc3RyYXdtYW4gZXhhbXBsZSBvZiBo
b3cgU291cmNlL1dlYktpdCBjb3VsZCBiZSB0ZXN0ZWQgdXNpbmcgRU5BQkxFKEJVSUxEX0ZPUl9U
RVNUSU5HKS4KKyAgICAgICAgVGhlIGlkZWEgd291bGQgYmUgdG86CisgICAgICAgICAtIEV4cG9y
dCB0ZXN0aW5nLXJlbGF0ZWQgc3ltYm9scyB3aGVuIEJVSUxEX0ZPUl9URVNUSU5HID09IDEKKyAg
ICAgICAgIC0gTm90IGV4cG9ydCBub24gV0sgc3ltYm9scyBmb3IgcHJvZHVjdGlvbgorCisgICAg
ICAgIEFkZHMgYSBzaW1wbGUgdGVzdCBmb3IgSVBDOjpDb25uZWN0aW9uIHRoYXQgaXMgYW4gZXhh
bXBsZSBvZiB3aGF0IGlzIG5lZWRlZC4KKworICAgICAgICBOT1RFOiBUaGUgcmVhZGVyIG5lZWRz
IHRvIG1ha2UgdGhlIGxlYXAgb2YgaW1hZ2luYXRpb24gdGhhdCB0aGUgZnVydGhlciB0ZXN0cyB3
b3VsZCBiZSBtb3JlCisgICAgICAgIGVsYWJvcmF0ZSBhbmQgdXNlIGFuZCBjb25maWd1cmUgbW9y
ZSBvZiB0aGUgaW50ZXJuYWxzIG9mIHRoZSB2YXJpb3VzIHRlc3RlZCBvYmplY3RzLgorICAgICAg
ICBUaGUgZ29hbCBpcyB0byBoYXZlIGdlbmVyYWwgcHVycG9zZSB0ZXN0aW5nIHNvbHV0aW9uLCBu
b3QgdG8gdGVzdCB0aGlzIHBhcnRpY3VsYXIgdGVzdC4KKworICAgICAgICBOT1RFOiBUaGUgcmVh
ZGVyIG5lZWRzIHRvIG1ha2UgdGhlIGxlYXAgb2YgaW1hZ2luYXRpb24gdGhhdCB0aGlzIGRvZXMg
bm90IGFwcGx5IG9ubHkgdG8KKyAgICAgICAgSVBDOjpDb25uZWN0aW9uIHRlc3RpbmcuIFRoZSBp
bnRlbnRpb24gaXMgdGhhdCBhcmJpdHJhcnkgU291cmNlL1dlYktpdCBjb2RlIHdvdWxkIGJlIHRl
c3RhYmxlLgorCisgICAgICAgIFByb2JsZW1zOgorICAgICAgICAgIC0gSG93IHRvIGdldCB0aGUg
aGVhZGVycyB0byBUZXN0V2ViS2l0QVBJPworICAgICAgICAgICAgV2ViQ29yZSBnZXRzIHRoZSBo
ZWFkZXJzIGJ5IGRpc3RyaWJ1dGluZyB0aGUgdGVzdGVkIGhlYWRlcnMgYXMgcHJvamVjdCBwcml2
YXRlIGhlYWRlcnMuCisgICAgICAgICAgICBDdXJyZW50bHkgV2ViS2l0IGRvZXMgbm90IGhhdmUg
dGhpcyBjb25jZXB0LgorICAgICAgICAgICAgQWxzbywgU291cmNlL1dlYktpdCB0ZXN0aW5nIHdv
dWxkIG5lZWQgdG8gaGF2ZSB0aGUgZGVyaXZlZCBzb3VyY2VzIGFzIHBhcnQgb2YgcHJvamVjdCBw
cml2YXRlCisgICAgICAgICAgICBoZWFkZXJzLCBzaW5jZSBhIGxvdCBvZiBTb3VyY2UvV2ViS2l0
IGlzIGJhc2VkIG9uIHRoZSBkZXJpdmVkIHNvdXJjZXMuCisgICAgICAgICAgLSBIb3cgdG8gZ2Vu
ZXJhdGUgdGhlIHN5bWJvbHMgaW4gV2ViS2l0LlRlc3RpbmcuZXhwPyBBcHBhcmVudGx5IHRoYXQg
aXMgZW5mb3JjZWQgZm9yIHNvbWUgcmVhc29uLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
QmFzZS54Y2NvbmZpZzoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNj
b25maWc6CisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjb25maWcuaDoKKwog
MjAyMi0wNC0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBfV0tEYXRhVGFzayBkb2Vzbid0IHdvcmsgaW4gbWFjQ2F0YWx5c3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwppbmRleCA0NTBkZTZiYmE4ZmYyYTFkY2Y3ZGE2ZTdlZjc3NDdlZWM2Njdk
YjNiLi4wZGQ5Y2ZhYjk3YTA4YzZjYTU2ODAxMWEzOGQ1ODEyNDYzZTljMjAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMDQgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBTb3VyY2UvV2ViS2l0IGNv
ZGUgc2hvdWxkIGJlIHRlc3RhYmxlIHdpdGggQysrIHVuaXQgdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODczMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0UHJlZml4Lmg6CisKIDIw
MjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJp
bmcncyBmaW5kKCkgLyByZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEg
U3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL0Jhc2UueGNjb25maWcKaW5kZXggZmI0MWUyZDBkY2Q5NzM1YjZhZDdkNTg0NGY4ZGYyMjBl
NjI1MTVkMy4uNWIxMWMzNWEzZjZlZGZmODgzMzNiOTQzMWJlYTFlMjNkYTEyMDQ2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpAQCAtMTMwLDYgKzEzMCw4
IEBAIENPREVfU0lHTl9JREVOVElUWSA9IC07CiBTVVBQT1JURURfUExBVEZPUk1TID0gaXBob25l
b3MgaXBob25lc2ltdWxhdG9yIG1hY29zeCBhcHBsZXR2b3MgYXBwbGV0dnNpbXVsYXRvciB3YXRj
aG9zIHdhdGNoc2ltdWxhdG9yOwogU1VQUE9SVFNfTUFDQ0FUQUxZU1QgPSBZRVM7CiAKK09USEVS
X0NGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX0NGTEFHU19CVUlMRF9GT1JfVEVTVElOR18kKFdL
X0JVSUxEX0ZPUl9URVNUSU5HKSkKKwogT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRl
ZCkgLWlzeXN0ZW0gJChTREtST09UKS9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1N5c3RlbS5m
cmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiAKIFNVUFBPUlRTX1RFWFRfQkFTRURfQVBJW3Nkaz1p
cGhvbmUqXSA9IFlFUzsKQEAgLTE0Myw2ICsxNDUsOCBAQCBUQVBJX1ZFUklGWV9NT0RFW3Nkaz1p
cGhvbmUqXSA9IFBlZGFudGljOwogLy8gVGhpcyBpcyByZXF1aXJlZCB0byBtYWtlIExMVk1fVEFS
R0VUX1RSSVBMRV9TVUZGSVggcHJvcGFnYXRlIGludG8gc2NyaXB0cy4KIExMVk1fVEFSR0VUX1RS
SVBMRV9TVUZGSVggPSAkKGluaGVyaXRlZCk7CiAKK1dLX0NGTEFHU19CVUlMRF9GT1JfVEVTVElO
R19ZRVMgPSAtREVOQUJMRV9CVUlMRF9GT1JfVEVTVElORzsKKwogV0tfQ09DT0FfVE9VQ0ggPSAk
KFdLX0NPQ09BX1RPVUNIXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfQ09DT0FfVE9VQ0hfaXBo
b25lb3MgPSBjb2NvYXRvdWNoOwogV0tfQ09DT0FfVE9VQ0hfaXBob25lc2ltdWxhdG9yID0gY29j
b2F0b3VjaDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRGVidWdS
ZWxlYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVh
c2UueGNjb25maWcKaW5kZXggZWE0MTBiMWI3YzE0MmEwMGFiZTMxYmFhOWM2NDFmYWQ0ODdiMjdj
Yi4uMTk3YzA1MjRlNDQ5OWRjOGU2MDUxNDk3NzZlODgwOTc4Y2FhZTU5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKKysrIGIv
U291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcKQEAgLTM1
LDYgKzM1LDggQEAgU0RLUk9PVCA9ICQoU0RLUk9PVF8kKFVTRV9JTlRFUk5BTF9TREspKTsKIFNE
S1JPT1RfID0gbWFjb3N4OwogU0RLUk9PVF9ZRVMgPSBtYWNvc3guaW50ZXJuYWw7CiAKK1dLX0JV
SUxEX0ZPUl9URVNUSU5HID0gWUVTOworCiBDT0RFX1NJR05fSURFTlRJVFlbc2RrPW1hY29zeCpd
ID0gJChDT0RFX1NJR05fSURFTlRJVFlfJChXS19VU0VfUkVTVFJJQ1RFRF9FTlRJVExFTUVOVFMp
KQogQ09ERV9TSUdOX0lERU5USVRZXyA9ICQoQ09ERV9TSUdOX0lERU5USVRZX05PKTsKIENPREVf
U0lHTl9JREVOVElUWV9OTyA9IC07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9u
LmgKaW5kZXggYjMxNWQ5OGVlY2U1MmM5YjJhMzg1ZWViMWM3NDdjNjQxZTMzMzBhMy4uNTViMmU3
NWNjODc5MTIzMmM5YmI1Yjk0ZTNkOWYzNWQ3OTFhYTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uaApAQCAtMjAzLDEzICsyMDMsMTYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBib29sIGlkZW50aWZpZXJJc1ZhbGlkKElkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1
cm4gISFpZGVudGlmaWVyOyB9CiAjZW5kaWYKIAorICAgIFdFQktJVF9FWFBPUlRfVEVTVElORwog
ICAgIHN0YXRpYyBSZWY8Q29ubmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlm
aWVyLCBDbGllbnQmKTsKKyAgICBXRUJLSVRfRVhQT1JUX1RFU1RJTkcKICAgICBzdGF0aWMgUmVm
PENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50Jik7
CiAKICAgICBzdHJ1Y3QgQ29ubmVjdGlvbklkZW50aWZpZXJQYWlyIHsKICAgICAgICAgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcjsKICAgICAgICAgSVBDOjpBdHRhY2htZW50IGNs
aWVudDsKICAgICB9OworICAgIFdFQktJVF9FWFBPUlRfVEVTVElORwogICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPENvbm5lY3Rpb25JZGVudGlmaWVyUGFpcj4gY3JlYXRlQ29ubmVjdGlvbklkZW50
aWZpZXJQYWlyKCk7CiAKICAgICB+Q29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViY2FlNDIzODkwNTQzOWE5
ZGE5OThlNWM3ZGYxZGFiZDE5NGExNDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL1BsYXRmb3JtRXhwb3J0TWFjcm9zLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKgorICogVGhpcyBmaWxlIGhhbmRs
ZXMgc2hhcmVkIGxpYnJhcnkgc3ltYm9sIGV4cG9ydCBkZWNvcmF0aW9ucy4gSXQgaXMgcmVjb21t
ZW5kZWQKKyAqIHRoYXQgYWxsIFdlYktpdCBwcm9qZWN0cyB1c2UgdGhlc2UgZGVmaW5pdGlvbnMg
c28gdGhhdCBzeW1ib2wgZXhwb3J0cyB3b3JrCisgKiBwcm9wZXJseSBvbiBhbGwgcGxhdGZvcm1z
IGFuZCBjb21waWxlcnMgdGhhdCBXZWJLaXQgYnVpbGRzIHVuZGVyLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgorCisKKyNpZiBFTkFCTEUoQlVJ
TERfRk9SX1RFU1RJTkcpCisKKyNpZiAhZGVmaW5lZChXRUJLSVRfRVhQT1JUX1RFU1RJTkcpCisK
KyNpZiBkZWZpbmVkKEJVSUxESU5HX1dlYktpdCkgfHwgZGVmaW5lZChTVEFUSUNBTExZX0xJTktF
RF9XSVRIX1dlYktpdCkKKyNkZWZpbmUgV0VCS0lUX0VYUE9SVF9URVNUSU5HIFdURl9FWFBPUlRf
REVDTEFSQVRJT04KKyNlbHNlCisjZGVmaW5lIFdFQktJVF9FWFBPUlRfVEVTVElORyBXVEZfSU1Q
T1JUX0RFQ0xBUkFUSU9OCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdFQktJVF9FWFBPUlRfVEVT
VElORworCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkYzA4OGE4NzE0ZTA3N2MzNGQzMmYzYWM3NzJlYzU2
Y2Q3NTQ3YjMzLi43YjczZWY5YzRkMmI0ZDVhN2MzODMyY2ZiMTdiNzJhZmJkOTBjMWEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEz
NTIsNiArMTM1Miw3IEBACiAJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAvKiBTY29wZWRSZW5k
ZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkNGNzBDQjI2MTQ5MzVFMDBFNEZCNzAgLyogU2NvcGVkUmVu
ZGVyaW5nUmVzb3VyY2VzUmVxdWVzdENvY29hLm1tICovOyB9OwogCQk3QkREQTMxOTI3NDdDMDQw
MDAzODY1OUUgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyB9
OwogCQk3QkUzN0Y5MzI3QzdDQTUxMDA3QTZDRDMgLyogSVBDU3RyZWFtVGVzdGVySWRlbnRpZmll
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JFMzdG
OTIyN0M3QzUxODAwN0E2Q0QzIC8qIElQQ1N0cmVhbVRlc3RlcklkZW50aWZpZXIuaCAqLzsgfTsK
KwkJN0JFOTMyNjcyN0ZBREIwRDAwRDVGRUZCIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkU5MzI2NjI3RkFE
QjBDMDBENUZFRkIgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgfTsKIAkJN0MwNjVGMkMx
QzhDRDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwNjVGMkExQzhD
RDk1RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5oICovOyB9
OwogCQk3QzEzNUFBOTE3M0IwQkNBMDA1ODZBRTIgLyogV0tQbHVnaW5JbmZvcm1hdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MxMzVBQTcxNzNC
MEJDQTAwNTg2QUUyIC8qIFdLUGx1Z2luSW5mb3JtYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzFCQTMzRTFBNEEwRTYwMDA0M0UyNDkg
LyogQVBJRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0MxQkEzM0MxQTRBMEU2MDAwNDNFMjQ5IC8qIEFQSURpY3Rpb25hcnkuaCAqLzsg
fTsKQEAgLTU1MjYsNiArNTUyNyw3IEBACiAJCTdCRTM3Rjk1MjdDN0NEOTAwMDdBNkNEMyAvKiBJ
UENTdHJlYW1UZXN0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSVBDU3RyZWFtVGVzdGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JFNzI2NTcyNTc0RjY3MjAwRTg1RDk4
IC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlGdW5jdGlvbnNHZW5lcmF0ZWQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUZ1bmN0aW9uc0dl
bmVyYXRlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjY4MjU3Njgw
RUYwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QkU5MzI2NjI3RkFEQjBDMDBENUZFRkIgLyogUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0MwNjVGMjkxQzhDRDk1
RjAwQzJEOTUwIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVc2VyQ29udGVudENvbnRyb2xsZXJE
YXRhVHlwZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzA2NUYyQTFDOENE
OTVGMDBDMkQ5NTAgLyogV2ViVXNlckNvbnRlbnRDb250cm9sbGVyRGF0YVR5cGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFU
eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzEzNUFBNjE3M0IwQkNBMDA1
ODZBRTIgLyogV0tQbHVnaW5JbmZvcm1hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXS1BsdWdpbkluZm9ybWF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEyNDA3LDYgKzEyNDA5LDcgQEAKIAkJCQkwRkRDRDdGNjFENDdFOTJBMDA5
RjA4QkMgLyogTG9nSW5pdGlhbGl6YXRpb24uaCAqLywKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBB
NDlEMDEgLyogTW9kdWxlLmNwcCAqLywKIAkJCQlDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyog
TW9kdWxlLmggKi8sCisJCQkJN0JFOTMyNjYyN0ZBREIwQzAwRDVGRUZCIC8qIFBsYXRmb3JtRXhw
b3J0TWFjcm9zLmggKi8sCiAJCQkJQTFBREFGQjUyMzY4RTRCODAwOUNCNzc2IC8qIFNoYXJlZE1l
bW9yeS5jcHAgKi8sCiAJCQkJMUEyNEJFRDMxMjA4OTREMTAwRkJCMDU5IC8qIFNoYXJlZE1lbW9y
eS5oICovLAogCQkJKTsKQEAgLTE0NDg1LDYgKzE0NDg4LDcgQEAKIAkJCQkyREEwNDlCNDE4MEND
Q0QzMDBBQUZBOUUgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRDg3MTAxNzE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg5NDlGMTE4MjA0NEY2MDBFODk4QUEgLyogUGxhdGZv
cm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkU5MzI2
NzI3RkFEQjBEMDBENUZFRkIgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQzQzQUJCMTI3Qjk1REMwMDMxN0YxNiAvKiBQbGF0Zm9ybVBvcHVwTWVudURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUY0QkUwRDc3MjdBQUUxQ0IwMDVGMDMyMyAvKiBQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBMjlBMUIx
Q0JEQkY0MTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQvY29u
ZmlnLmgKaW5kZXggZWUzYzAzYTVlNGU2MTg5YWM1ZTcxM2M0N2Q4OWM0YTQ0MTdhZDgxNS4uZWEy
MGZlYTczNTZjYTRmMzI3NTM3Yzg3MzQyYjBkYWIyM2NkNzFiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiY21ha2Vjb25maWcuaCIKICNlbmRpZgogCisjaW5jbHVkZSAiUGxh
dGZvcm1FeHBvcnRNYWNyb3MuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0V4cG9ydE1h
Y3Jvcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1FeHBvcnRNYWNyb3MuaD4KICNpbmNs
dWRlIDxwYWwvRXhwb3J0TWFjcm9zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9UZXN0aW5nRnVuY3Rpb25zLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9UZXN0aW5n
RnVuY3Rpb25zLmgKaW5kZXggNDRmMzNiNzkyN2I2MDYwOWZmNDM5NDRiYTIwYzEzZTRkMzRjMTQ3
Ny4uYzVmMzJlYmQ0NTg1MDEyNDAzMDU4OTViZTU1YTIxOGJlMTM3ZDA4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvVGVzdGluZ0Z1bmN0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1Rlc3RpbmdGdW5jdGlvbnMuaApAQCAtMzEsNiArMzEsNyBAQAogCiAj
aWYgRU5BQkxFKEJVSUxEX0ZPUl9URVNUSU5HKQogCisvLyBUaGlzIGlzIG9uZSBleGFtcGxlIHdo
ZXJlIHdlIGp1c3QgaGFja2VkIGFyb3VuZCB0aGUgcHJvYmxlbS4KIFdURl9FWFRFUk5fQ19CRUdJ
TgogV2ViQ2FjaGVNb2RlbCBUZXN0V2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsRm9yTWFpbkJ1bmRs
ZShOU1N0cmluZyAqYnVuZGxlSWRlbnRpZmllcik7CiBXVEZfRVhURVJOX0NfRU5ECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRQcmVmaXguaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5oCmluZGV4IGM4M2NhNTllNmQ5MTE3MTZjNTViYjQ2
ZjQwMDM4MTkzMzljZTg4YzYuLjM0ZDdkYWMxOTJiYTE0MWFiM2U2ODU4ZTlmY2Y4M2UxZmI0MDNi
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdFByZWZpeC5oCkBAIC0zNyw2ICszNyw3
IEBACiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0V4cG9ydE1hY3Jvcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1FeHBvcnRNYWNyb3MuaD4KKyNpbmNsdWRlIDxXZWJLaXQvUGxh
dGZvcm1FeHBvcnRNYWNyb3MuaD4KICNpbmNsdWRlIDxwYWwvRXhwb3J0TWFjcm9zLmg+CiAKICNp
ZiBVU0UoQ0YpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMjBiZThlYmZhZTg5NzMzZmUwYjMxMDcyYjQ5ZmIyZGJjOTliNmNjYi4uN2U2M2Q0NWJj
YjNmYzc0NmQyMzZiNjJjN2M4NDhjZDgyNDg2MWVmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTA0LTA0ICBL
aW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgU291cmNlL1dl
YktpdCBjb2RlIHNob3VsZCBiZSB0ZXN0YWJsZSB3aXRoIEMrKyB1bml0IHRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg3MzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoY2hlY2tfZm9yX25vbl9zdGFuZGFy
ZF9jb25zdHJ1Y3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZzoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZp
ZzoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvbmZpZy5oOgorCiAyMDIyLTA0
LTAyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W0NvY29hXSBBdXRvbWF0aWNhbGx5IHJlbGF5b3V0IHRoZSBwYWdlIHdoZW4gbmV3IGZvbnRzIGFy
ZSBpbnN0YWxsZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlcnMvY3BwLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAu
cHkKaW5kZXggZjMwNjRmYzYwMDgwNWRjNDg1Y2ZhYmM1ZTkxMzU3M2FjNWY4MzlhOS4uMGNiMjYw
NjBkZTAyNDhmZDUzNGNiMzIyMmYwNTliODgzNTc4MjNjNyAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKQEAgLTE1NSw2ICsxNTUsNyBAQCBfRVhQT1JU
X01BQ1JPX1NQRUMgPSB7CiAgICAgIyBFeGNsdWRlcyBQQUwgYW5kIHRlc3RpbmcgZGlyZWN0b3Jp
ZXMKICAgICAnV0VCQ09SRV9FWFBPUlQnOiAnU291cmNlL1dlYkNvcmUvKD8hKFBBTHx0ZXN0aW5n
KSknLAogICAgICdXS19FWFBPUlQnOiAnU291cmNlL1dlYktpdCcsCisgICAgJ1dFQktJVF9FWFBP
UlRfVEVTVElORyc6ICdTb3VyY2UvV2ViS2l0JywKICAgICAnV1RGX0VYUE9SVF9QUklWQVRFJzog
J1NvdXJjZS9XVEYnLAogfQogCkBAIC0xNTA2LDcgKzE1MDcsNyBAQCBkZWYgY2hlY2tfZm9yX25v
bl9zdGFuZGFyZF9jb25zdHJ1Y3RzKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwKICAgICBjbGFz
c2luZm9fc3RhY2sgPSBjbGFzc19zdGF0ZS5jbGFzc2luZm9fc3RhY2sKICAgICAjIExvb2sgZm9y
IGEgY2xhc3MgZGVjbGFyYXRpb24KICAgICBjbGFzc19kZWNsX21hdGNoID0gbWF0Y2goCi0gICAg
ICAgIHInXHMqKHRlbXBsYXRlXHMqPFtcd1xzPD4sOl0qPlxzKik/KGNsYXNzfHN0cnVjdCkoXHMr
KFdURl9FWFBPUlR8V1RGX0VYUE9SVF9QUklWQVRFfFBBTF9FWFBPUlR8SlNfRVhQT1JUX1BSSVZB
VEV8V0VCQ09SRV9FWFBPUlQpKT9ccysoXHcrKDo6XHcrKSopJywgbGluZSkKKyAgICAgICAgcidc
cyoodGVtcGxhdGVccyo8W1x3XHM8Piw6XSo+XHMqKT8oY2xhc3N8c3RydWN0KShccysoV1RGX0VY
UE9SVHxXVEZfRVhQT1JUX1BSSVZBVEV8UEFMX0VYUE9SVHxKU19FWFBPUlRfUFJJVkFURXxXRUJD
T1JFX0VYUE9SVHxXRUJLSVRfRVhQT1JUX1RFU1RJTkcpKT9ccysoXHcrKDo6XHcrKSopJywgbGlu
ZSkKICAgICBpZiBjbGFzc19kZWNsX21hdGNoOgogICAgICAgICBjbGFzc2luZm9fc3RhY2suYXBw
ZW5kKF9DbGFzc0luZm8oY2xhc3NfZGVjbF9tYXRjaC5ncm91cCg1KSwgbGluZV9udW1iZXIsIGNs
YXNzX2RlY2xfbWF0Y2guZ3JvdXAoNCkpKQogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApp
bmRleCAzZTM5YTQwNmI1NTM5ZGQ1N2JmYmExYTAxZDdlZWM3MmU5ZDhkMWE5Li4wNDlmNDFkNTA4
MzJjZjMzZjM0N2Q3YTZkOGYwYmM2Njg2ZmQwYmVjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0
cy50eHQKQEAgLTE3MCw2ICsxNzAsOCBAQCBpZiAoRU5BQkxFX1dFQkNPUkUpCiAgICAgICAgIFRl
c3RzQ29udHJvbGxlci5jcHAKICAgICAgICAgV1RGU3RyaW5nVXRpbGl0aWVzLmNwcAogCisgICAg
ICAgIFRlc3RzL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL1Rlc3RDb25uZWN0aW9uLmNwcAor
CiAgICAgICAgIFRlc3RzL1dlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmNwcAogICAgICAgICBUZXN0
cy9XZWJDb3JlL0NTU1BhcnNlci5jcHAKICAgICAgICAgVGVzdHMvV2ViQ29yZS9DYWxjdWxhdGlv
blZhbHVlLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9u
cy9CYXNlLnhjY29uZmlnIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9CYXNl
LnhjY29uZmlnCmluZGV4IDc5M2U3MWFhNjNiMTQ2YzQ4YWJkYmM5OTkzYWI4ZGFlMzMyNzIzYjgu
LjU1MjcyZmI0YzVlZjRjNGZmODVmMThkZmY4Yjc5MDgyZDJlMmY4YzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZworKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKQEAgLTM5LDYgKzM5
LDIwIEBAIEFMVEVSTkFURV9IRUFERVJfU0VBUkNIX1BBVEhTX2lvc21hYyA9ICQoQlVJTFRfUFJP
RFVDVFNfRElSKSQoV0tfQUxURVJOQVRFX0ZSQU1FCiAKIEhFQURFUl9TRUFSQ0hfUEFUSFMgPSAk
KEFMVEVSTkFURV9IRUFERVJfU0VBUkNIX1BBVEhTKSAke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNy
L2xvY2FsL2luY2x1ZGUgJChXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0ZvcndhcmRpbmdI
ZWFkZXJzICQoQlVJTFRfUFJPRFVDVFNfRElSKS9XZWJDb3JlVGVzdFN1cHBvcnQgJHtTUkNST09U
fSAkKFNSQ1JPT1QpLy4uLy4uL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2E7CiAKKyMgQWJv
dmUgaXMgYW4gZXhhbXBsZSB3aGVyZSB3ZSBqdXN0IGhhY2tlZCBhcm91bmQgdGhlIHByb2JsZW0u
IEl0IGp1c3QgaGFwcGVuZWQgdG8gd29yayBzaW5jZSB0aGUgdGVzdCBkaWRuJ3QgbmVlZCBhbnkg
c3ltYm9scyBhbmQKKyMgdGhlIGhlYWRlciBkaWRuJ3QgbmVlZCBhbnkgc3Vic2VxdWVudCBoZWFk
ZXJzLgorIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNDk4CisK
KyMgT3B0aW9uIEE6IFVzZSBoZWFkZXJzIGZyb20gcHJvamVjdCBwYXRocworIyAgSE9XIFRPIEFE
RCBXZWJLaXQgUHJvamVjdCBoZWFkZXJzIHRvIFRlc3RXZWJLaXRBUEkgaGVhZGVyIHBhdGg/Cisj
ICAtIFdlYktpdCBkZXJpdmVkIHNvdXJjZXMgLmggZmlsZXMKKyMgIC0gV2ViS2l0IGhlYWRlciBt
YXBzCisKKyMgT3B0aW9uIEI6IE1hcmsgdGVzdGVkIFdlYktpdCBoZWFkZXJzIGFzIFByaXZhdGUu
CisjIEhPVyBUTyBESVNUUklCVVRFIFdlYktpdCBQcml2YXRlIGhlYWRlcnM/CisjIC0gV2ViS2l0
IGRlcml2ZWQgc291cmNlcyAuaCBmaWxlcworIyAtIE5vcm1hbCAuaCBmaWxlcworCiBHQ0NfTk9f
Q09NTU9OX0JMT0NLUyA9IFlFUzsKIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKERF
QlVHX0RFRklORVMpIFVfRElTQUJMRV9SRU5BTUlORz0xIFVfU0hPV19DUExVU1BMVVNfQVBJPTAg
JChHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TXyQoUExBVEZPUk1fTkFNRSkpOwogREVCVUdf
SU5GT1JNQVRJT05fRk9STUFUID0gZHdhcmYtd2l0aC1kc3ltOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9EZWJ1Z1JlbGVhc2UueGNjb25maWcgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwppbmRl
eCA1YWJlZjBkYjg0MTZlZWZhMzFlOTJkMjM5YTFlMTE1M2ZmOWY4MGEwLi4zM2E1YjZhMDMxNzdm
ZDRiYmJhZjllNDljYjYxY2NhY2I5YjM5NDcwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZworKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0RlYnVnUmVsZWFzZS54Y2NvbmZpZwpAQCAtMzQsNiAr
MzQsOCBAQCBTREtST09UID0gJChTREtST09UXyQoVVNFX0lOVEVSTkFMX1NESykpOwogU0RLUk9P
VF8gPSBtYWNvc3g7CiBTREtST09UX1lFUyA9IG1hY29zeC5pbnRlcm5hbDsKIAorV0tfQlVJTERf
Rk9SX1RFU1RJTkcgPSBZRVM7CisKIE9USEVSX0NQTFVTUExVU0ZMQUdTID0gJChpbmhlcml0ZWQp
IC1mdGVtcGxhdGUtZGVwdGg9MjU2OwogCiBXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktTID0gWUVT
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YTc4YTg4MmMwOWJiNTVkYTFkYjJiYWUyMzJl
OTQzNzA0Y2ZkNmJjLi5mZWZlYzY1NzVhODMyZjQ1NDY5YzE1YmU0MjY2Yjk3YTI1MzIzZjFiIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTI3LDYgKzUyNyw3IEBACiAJCTdCNzc0OTA2MjY3
Q0NFNzIwMDk4NzNCNCAvKiBUZXN0UnVubmVyVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3NzQ5MDQyNjdDQ0U2ODAwOTg3M0I0IC8qIFRl
c3RSdW5uZXJUZXN0cy5jcHAgKi87IH07CiAJCTdCN0QwOTZBMjUxOUY4RjkwMDE3QTA3OCAvKiBX
ZWJHTE5vQ3Jhc2hPbk90aGVyVGhyZWFkQWNjZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I3RDA5NjkyNTE5RjhGOTAwMTdBMDc4IC8qIFdlYkdM
Tm9DcmFzaE9uT3RoZXJUaHJlYWRBY2Nlc3MubW0gKi87IH07CiAJCTdCQTM5MzZDMjcxRURGQ0Ew
MDE1OTExQyAvKiBUZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTM5MzZCMjcxRURGQ0EwMDE1OTExQyAv
KiBUZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLzsgfTsKKwkJN0JFOTMyNzQyN0ZBREND
NTAwRDVGRUZCIC8qIFRlc3RDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRTkzMjczMjdGQURDODkwMEQ1RkVGQiAvKiBUZXN0Q29u
bmVjdGlvbi5jcHAgKi87IH07CiAJCTdDMzk2NTA2MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRl
c3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
Mzk2NTA1MUNERDc0RjkwMDk0REJCOCAvKiBDb2xvclRlc3RzLmNwcCAqLzsgfTsKIAkJN0M0ODZC
QTExQUExMjU2NzAwM0Y2RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M0ODZCQTAxQUExMjU0QjAwM0Y2
RjlCIC8qIGJ1bmRsZS1maWxlLmh0bWwgKi87IH07CiAJCTdDNzRDOEZBMjJERkJBOTYwMERBMkRB
QiAvKiBXVEZTdHJpbmdVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0NCRDVBMjIyMkRFNDJBNjAwNEE5RTMyIC8qIFdURlN0cmluZ1V0
aWxpdGllcy5jcHAgKi87IH07CkBAIC0yNDYzLDYgKzI0NjQsNyBAQAogCQk3QkEzOTM2RDI3MUVF
QzUzMDAxNTkxMUMgLyogV2ViQ29yZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb3JlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCQjc1NEFGMjc0RTM5QTEwMEQwMEVDMSAvKiBUZXN0VXRpbGl0aWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRlc3RVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JC
NzU0QjAyNzRFMzlBMTAwRDAwRUMxIC8qIFRlc3RVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVGVzdFV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdC
RTkzMjczMjdGQURDODkwMEQ1RkVGQiAvKiBUZXN0Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZXN0Q29ubmVjdGlvbi5jcHA7IHBhdGggPSBTb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9UZXN0Q29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDMUFGNzkzMUU4RENCQUIwMDI2NDVCOSAvKiBQcmVwYXJlRm9yTW92
ZVRvV2luZG93Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJl
cGFyZUZvck1vdmVUb1dpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0Mz
OTY1MDUxQ0RENzRGOTAwOTREQkI4IC8qIENvbG9yVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29sb3JUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdDM0RCOEUyMUQxMjEyOUIwMEFFOENDMyAvKiBDb21tYW5kQmFja0ZvcndhcmQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb21tYW5kQmFja0Zv
cndhcmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MDIyLDYgKzQwMjQsMzgg
QEAKIAkJCXBhdGggPSBNaXNjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
N0JFOTMyNkQyN0ZBREMwOTAwRDVGRUZCIC8qIFNvdXJjZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdy
b3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0JFOTMyNzAyN0ZBREM1MTAwRDVGRUZCIC8qIFdl
YktpdCAqLywKKwkJCSk7CisJCQluYW1lID0gU291cmNlOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKKwkJN0JFOTMyNzAyN0ZBREM1MTAwRDVGRUZCIC8qIFdlYktpdCAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJN0JFOTMyNzEyN0ZBREM1
QTAwRDVGRUZCIC8qIFBsYXRmb3JtICovLAorCQkJKTsKKwkJCW5hbWUgPSBXZWJLaXQ7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk3QkU5MzI3MTI3RkFEQzVBMDBENUZFRkIg
LyogUGxhdGZvcm0gKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTdCRTkzMjcyMjdGQURDNjMwMEQ1RkVGQiAvKiBJUEMgKi8sCisJCQkpOworCQkJbmFtZSA9
IFBsYXRmb3JtOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJN0JFOTMyNzIy
N0ZBREM2MzAwRDVGRUZCIC8qIElQQyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJN0JFOTMyNzMyN0ZBREM4OTAwRDVGRUZCIC8qIFRlc3RDb25uZWN0aW9u
LmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gSVBDOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKKwkJfTsKIAkJN0M4M0UwMjgxRDBBNUNERjAwRkVCQ0YzIC8qIEZyYW1ld29ya3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNDg3NCw2ICs0OTA4LDcg
QEAKIAkJCQkxNENDNDJFMDI0QjhEN0U3MDBFNjRGNDggLyogSmF2YVNjcmlwdENvcmUgKi8sCiAJ
CQkJQzA3RTZDQUQxM0ZENjc2NTAwMzhCMjJCIC8qIG1hYyAqLywKIAkJCQk3Qjc3NDkwMzI2N0ND
RTM4MDA5ODczQjQgLyogTWlzYyAqLywKKwkJCQk3QkU5MzI2RDI3RkFEQzA5MDBENUZFRkIgLyog
U291cmNlICovLAogCQkJCUMwODU4N0Y5MTNGRUMzOUIwMDFFRjRFNSAvKiBUZXN0V2ViS2l0QVBJ
ICovLAogCQkJCTQ0MEExRDM2MTRBMDEwMDAwMDhBNjZGMiAvKiBXZWJDb3JlICovLAogCQkJCUJD
OTA5NjQxMTI1NTYxNjAwMDA4Mzc1NiAvKiBXZWJLaXQgKi8sCkBAIC01ODQzLDYgKzU4NzgsNyBA
QAogCQkJCUUzRUZCMDJGMjU1MDY1MDMwMDNDMkY5NiAvKiBTeXN0ZW1CZWVwLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0NDRTdGMTYxQTQxMUFFNjAwNDQ3QzRDIC8qIFRlcm1pbmF0ZVR3aWNlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE5MUE0MTFBMUQwMDQ0N0M0QyAvKiBUZXN0QnJv
d3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJN0JFOTMyNzQy
N0ZBRENDNTAwRDVGRUZCIC8qIFRlc3RDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTVDRTc1OTQ5MjJBODgzRDIwMEMxMjQwOSAvKiBUZXN0Q29udGV4dE1lbnVEcml2ZXIubW0gaW4g
U291cmNlcyAqLywKIAkJCQlGNDYxMjhDQjIxMUQ0NzUxMDBEOUZBREIgLyogVGVzdERyYWdnaW5n
SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0RTBBMkI4MjEyMjg0NzQwMEFGN0M3RiAvKiBU
ZXN0RmlsZVByb21pc2VSZWNlaXZlci5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9UZXN0Q29u
bmVjdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL1Rlc3RDb25uZWN0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YmRiYmNiZTA1MjEyNjY1
ZTVkMTk3ZTU1MWY2ZWM2NDlkN2E2MzIyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9UZXN0Q29ubmVjdGlvbi5j
cHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShCVUlMRF9GT1JfVEVTVElORykKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisK
K25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBJUEM7CisKK25hbWVz
cGFjZSB7CitjbGFzcyBNb2NrQ29ubmVjdGlvbkNsaWVudCA6IHB1YmxpYyBDb25uZWN0aW9uOjpD
bGllbnQgeworcHVibGljOgorICAgIE1vY2tDb25uZWN0aW9uQ2xpZW50KCkgPSBkZWZhdWx0Owor
ICAgIHZvaWQgZGlkQ2xvc2UoQ29ubmVjdGlvbiYpIGZpbmFsCisgICAgeworICAgIH0KKyAgICB2
b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb25uZWN0aW9uJiwgTWVzc2FnZU5hbWUpIGZp
bmFsCisgICAgeworICAgIH0KK307Cit9CisKK1RFU1QoVGVzdENvbm5lY3Rpb24sIENyZWF0ZVN1
Y2NlZWRzKQoreworICAgIGF1dG8gaWRlbnRpZmllcnMgPSBDb25uZWN0aW9uOjpjcmVhdGVDb25u
ZWN0aW9uSWRlbnRpZmllclBhaXIoKTsKKyAgICBBU1NFUlRfVFJVRShpZGVudGlmaWVycy5oYXNf
dmFsdWUoKSk7CisgICAgCisgICAgTW9ja0Nvbm5lY3Rpb25DbGllbnQgbW9ja1NlcnZlckNsaWVu
dDsKKyAgICBhdXRvIHNlcnZlckNvbm5lY3Rpb24gPSBDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJD
b25uZWN0aW9uKGlkZW50aWZpZXJzLT5zZXJ2ZXIsIG1vY2tTZXJ2ZXJDbGllbnQpOworICAgIAor
I2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjbGllbnRJZGVudGlmaWVyIHsgaWRlbnRpZmllcnMtPmNsaWVudC5yZWxlYXNlRmlsZURl
c2NyaXB0b3IoKSB9OworI2VsaWYgT1MoREFSV0lOKQorICAgIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyIHsgaWRlbnRpZmllcnMtPmNsaWVudC5wb3J0KCkgfTsK
KyNlbGlmIE9TKFdJTkRPV1MpCisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNsaWVu
dElkZW50aWZpZXIgeyBpZGVudGlmaWVycy0+Y2xpZW50LmhhbmRsZSgpIH07CisjZWxzZQorICAg
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyOworI2VuZGlmCisg
ICAgTW9ja0Nvbm5lY3Rpb25DbGllbnQgbW9ja0NsaWVudENsaWVudDsKKyAgICBhdXRvIGNsaWVu
dENvbm5lY3Rpb24gPSBDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNsaWVudElk
ZW50aWZpZXIsIG1vY2tDbGllbnRDbGllbnQpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvY29jb2EvV2ViUHJlZmVy
ZW5jZXNUZXN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRMZWdhY3kvY29j
b2EvV2ViUHJlZmVyZW5jZXNUZXN0Lm1tCmluZGV4IDExM2E0N2RiNWVmZWVhNjYxNjc4ZDhlY2Jh
ZDc0YmM5MGMzN2RkYTcuLjk1MTk2ZThmN2QwY2Q3NGFjZTBmMDAwMjBmZGJlYWVlNjEyNGMyNjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0TGVnYWN5L2NvY29h
L1dlYlByZWZlcmVuY2VzVGVzdC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdExlZ2FjeS9jb2NvYS9XZWJQcmVmZXJlbmNlc1Rlc3QubW0KQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlBy
ZWZlcmVuY2VzLmg+CiAKKy8vIFRoaXMgaXMgb25lIGV4YW1wbGUgd2hlcmUgd2UganVzdCBoYWNr
ZWQgYXJvdW5kIHRoZSBwcm9ibGVtLiBUaGlzIHNob3VsZCBjb21lIGZyb20gVGVzdGluZ0Z1bmN0
aW9ucy5oIGluY2x1ZGUgYnV0IHdlIGNhbm5vdCBnZXQgaXQuCiBXVEZfRVhURVJOX0NfQkVHSU4K
IFdlYkNhY2hlTW9kZWwgVGVzdFdlYlByZWZlcmVuY2VzQ2FjaGVNb2RlbEZvck1haW5CdW5kbGUo
TlNTdHJpbmcgKmJ1bmRsZUlkZW50aWZpZXIpOwogV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb25maWcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29u
ZmlnLmgKaW5kZXggNzJmOGUyMjQ2NGU0MGZkZjJiNjI1OWM1NWU4NDAyMWQ0Y2RlNTI4Ny4uNzFl
YzgzOTg5MDFkODYyZDk4MTY4OTMwNzUxYzMwYWJiMWM5MzgyNCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb25maWcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvbmZpZy5o
CkBAIC01NSw2ICs1NSw3IEBACiAjaWYgZGVmaW5lZChCVUlMRElOR19UZXN0V2ViS2l0KQogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTRXhwb3J0TWFjcm9zLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oPgorI2luY2x1ZGUgPFdlYktpdC9QbGF0Zm9ybUV4cG9y
dE1hY3Jvcy5oPgogI2luY2x1ZGUgPHBhbC9FeHBvcnRNYWNyb3MuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV2ViS2l0Ml9DLmg+CiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="484887"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>