<?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>218727</bug_id>
          
          <creation_ts>2020-11-09 15:16:44 -0800</creation_ts>
          <short_desc>Add support for AudioConfiguration.spatialRendering</short_desc>
          <delta_ts>2020-11-10 11:10:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1705902</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-11-09 15:16:44 -0800</bug_when>
    <thetext>Add support for AudioConfiguration.spatialRendering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705903</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-09 15:17:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/71213348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705904</commentid>
    <comment_count>2</comment_count>
      <attachid>413636</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-11-09 15:21:41 -0800</bug_when>
    <thetext>Created attachment 413636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705920</commentid>
    <comment_count>3</comment_count>
      <attachid>413636</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-11-09 16:06:10 -0800</bug_when>
    <thetext>Comment on attachment 413636
Patch

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

&gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.mm:42
&gt; +    : m_context(context)

WTFMove(context)

&gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.mm:90
&gt; +        if (auto* outputDevice = [m_context outputDevice])

Nit: &apos;*&apos; on the wrong side.

&gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.mm:95
&gt; +    auto* avOutputDevices = [m_context outputDevices];

Ditto

&gt; Source/WebCore/PAL/pal/avfoundation/OutputDevice.mm:47
&gt; +uint8_t OutputDevice::deviceFeatures() const

You could use std::bitset&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705922</commentid>
    <comment_count>4</comment_count>
      <attachid>413636</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-11-09 16:09:40 -0800</bug_when>
    <thetext>Comment on attachment 413636
Patch

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

&gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.h:38
&gt; +class OutputContext {

Is this for audio output only?

&gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.mm:48
&gt; +    static NeverDestroyed&lt;Optional&lt;OutputContext&gt;&gt; sharedAudioPresentationOutputContext = [] () -&gt; Optional&lt;OutputContext&gt; {

Nit. The space between [] and () can be removed.

&gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.mm:103
&gt; +

Nit. An extra space.

&gt; Source/WebCore/platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:133
&gt; +            if (!context || !WTF::allOf(context-&gt;outputDevices(), [] (auto&amp; device) {

Nit. The space between [] and () can be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705925</commentid>
    <comment_count>5</comment_count>
      <attachid>413638</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-11-09 16:13:40 -0800</bug_when>
    <thetext>Created attachment 413638
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705926</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-11-09 16:15:10 -0800</bug_when>
    <thetext>(In reply to Peng Liu from comment #4)
&gt; Comment on attachment 413636 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413636&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.h:38
&gt; &gt; +class OutputContext {
&gt; 
&gt; Is this for audio output only?

Not necessarily; it is also used for remote video playback over AirPlay or through an external TV screen.

&gt; &gt; Source/WebCore/PAL/pal/avfoundation/OutputContext.mm:48
&gt; &gt; +    static NeverDestroyed&lt;Optional&lt;OutputContext&gt;&gt; sharedAudioPresentationOutputContext = [] () -&gt; Optional&lt;OutputContext&gt; {
&gt; 
&gt; Nit. The space between [] and () can be removed.

Won&apos;t the style checker complain about that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706130</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-10 11:10:55 -0800</bug_when>
    <thetext>Committed r269631: &lt;https://trac.webkit.org/changeset/269631&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413638.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413636</attachid>
            <date>2020-11-09 15:21:41 -0800</date>
            <delta_ts>2020-11-09 16:06:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218727-20201109152140.patch</filename>
            <type>text/plain</type>
            <size>34460</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU3ZTZiMDU0OThlZDRl
N2Y4OWM1MDViNzIyMmQ5MDYyOTNmYmJhOS4uM2MzZjcxMDM1MWRhMzhmNmVjMDUyYThkNTFjZGEz
MzUwMjNjYWUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTA5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBB
dWRpb0NvbmZpZ3VyYXRpb24uc3BhdGlhbFJlbmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTIxMzM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUZXN0OiBtZWRpYS9tZWRpYWNhcGFiaWxpdGllcy9tb2NrLWRlY29kaW5nSW5mby1zcGF0
aWFsUmVuZGVyaW5nLmh0bWwKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc3BhdGlhbFJlbmRy
aW5nLiBPbiBDb2NvYSBwb3J0cywgdGhpcyB3aWxsIHF1ZXJ5IEFWQXVkaW9Db250ZXh0IGZvciBz
cGF0aWFsIHJlbmRlcmluZyBzdXBwb3J0LgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogVGhlIEF1
ZGlvQ29uZmlndXJhdGlvbi5pZGwgbWFya3Mgc2FtcGxlUmF0ZSwgYml0cmF0ZSwgYW5kIGNoYW5u
ZWxzIGFzIG9wdGlvbmFsOyB0aG9zZSBuZWVkIHRvCisgICAgICAgIGJlIHJlZmxlY3RlZCBpbiB0
aGUgQysrIHN0cnVjdC4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvQXVk
aW9Db25maWd1cmF0aW9uLmlkbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6ZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
Q29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlTWVkaWFQbGF5ZXJEZWNvZGluZ0Nv
bmZpZ3VyYXRpb25Db2NvYSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFjYXBhYmlsaXRpZXMv
QXVkaW9Db25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFjYXBhYmlsaXRp
ZXMvTWVkaWFDYXBhYmlsaXRpZXNMb2dnaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNP
Tk9iamVjdCk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRp
b25GYWN0b3J5TW9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYW5EZWNvZGVNZWRpYSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjYW5TbW9vdGhseURlY29kZU1lZGlhKToKKyAgICAgICAgKFdlYkNv
cmU6OmNhblBvd2VyRWZmaWNpZW50bHlEZWNvZGVNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpj
YW5TbW9vdGhseUVuY29kZU1lZGlhKToKKyAgICAgICAgKFdlYkNvcmU6OmNhblBvd2VyRWZmaWNp
ZW50bHlFbmNvZGVNZWRpYSk6CisKIDIwMjAtMTEtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CiAKICAgICAgICAgTm9uLWZ1bGxzY3JlZW4gcGFnZSBjb250ZW50cyB2aXNpYmxl
IHdoZW4gcm90YXRpbmcgZGV2aWNlIGR1cmluZyBlbGVtZW50IGZ1bGxzY3JlZW4gcHJlc2VudGF0
aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYzk0NmYwNGJhZjk2MDdlMDkxNTVhOTBiYTk2YTdj
OWIwMjZmZmNmZC4uZjE4YjQzYzg4ZjFjNmViMDQ1MjBjNTExZDI5N2ZmMTI1MDYxNWEzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjAtMTEtMDkgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEF1ZGlvQ29u
ZmlndXJhdGlvbi5zcGF0aWFsUmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3MjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjEz
MzQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL2F2Zm91bmRhdGlv
bi9PdXRwdXRDb250ZXh0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhY2FwYWJpbGl0aWVzL0F1ZGlvQ29uZmlndXJhdGlvbi5oLgorICAgICAgICAoUEFMOjpPdXRw
dXRDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQgY29uc3QpOgorICAgICAgICAqIHBhbC9hdmZvdW5k
YXRpb24vT3V0cHV0Q29udGV4dC5tbTogQWRkZWQuCisgICAgICAgIChQQUw6Ok91dHB1dENvbnRl
eHQ6Ok91dHB1dENvbnRleHQpOgorICAgICAgICAoUEFMOjpPdXRwdXRDb250ZXh0OjpzaGFyZWRB
dWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQpOgorICAgICAgICAoUEFMOjpPdXRwdXRDb250
ZXh0OjpzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcyk6CisgICAgICAgIChQQUw6Ok91dHB1
dENvbnRleHQ6OmRldmljZU5hbWUpOgorICAgICAgICAoUEFMOjpPdXRwdXRDb250ZXh0OjpvdXRw
dXREZXZpY2VzIGNvbnN0KToKKyAgICAgICAgKiBwYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmlj
ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGll
cy9BdWRpb0NvbmZpZ3VyYXRpb24uaC4KKyAgICAgICAgKFBBTDo6T3V0cHV0RGV2aWNlOjpwbGF0
Zm9ybURldmljZSBjb25zdCk6CisgICAgICAgICogcGFsL2F2Zm91bmRhdGlvbi9PdXRwdXREZXZp
Y2UubW06IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhY2FwYWJpbGl0
aWVzL0F1ZGlvQ29uZmlndXJhdGlvbi5oLgorICAgICAgICAoUEFMOjpPdXRwdXREZXZpY2U6Ok91
dHB1dERldmljZSk6CisgICAgICAgIChQQUw6Ok91dHB1dERldmljZTo6bmFtZSBjb25zdCk6Cisg
ICAgICAgIChQQUw6Ok91dHB1dERldmljZTo6ZGV2aWNlRmVhdHVyZXMgY29uc3QpOgorICAgICAg
ICAoUEFMOjpPdXRwdXREZXZpY2U6OnN1cHBvcnRzU3BhdGlhbEF1ZGlvIGNvbnN0KToKKyAgICAg
ICAgKiBwYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIwLTExLTA0ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IHNob3VsZCBy
ZW1vdmUgdW51c2VkIGRlYnVnIHZhcmlhbnQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9BdWRpb0NvbmZpZ3VyYXRpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9BdWRpb0NvbmZpZ3VyYXRp
b24uaWRsCmluZGV4IDJjNDI1ZjZlZDQ1NjExYTI3ZTQwMzQzZDRmYzViNTViZjYxOGE1ZDMuLjQ3
N2U4YTNmYWEyZjVmZmY0ODJjMDIxZmYxNThiOWU0Y2FlM2NjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvQXVkaW9Db25maWd1cmF0aW9uLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL0F1ZGlvQ29u
ZmlndXJhdGlvbi5pZGwKQEAgLTMxLDQgKzMxLDUgQEAKICAgRE9NU3RyaW5nIGNoYW5uZWxzOwog
ICB1bnNpZ25lZCBsb25nIGxvbmcgYml0cmF0ZTsKICAgdW5zaWduZWQgbG9uZyBzYW1wbGVyYXRl
OworICBib29sZWFuIHNwYXRpYWxSZW5kZXJpbmc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
UEFML1BBTC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5ZDZhODAyNTU0OWM3Yzc0
ODcyZjcxNTIzMjM0NTg3OGRiNGU5MmYuLmFiY2VhNTA0OTg4NzEyNDk3NWMyM2E5MjdlNzM1YTk3
MGMxODA3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE4MSw2ICsxODEsMTAgQEAKIAkJQTNDNjZDREQxRjQ2MkQ2QTAwOUU2
RUU5IC8qIFNlc3Npb25JRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTNDNjZDREIxRjQ2MkQ2QTAwOUU2RUU5IC8qIFNlc3Npb25JRC5oICovOyB9Owog
CQlBQkNBNTM2ODI0ODk1REI5MDAzNjFCRkYgLyogQ29yZU1vdGlvblNQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQUJDQTUzNjcyNDg5NURCOTAwMzYx
QkZGIC8qIENvcmVNb3Rpb25TUEkuaCAqLzsgfTsKIAkJQzE1Q0JCMzUyM0YzNTQ4QTAwMzAwQ0M3
IC8qIE5TVXNlckRlZmF1bHRzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMTVDQkIzMjIzRjM0QTEyMDAzMDBDQzcgLyogTlNVc2VyRGVmYXVsdHNT
UEkuaCAqLzsgfTsKKwkJQ0Q2MTIyQ0MyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1dENvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjEyMkNB
MjU1OUI2QUMwMEZDNjU3QSAvKiBPdXRwdXRDb250ZXh0LmggKi87IH07CisJCUNENjEyMkNEMjU1
OUI2QUMwMEZDNjU3QSAvKiBPdXRwdXRDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MTIyQ0IyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1
dENvbnRleHQubW0gKi87IH07CisJCUNENjEyMkQwMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXRE
ZXZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NjEyMkNFMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXREZXZpY2UuaCAqLzsgfTsKKwkJQ0Q2MTIy
RDEyNTU5QjhGMjAwRkM2NTdBIC8qIE91dHB1dERldmljZS5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENjEyMkNGMjU1OUI4RjIwMEZDNjU3QSAvKiBP
dXRwdXREZXZpY2UubW0gKi87IH07CiAJCUNEQUNCMzYwMjM4NzQyNUIwMDE4RDdDRSAvKiBNZWRp
YVRvb2xib3hTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExp
bmsuY3BwICovOyB9OwogCQlDREFDQjM2MTIzODc0Mjc0MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94
U29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQUNCMzVGMjM4NzNFNDgwMDE4RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5oICovOyB9
OwogCQlDREY5MTExMzIyMEU0RUVDMDAxRUEzOUUgLyogQ2VsZXN0aWFsU1BJLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY5MTExMjIyMEU0RUVDMDAx
RUEzOUUgLyogQ2VsZXN0aWFsU1BJLmggKi87IH07CkBAIC0zNzcsNiArMzgxLDEwIEBACiAJCUMx
MzhFQTFBMjQzNjQ0NzIwMDY1NkRGMSAvKiBDb3JlU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29yZVNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNUNC
QjMyMjNGMzRBMTIwMDMwMENDNyAvKiBOU1VzZXJEZWZhdWx0c1NQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOU1VzZXJEZWZhdWx0c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjE0
N0E0QTFFRkQwQUE2MDAwNTZGQTUgLyogQ29weVBBTEhlYWRlcnMueGNjb25maWcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQ29weVBBTEhlYWRlcnMueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENjEyMkNBMjU1OUI2QUMwMEZDNjU3QSAvKiBPdXRwdXRD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE91dHB1dENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q2MTIyQ0IyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1dENvbnRleHQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBPdXRwdXRDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDYxMjJDRTI1NTlCOEYyMDBGQzY1N0EgLyogT3V0cHV0RGV2aWNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE91dHB1dERldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDYxMjJDRjI1NTlCOEYyMDBGQzY1N0EgLyogT3V0cHV0RGV2aWNlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gT3V0cHV0RGV2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREFDQjM1RTIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFUb29sYm94U29mdExpbmsu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUb29sYm94U29mdExpbmsuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDREFDQjM1RjIzODczRTQ4MDAxOEQ3Q0UgLyogTWVkaWFU
b29sYm94U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFUb29sYm94U29mdExpbmsuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGOTExMTIyMjBFNEVFQzAwMUVBMzlFIC8q
IENlbGVzdGlhbFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDZWxlc3Rp
YWxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQwNiw2ICs0MTQsMTAgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTBDMDBDRkQxMUY2OENFNDYwMEFBQzI2RCAvKiBNZWRpYVRp
bWVBVkZvdW5kYXRpb24uY3BwICovLAogCQkJCTBDMDBDRkQyMUY2OENFNDYwMEFBQzI2RCAvKiBN
ZWRpYVRpbWVBVkZvdW5kYXRpb24uaCAqLywKKwkJCQlDRDYxMjJDQTI1NTlCNkFDMDBGQzY1N0Eg
LyogT3V0cHV0Q29udGV4dC5oICovLAorCQkJCUNENjEyMkNCMjU1OUI2QUMwMEZDNjU3QSAvKiBP
dXRwdXRDb250ZXh0Lm1tICovLAorCQkJCUNENjEyMkNFMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRw
dXREZXZpY2UuaCAqLywKKwkJCQlDRDYxMjJDRjI1NTlCOEYyMDBGQzY1N0EgLyogT3V0cHV0RGV2
aWNlLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBhdmZvdW5kYXRpb247CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtODc0LDYgKzg4Niw4IEBACiAJCQkJNTcwQUI4RjkyMEFGNkUzRDAw
QjhCRTg3IC8qIE5TWFBDQ29ubmVjdGlvblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEM1QUY5
MUYxRjQzQTRDNzAwMkVBQzAyIC8qIE9wZW5HTEVTU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MTY0N0ZCMTI1MTc1OUVGMDAxMEY4RkIgLyogT3BlbkdMU29mdExpbmtDb2NvYS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0Q2MTIyQ0MyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1dENvbnRleHQuaCBp
biBIZWFkZXJzICovLAorCQkJCUNENjEyMkQwMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXREZXZp
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNjlCMDQxMjQ4RUYwNTIwMEVFOEI3QiAvKiBQYXNz
S2l0SW5zdGFsbG1lbnRzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUY2M0M5RjIxQTREQkY3
MDA2RkI0M0IgLyogUGFzc0tpdFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzJEQTE1
NTFGM0JFQjQ5MDBEQkMzMTcgLyogUGFzc0tpdFNQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDEx
LDYgKzEwMjUsOCBAQAogCQkJCTBDRjk5Q0E0MUY3MzYzNzUwMDdFRTc5MyAvKiBNZWRpYVRpbWVB
VkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBQ0IzNjAyMzg3NDI1QjAwMThE
N0NFIC8qIE1lZGlhVG9vbGJveFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjQ3
RkIwMjUxNzU5REQwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJQ0Q2MTIyQ0QyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1dENvbnRleHQubW0gaW4g
U291cmNlcyAqLywKKwkJCQlDRDYxMjJEMTI1NTlCOEYyMDBGQzY1N0EgLyogT3V0cHV0RGV2aWNl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFGNjNDQTAyMUE0REJGNzAwNkZCNDNCIC8qIFBhc3NL
aXRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMTc1QjRGMUY2QjMzNzMwMEM0QjlG
MCAvKiBQb3B1cE1lbnUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0NDUwRkM5RjIxRjVGNjAyMDA0
REZBNTYgLyogUXVpY2tMb29rU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dENvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dENvbnRleHQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mMWQ2OGM4MWYwYzQyMjkzNDNhOGNlNThlM2JmMmM5MGZmNzE0YTc0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4
dC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVT
RShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JK
Q19DTEFTUyBBVk91dHB1dENvbnRleHQ7CisKK25hbWVzcGFjZSBQQUwgeworCitjbGFzcyBPdXRw
dXREZXZpY2U7CisKK2NsYXNzIE91dHB1dENvbnRleHQgeworcHVibGljOgorICAgIHN0YXRpYyBP
cHRpb25hbDxPdXRwdXRDb250ZXh0PiYgc2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250
ZXh0KCk7CisKKyAgICBib29sIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKCk7CisgICAg
U3RyaW5nIGRldmljZU5hbWUoKTsKKworICAgIFZlY3RvcjxPdXRwdXREZXZpY2U+IG91dHB1dERl
dmljZXMoKSBjb25zdDsKKworICAgIEFWT3V0cHV0Q29udGV4dCogcGxhdGZvcm1Db250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9Citwcml2YXRlOgorICAgIGZyaWVuZCBj
bGFzcyBOZXZlckRlc3Ryb3llZDxPdXRwdXRDb250ZXh0PjsKKyAgICBPdXRwdXRDb250ZXh0KFJl
dGFpblB0cjxBVk91dHB1dENvbnRleHQ+JiYpOworCisgICAgUmV0YWluUHRyPEFWT3V0cHV0Q29u
dGV4dD4gbV9jb250ZXh0OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dENvbnRleHQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2F2Zm91bmRhdGlvbi9PdXRwdXRDb250ZXh0Lm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNm
ZjNiYmNjNjRlNWI4ZmFiOTVhZjM1M2FiMjU5NTcwMjA5OGRhNDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2F2Zm91bmRhdGlvbi9PdXRwdXRDb250ZXh0Lm1tCkBA
IC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIk91dHB1dENvbnRleHQuaCIKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRl
ICJPdXRwdXREZXZpY2UuaCIKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDxwYWwvc3BpL2Nv
Y29hL0FWRm91bmRhdGlvblNQSS5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworI2luY2x1ZGUgPHBhbC9jb2Nv
YS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgorCituYW1lc3BhY2UgUEFMIHsKKworT3V0cHV0Q29u
dGV4dDo6T3V0cHV0Q29udGV4dChSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0PiYmIGNvbnRleHQp
CisgICAgOiBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworT3B0aW9uYWw8T3V0cHV0Q29udGV4
dD4mIE91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9wdGlvbmFsPE91dHB1dENvbnRleHQ+PiBz
aGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQgPSBbXSAoKSAtPiBPcHRpb25hbDxP
dXRwdXRDb250ZXh0PiB7CisgICAgICAgIGlmICghW1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xh
c3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNoYXJlZEF1ZGlvUHJlc2VudGF0aW9u
T3V0cHV0Q29udGV4dCldKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
ICAgICBhdXRvIGNvbnRleHQgPSBbZ2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBzaGFyZWRBdWRp
b1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHRdOworICAgICAgICBpZiAoIWNvbnRleHQpCisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgICAgIHJldHVybiBPdXRwdXRDb250
ZXh0KHJldGFpblB0cihjb250ZXh0KSk7CisgICAgfSgpOworICAgIHJldHVybiBzaGFyZWRBdWRp
b1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7Cit9CisKK2Jvb2wgT3V0cHV0Q29udGV4dDo6c3Vw
cG9ydHNNdWx0aXBsZU91dHB1dERldmljZXMoKQoreworICAgIHJldHVybiBbbV9jb250ZXh0IHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXMp
XQorICAgICAgICAmJiBbbV9jb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iob3V0
cHV0RGV2aWNlcyldCisgICAgICAgICYmIFttX2NvbnRleHQgc3VwcG9ydHNNdWx0aXBsZU91dHB1
dERldmljZXNdOworfQorCitTdHJpbmcgT3V0cHV0Q29udGV4dDo6ZGV2aWNlTmFtZSgpCit7Cisg
ICAgaWYgKCFzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcygpKQorICAgICAgICByZXR1cm4g
W21fY29udGV4dCBkZXZpY2VOYW1lXTsKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAg
ICBhdXRvIGRldmljZXMgPSBvdXRwdXREZXZpY2VzKCk7CisgICAgYXV0byBpdGVyYXRvciA9IGRl
dmljZXMuYmVnaW4oKTsKKworICAgIHdoaWxlIChpdGVyYXRvciAhPSBkZXZpY2VzLmVuZCgpKSB7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZXJhdG9yLT5uYW1lKCkpOworCisgICAgICAgIGlm
ICgrK2l0ZXJhdG9yICE9IGRldmljZXMuZW5kKCkpCisgICAgICAgICAgICBidWlsZGVyLmFwcGVu
ZCgiICsgIik7CisgICAgfQorCisgICAgcmV0dXJuIGJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKwor
VmVjdG9yPE91dHB1dERldmljZT4gT3V0cHV0Q29udGV4dDo6b3V0cHV0RGV2aWNlcygpIGNvbnN0
Cit7CisgICAgaWYgKCFbbV9jb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iob3V0
cHV0RGV2aWNlcyldKSB7CisgICAgICAgIGlmIChhdXRvKiBvdXRwdXREZXZpY2UgPSBbbV9jb250
ZXh0IG91dHB1dERldmljZV0pCisgICAgICAgICAgICByZXR1cm4geyByZXRhaW5QdHIob3V0cHV0
RGV2aWNlKSB9OworICAgICAgICByZXR1cm4geyB9OworICAgIH0KKworICAgIGF1dG8qIGF2T3V0
cHV0RGV2aWNlcyA9IFttX2NvbnRleHQgb3V0cHV0RGV2aWNlc107CisgICAgVmVjdG9yPE91dHB1
dERldmljZT4gb3V0cHV0RGV2aWNlczsKKyAgICBvdXRwdXREZXZpY2VzLnJlc2VydmVJbml0aWFs
Q2FwYWNpdHkoYXZPdXRwdXREZXZpY2VzLmNvdW50KTsKKyAgICBmb3IgKEFWT3V0cHV0RGV2aWNl
ICpkZXZpY2UgaW4gYXZPdXRwdXREZXZpY2VzKQorICAgICAgICBvdXRwdXREZXZpY2VzLnVuY2hl
Y2tlZEFwcGVuZCh7IHJldGFpblB0cihkZXZpY2UpIH0pOworICAgIHJldHVybiBvdXRwdXREZXZp
Y2VzOworfQorCisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2F2Zm91bmRhdGlvbi9PdXRwdXREZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
YXZmb3VuZGF0aW9uL091dHB1dERldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2MjExMDQ0OWY0NjQ0ZWJh
NzE3MjcyNWI1MjVmMjBiOTk4NTE3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2F2Zm91bmRhdGlvbi9PdXRwdXREZXZpY2UuaApAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoQVZGT1VOREFUSU9OKQorCitPQkpD
X0NMQVNTIEFWT3V0cHV0RGV2aWNlOworCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBQQUwgeworCitjbGFzcyBPdXRwdXREZXZpY2UgeworcHVibGljOgorICAg
IFN0cmluZyBuYW1lKCkgY29uc3Q7CisKKyAgICBlbnVtIGNsYXNzIERldmljZUZlYXR1cmVzIDog
dWludDhfdCB7CisgICAgICAgIEF1ZGlvID0gMSA8PCAwLAorICAgICAgICBTY3JlZW4gPSAxIDw8
IDEsCisgICAgICAgIFZpZGVvID0gMSA8PCAyLAorICAgIH07CisgICAgdWludDhfdCBkZXZpY2VG
ZWF0dXJlcygpIGNvbnN0OworCisgICAgYm9vbCBzdXBwb3J0c1NwYXRpYWxBdWRpbygpIGNvbnN0
OworCisgICAgQVZPdXRwdXREZXZpY2UqIHBsYXRmb3JtRGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
bV9kZXZpY2UuZ2V0KCk7IH0KK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE91dHB1dENvbnRl
eHQ7CisgICAgT3V0cHV0RGV2aWNlKFJldGFpblB0cjxBVk91dHB1dERldmljZT4mJik7CisKKyAg
ICBSZXRhaW5QdHI8QVZPdXRwdXREZXZpY2U+IG1fZGV2aWNlOworfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dERl
dmljZS5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmlj
ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMjhjYjMxZGQyZTEyYjRhZjY2M2RkZjk3YjE4ZDFjOTRjZTc2ZGJi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9hdmZvdW5kYXRpb24v
T3V0cHV0RGV2aWNlLm1tCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiT3V0cHV0RGV2aWNlLmgiCisKKyNpZiBVU0UoQVZGT1VOREFU
SU9OKQorCisjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KKworI2lu
Y2x1ZGUgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgorCituYW1lc3BhY2UgUEFM
IHsKKworT3V0cHV0RGV2aWNlOjpPdXRwdXREZXZpY2UoUmV0YWluUHRyPEFWT3V0cHV0RGV2aWNl
PiYmIGRldmljZSkKKyAgICA6IG1fZGV2aWNlKFdURk1vdmUoZGV2aWNlKSkKK3sKK30KKworU3Ry
aW5nIE91dHB1dERldmljZTo6bmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFttX2RldmljZSBu
YW1lXTsKK30KKwordWludDhfdCBPdXRwdXREZXZpY2U6OmRldmljZUZlYXR1cmVzKCkgY29uc3QK
K3sKKyAgICBhdXRvIGF2RGV2aWNlRmVhdHVyZXMgPSBbbV9kZXZpY2UgZGV2aWNlRmVhdHVyZXNd
OworICAgIHVpbnQ4X3QgZGV2aWNlRmVhdHVyZXMgeyAwIH07CisgICAgaWYgKGF2RGV2aWNlRmVh
dHVyZXMgJiBBVk91dHB1dERldmljZUZlYXR1cmVBdWRpbykKKyAgICAgICAgZGV2aWNlRmVhdHVy
ZXMgfD0gKHVpbnQ4X3QpRGV2aWNlRmVhdHVyZXM6OkF1ZGlvOworICAgIGlmIChhdkRldmljZUZl
YXR1cmVzICYgQVZPdXRwdXREZXZpY2VGZWF0dXJlU2NyZWVuKQorICAgICAgICBkZXZpY2VGZWF0
dXJlcyB8PSAodWludDhfdClEZXZpY2VGZWF0dXJlczo6U2NyZWVuOworICAgIGlmIChhdkRldmlj
ZUZlYXR1cmVzICYgQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8pCisgICAgICAgIGRldmljZUZl
YXR1cmVzIHw9ICh1aW50OF90KURldmljZUZlYXR1cmVzOjpWaWRlbzsKKyAgICByZXR1cm4gZGV2
aWNlRmVhdHVyZXM7Cit9CisKK2Jvb2wgT3V0cHV0RGV2aWNlOjpzdXBwb3J0c1NwYXRpYWxBdWRp
bygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFttX2RldmljZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHN1cHBvcnRzSGVhZFRyYWNrZWRTcGF0aWFsQXVkaW8pXQorICAgICAgICAmJiBbbV9k
ZXZpY2Ugc3VwcG9ydHNIZWFkVHJhY2tlZFNwYXRpYWxBdWRpb107Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRp
b25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQ
SS5oCmluZGV4IGVjNjhiNzhjMjQ0OGQ4Y2M5ZWE1MzEzZWI0NTJhMmQ2MmI1OTAxOGEuLmI4MzFh
ZDIyMDQ2NjBiYmU4Y2FjNDUyMjQwZGY5YWYxZmMzMjUwOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oCkBAIC0xMDIsNiArMTAy
LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIEFWT3V0cHV0RGV2aWNlRmVhdHVy
ZXMpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKm5hbWU7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkZXZpY2VOYW1lOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBBVk91dHB1dERldmljZUZlYXR1cmVzIGRldmlj
ZUZlYXR1cmVzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHN1cHBvcnRz
SGVhZFRyYWNrZWRTcGF0aWFsQXVkaW87CiBAZW5kCiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGYyOTQ4ODE2ZWRkZTc5ZTc4YTE5MzFkNWJj
NmQzZWNlZWI1ZDg0N2YuLjJhNmQ3YTNlOTAyM2FjMmNlOTFmYjA2NDlmYTJmOTE4YTc4NzZhOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtODYsNiArODYsNyBAQAogI2ltcG9ydCA8ZnVu
Y3Rpb25hbD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL2F2Zm91bmRh
dGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24v
T3V0cHV0Q29udGV4dC5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEku
aD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KQEAgLTI3NDUsMjQgKzI3NDYsOCBAQCBzdGF0aWMgTlNT
dHJpbmcgKmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcihBVlBsYXllciAqcGxheWVy
KQogICAgIGlmICghUEFMOjppc0FWRm91bmRhdGlvbkZyYW1ld29ya0F2YWlsYWJsZSgpKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgaWYgKFtQQUw6OmdldEFWT3V0cHV0Q29udGV4dENsYXNz
KCkgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91
dHB1dENvbnRleHQpXSkgewotICAgICAgICBBVk91dHB1dENvbnRleHQgKm91dHB1dENvbnRleHQg
PSBbUEFMOjpnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIHNoYXJlZEF1ZGlvUHJlc2VudGF0aW9u
T3V0cHV0Q29udGV4dF07Ci0KLSAgICAgICAgaWYgKCFbb3V0cHV0Q29udGV4dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKV0KLSAgICAg
ICAgICAgIHx8ICFbb3V0cHV0Q29udGV4dCBzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10K
LSAgICAgICAgICAgIHx8ICFbb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKG91dHB1dERldmljZXMpXSkKLSAgICAgICAgICAgIHJldHVybiBbb3V0cHV0Q29udGV4dCBk
ZXZpY2VOYW1lXTsKLQotICAgICAgICBhdXRvIG91dHB1dERldmljZU5hbWVzID0gYWRvcHROUyhb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGZvciAoQVZPdXRwdXREZXZp
Y2UgKm91dHB1dERldmljZSBpbiBbb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VzXSkgewotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICAgICAgICAgIGF1dG8gb3V0cHV0
RGV2aWNlTmFtZSA9IGFkb3B0TlMoW1tvdXRwdXREZXZpY2UgbmFtZV0gY29weV0pOwotQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgICAgICBbb3V0cHV0RGV2aWNlTmFt
ZXMgYWRkT2JqZWN0Om91dHB1dERldmljZU5hbWUuZ2V0KCldOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcmV0dXJuIFtvdXRwdXREZXZpY2VOYW1lcyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCIg
KyAiXTsKLSAgICB9CisgICAgaWYgKGF1dG8gY29udGV4dCA9IE91dHB1dENvbnRleHQ6OnNoYXJl
ZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCgpKQorICAgICAgICByZXR1cm4gY29udGV4
dC0+ZGV2aWNlTmFtZSgpOwogCiAgICAgaWYgKHBsYXllci5leHRlcm5hbFBsYXliYWNrVHlwZSAh
PSBBVlBsYXllckV4dGVybmFsUGxheWJhY2tUeXBlQWlyUGxheSkKICAgICAgICAgcmV0dXJuIG5p
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01l
ZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29j
b2EuY3BwCmluZGV4IDljNTRiMTczYzM3ZGZjNzQ0NmI2NWIwNzY5OTVmNjAzZTc4ZWMxYmUuLjg3
YzAyNjk3YzVhOGVjNTc5MWE3NTMyMzBmMWE4NTkzMWNkY2RjNGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnlDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcApAQCAtMzMsNiAr
MzMsOCBAQAogI2luY2x1ZGUgIk1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJWUDlVdGlsaXRpZXNDb2NvYS5oIgorI2luY2x1
ZGUgPHBhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4dC5oPgorI2luY2x1ZGUgPHBhbC9hdmZv
dW5kYXRpb24vT3V0cHV0RGV2aWNlLmg+CiAKICNpbmNsdWRlICJWaWRlb1Rvb2xib3hTb2Z0TGlu
ay5oIgogCkBAIC0xMjUsNiArMTI3LDE2IEBAIHZvaWQgY3JlYXRlTWVkaWFQbGF5ZXJEZWNvZGlu
Z0NvbmZpZ3VyYXRpb25Db2NvYShNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYmIGNvCiAgICAg
ICAgICAgICBjYWxsYmFjayh7eyB9LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pfSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5hdWRp
by0+c3BhdGlhbFJlbmRlcmluZykgeworICAgICAgICAgICAgYXV0byBjb250ZXh0ID0gUEFMOjpP
dXRwdXRDb250ZXh0OjpzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQoKTsKKyAg
ICAgICAgICAgIGlmICghY29udGV4dCB8fCAhV1RGOjphbGxPZihjb250ZXh0LT5vdXRwdXREZXZp
Y2VzKCksIFtdIChhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZGV2aWNl
LnN1cHBvcnRzU3BhdGlhbEF1ZGlvKCk7CisgICAgICAgICAgICB9KSkgeworICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgaW5mby5zdXBw
b3J0ZWQgPSB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFjYXBhYmlsaXRpZXMvQXVkaW9Db25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9BdWRpb0NvbmZpZ3VyYXRpb24uaAppbmRleCA5
NjVjZjdlNzlhMWZmNWYzZTBkMjVhY2M1NzE5NDRmMjEzODQ2NjJmLi44ZmExNGE1MjRjMDQ1ZmVk
ZWNjM2ZhNTU0ZjQ4MDk2YTQ5MzQ4YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9BdWRpb0NvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9BdWRpb0NvbmZpZ3VyYXRpb24uaApA
QCAtMzIsOCArMzIsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQXVkaW9Db25maWd1
cmF0aW9uIHsKICAgICBTdHJpbmcgY29udGVudFR5cGU7CiAgICAgU3RyaW5nIGNoYW5uZWxzOwot
ICAgIHVpbnQ2NF90IGJpdHJhdGU7Ci0gICAgdWludDMyX3Qgc2FtcGxlcmF0ZTsKKyAgICBPcHRp
b25hbDx1aW50NjRfdD4gYml0cmF0ZTsKKyAgICBPcHRpb25hbDx1aW50MzJfdD4gc2FtcGxlcmF0
ZTsKKyAgICBPcHRpb25hbDxib29sPiBzcGF0aWFsUmVuZGVyaW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFj
YXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXNMb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2FwYWJpbGl0aWVzTG9nZ2luZy5jcHAK
aW5kZXggMGE0MmZiMzc0YzI4NjlhNmJmNThiMDE3YzAwYjgzODY2ZDA3YmViYi4uNTU5YmYxYTY3
MmY0NWFmMzAxOTc2NWE1NDVjOTJkODk4ZWNmMTdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFjYXBhYmlsaXRpZXMvTWVkaWFDYXBhYmlsaXRpZXNMb2dnaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9NZWRpYUNh
cGFiaWxpdGllc0xvZ2dpbmcuY3BwCkBAIC02Niw5ICs2NiwxNCBAQCBzdGF0aWMgUmVmPEpTT046
Ok9iamVjdD4gdG9KU09OT2JqZWN0KGNvbnN0IEF1ZGlvQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKIHsKICAgICBhdXRvIG9iamVjdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAg
b2JqZWN0LT5zZXRTdHJpbmcoImNvbnRlbnRUeXBlIl9zLCBjb25maWd1cmF0aW9uLmNvbnRlbnRU
eXBlKTsKLSAgICBvYmplY3QtPnNldFN0cmluZygiY2hhbm5lbHMiX3MsIGNvbmZpZ3VyYXRpb24u
Y2hhbm5lbHMpOwotICAgIG9iamVjdC0+c2V0SW50ZWdlcigiYml0cmF0ZSJfcywgc3RhdGljX2Nh
c3Q8aW50Pihjb25maWd1cmF0aW9uLmJpdHJhdGUpKTsKLSAgICBvYmplY3QtPnNldERvdWJsZSgi
c2FtcGxlcmF0ZSJfcywgY29uZmlndXJhdGlvbi5zYW1wbGVyYXRlKTsKKyAgICBpZiAoIWNvbmZp
Z3VyYXRpb24uY2hhbm5lbHMuaXNOdWxsKCkpCisgICAgICAgIG9iamVjdC0+c2V0U3RyaW5nKCJj
aGFubmVscyJfcywgY29uZmlndXJhdGlvbi5jaGFubmVscyk7CisgICAgaWYgKGNvbmZpZ3VyYXRp
b24uYml0cmF0ZSkKKyAgICAgICAgb2JqZWN0LT5zZXRJbnRlZ2VyKCJiaXRyYXRlIl9zLCBzdGF0
aWNfY2FzdDxpbnQ+KGNvbmZpZ3VyYXRpb24uYml0cmF0ZS52YWx1ZSgpKSk7CisgICAgaWYgKGNv
bmZpZ3VyYXRpb24uc2FtcGxlcmF0ZSkKKyAgICAgICAgb2JqZWN0LT5zZXREb3VibGUoInNhbXBs
ZXJhdGUiX3MsIGNvbmZpZ3VyYXRpb24uc2FtcGxlcmF0ZS52YWx1ZSgpKTsKKyAgICBpZiAoY29u
ZmlndXJhdGlvbi5zcGF0aWFsUmVuZGVyaW5nKQorICAgICAgICBvYmplY3QtPnNldEJvb2xlYW4o
InNwYXRpYWxSZW5kZXJpbmciX3MsIGNvbmZpZ3VyYXRpb24uc3BhdGlhbFJlbmRlcmluZy52YWx1
ZSgpKTsKICAgICByZXR1cm4gb2JqZWN0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeU1vY2suY3BwCmluZGV4IDc2ODgzNmExNWJlNjFjZjEzODc4NDM3YTBhNmU4ZGRmY2VjYjhh
OGIuLmU0Mjk0Mjg4YTIzYmQ3ZGFlMDMwNDI5ZjFlODkxMjk4ODRlYTUyNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFj
dG9yeU1vY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFFbmdp
bmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2suY3BwCkBAIC02MSw4ICs2MSwxNCBAQCBzdGF0aWMg
Ym9vbCBjYW5EZWNvZGVNZWRpYShjb25zdCBNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbikKIAogICAgIC8vIEF1ZGlvIGRlY29kaW5nIHN1cHBvcnQgbGltaXRlZCB0byBh
dWRpby9tcDQuCiAgICAgYXV0byBhdWRpb0NvbmZpZyA9IGNvbmZpZ3VyYXRpb24uYXVkaW87Ci0g
ICAgaWYgKGF1ZGlvQ29uZmlnKQotICAgICAgICByZXR1cm4gQ29udGVudFR5cGUoYXVkaW9Db25m
aWctPmNvbnRlbnRUeXBlKS5jb250YWluZXJUeXBlKCkgPT0gImF1ZGlvL21wNCI7CisgICAgaWYg
KGF1ZGlvQ29uZmlnKSB7CisgICAgICAgIGlmIChDb250ZW50VHlwZShhdWRpb0NvbmZpZy0+Y29u
dGVudFR5cGUpLmNvbnRhaW5lclR5cGUoKSAhPSAiYXVkaW8vbXA0IikKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICAvLyBDYW4gb25seSBzdXBwb3J0IHNwYXRpYWwgcmVuZGVy
aW5nIG9mIHRyYWNrcyB3aXRoIG11bHRpY2hhbm5lbCBhdWRpbzoKKyAgICAgICAgaWYgKGF1ZGlv
Q29uZmlnLT5zcGF0aWFsUmVuZGVyaW5nLnZhbHVlT3IoZmFsc2UpICYmIGF1ZGlvQ29uZmlnLT5j
aGFubmVscy50b0RvdWJsZSgpIDw9IDIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03NCw3ICs4MCw3IEBAIHN0YXRpYyBib29sIGNh
blNtb290aGx5RGVjb2RlTWVkaWEoY29uc3QgTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gYXVkaW9Db25maWcg
PSBjb25maWd1cmF0aW9uLmF1ZGlvOwotICAgIGlmIChhdWRpb0NvbmZpZykKKyAgICBpZiAoYXVk
aW9Db25maWcgJiYgIWF1ZGlvQ29uZmlnLT5jaGFubmVscy5pc051bGwoKSkKICAgICAgICAgcmV0
dXJuIGF1ZGlvQ29uZmlnLT5jaGFubmVscyA9PSAiMiI7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTg3LDggKzkzLDggQEAgc3RhdGljIGJvb2wgY2FuUG93ZXJFZmZpY2llbnRseURlY29kZU1lZGlh
KGNvbnN0IE1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uJiBjb24KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgYXV0byBhdWRpb0NvbmZpZyA9IGNvbmZpZ3VyYXRpb24uYXVkaW87Ci0gICAg
aWYgKGF1ZGlvQ29uZmlnKQotICAgICAgICByZXR1cm4gYXVkaW9Db25maWctPmJpdHJhdGUgPD0g
MTAwMDsKKyAgICBpZiAoYXVkaW9Db25maWcgJiYgYXVkaW9Db25maWctPmJpdHJhdGUpCisgICAg
ICAgIHJldHVybiBhdWRpb0NvbmZpZy0+Yml0cmF0ZS52YWx1ZSgpIDw9IDEwMDA7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTEyNSw3ICsxMzEsNyBAQCBzdGF0aWMgYm9vbCBjYW5TbW9vdGhs
eUVuY29kZU1lZGlhKGNvbnN0IE1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIGF1ZGlvQ29uZmlnID0gY29uZmln
dXJhdGlvbi5hdWRpbzsKLSAgICBpZiAoYXVkaW9Db25maWcgJiYgYXVkaW9Db25maWctPmNoYW5u
ZWxzICE9ICIyIikKKyAgICBpZiAoYXVkaW9Db25maWcgJiYgIWF1ZGlvQ29uZmlnLT5jaGFubmVs
cy5pc051bGwoKSAmJiBhdWRpb0NvbmZpZy0+Y2hhbm5lbHMgIT0gIjIiKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzOCw3ICsxNDQsNyBAQCBzdGF0aWMg
Ym9vbCBjYW5Qb3dlckVmZmljaWVudGx5RW5jb2RlTWVkaWEoY29uc3QgTWVkaWFFbmNvZGluZ0Nv
bmZpZ3VyYXRpb24mIGNvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIGF1ZGlv
Q29uZmlnID0gY29uZmlndXJhdGlvbi5hdWRpbzsKLSAgICBpZiAoYXVkaW9Db25maWcgJiYgYXVk
aW9Db25maWctPmJpdHJhdGUgPiAxMDAwKQorICAgIGlmIChhdWRpb0NvbmZpZyAmJiBhdWRpb0Nv
bmZpZy0+Yml0cmF0ZSAmJiBhdWRpb0NvbmZpZy0+Yml0cmF0ZS52YWx1ZSgpID4gMTAwMCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmI5ODBhN2Vk
MTgyODcxNGRjY2FkNmU3ZDc1ZWQxNjU3ZDk3NWVhMi4uMWZiM2ExYzJlN2UyYjI5MWEwNGRiZGU0
YWIwZWE0NjE0ZjMxYjAyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTExLTA5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBB
dWRpb0NvbmZpZ3VyYXRpb24uc3BhdGlhbFJlbmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTIxMzM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIG1lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxS
ZW5kZXJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYWNhcGFi
aWxpdGllcy9tb2NrLWRlY29kaW5nSW5mby1zcGF0aWFsUmVuZGVyaW5nLmh0bWw6IEFkZGVkLgor
CiAyMDIwLTExLTA5ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IE5vbi1mdWxsc2NyZWVuIHBhZ2UgY29udGVudHMgdmlzaWJsZSB3aGVuIHJvdGF0aW5nIGRldmlj
ZSBkdXJpbmcgZWxlbWVudCBmdWxsc2NyZWVuIHByZXNlbnRhdGlvbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRp
YWxSZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWFjYXBhYmls
aXRpZXMvbW9jay1kZWNvZGluZ0luZm8tc3BhdGlhbFJlbmRlcmluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDg2NzM3Mzk1ZWE1YjliMWU1NDUzNzMyMjAyOWU2M2Q5NTk4MGRhOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21vY2stZGVj
b2RpbmdJbmZvLXNwYXRpYWxSZW5kZXJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAK
K1JVTihpbnRlcm5hbHMuZW5hYmxlTW9ja01lZGlhQ2FwYWJpbGl0aWVzKCkpCitSVU4oaW50ZXJu
YWxzLnNldHRpbmdzLnNldE1lZGlhQ2FwYWJpbGl0aWVzRXh0ZW5zaW9uc0VuYWJsZWQodHJ1ZSkp
CitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8o
eyB0eXBlOiAnZmlsZScsIGF1ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9
Im1wNGEuNDAuMiInLCBjaGFubmVsczogJzUuMScsIGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6
IDQ0MTAwIH0gfSk7KQorUHJvbWlzZSByZXNvbHZlZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9y
dGVkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICh0eXBlb2YgaW5mby5zdXBwb3J0ZWRDb25maWd1
cmF0aW9uLmF1ZGlvLnNwYXRpYWxSZW5kZXJpbmcgPT0gJ3VuZGVmaW5lZCcpIE9LCitSVU4ocHJv
bWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAn
ZmlsZScsIGF1ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAu
MiInLCBjaGFubmVsczogJzUuMScsIGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAwLCBz
cGF0aWFsUmVuZGVyaW5nOiB0cnVlIH0gfSk7KQorUHJvbWlzZSByZXNvbHZlZCBPSworRVhQRUNU
RUQgKGluZm8uc3VwcG9ydGVkID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRl
ZENvbmZpZ3VyYXRpb24uYXVkaW8uc3BhdGlhbFJlbmRlcmluZyA9PSAndHJ1ZScpIE9LCitSVU4o
cHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBl
OiAnZmlsZScsIGF1ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEu
NDAuMiInLCBjaGFubmVsczogJzInLCBiaXRyYXRlOiAxMDAwLCBzYW1wbGVyYXRlOiA0NDEwMCwg
c3BhdGlhbFJlbmRlcmluZzogdHJ1ZSB9IH0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVD
VEVEIChpbmZvLnN1cHBvcnRlZCA9PSAnZmFsc2UnKSBPSworRVhQRUNURUQgKGluZm8uc3VwcG9y
dGVkQ29uZmlndXJhdGlvbi5hdWRpby5zcGF0aWFsUmVuZGVyaW5nID09ICd0cnVlJykgT0sKK1JV
Tihwcm9taXNlID0gbmF2aWdhdG9yLm1lZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5
cGU6ICdmaWxlJywgYXVkaW86IHsgY29udGVudFR5cGU6ICdhdWRpby9tcDQ7IGNvZGVjcz0ibXA0
YS40MC4yIicsIGNoYW5uZWxzOiAnMicsIGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAw
LCBzcGF0aWFsUmVuZGVyaW5nOiBmYWxzZSB9IH0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VY
UEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBw
b3J0ZWRDb25maWd1cmF0aW9uLmF1ZGlvLnNwYXRpYWxSZW5kZXJpbmcgPT0gJ2ZhbHNlJykgT0sK
K0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhY2FwYWJp
bGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxSZW5kZXJpbmcuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxSZW5k
ZXJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWY3OGU3YjE5ZGE1NzE2ZTI0ZDE5YmVlZGQyYjkxZGRj
OTk4ZWFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWFjYXBhYmls
aXRpZXMvbW9jay1kZWNvZGluZ0luZm8tc3BhdGlhbFJlbmRlcmluZy5odG1sCkBAIC0wLDAgKzEs
NDggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0u
Li92aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KKyAgICB2YXIgcHJvbWlzZTsKKyAgICB2YXIgaW5mbzsKKworICAgIGFzeW5jIGZ1bmN0
aW9uIGRvVGVzdCgpCisgICAgeworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgIGZhaWxUZXN0KCJJbnRlcm5hbHMgaXMgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4i
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuZW5hYmxlTW9ja01lZGlhQ2FwYWJpbGl0aWVzKCknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0TWVkaWFDYXBhYmlsaXRpZXNFeHRlbnNpb25zRW5hYmxlZCh0cnVlKScp
OworCisgICAgICAgIHJ1bigicHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5k
ZWNvZGluZ0luZm8oeyB0eXBlOiAnZmlsZScsIGF1ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8v
bXA0OyBjb2RlY3M9XCJtcDRhLjQwLjJcIicsIGNoYW5uZWxzOiAnNS4xJywgYml0cmF0ZTogMTAw
MCwgc2FtcGxlcmF0ZTogNDQxMDAgfSB9KTsiKTsKKworICAgICAgICBpbmZvID0gYXdhaXQgc2hv
dWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRl
ZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3R5cGVvZiBpbmZvLnN1cHBvcnRlZENv
bmZpZ3VyYXRpb24uYXVkaW8uc3BhdGlhbFJlbmRlcmluZycsICd1bmRlZmluZWQnKTsKKworICAg
ICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJ
bmZvKHsgdHlwZTogJ2ZpbGUnLCBhdWRpbzogeyBjb250ZW50VHlwZTogJ2F1ZGlvL21wNDsgY29k
ZWNzPVwibXA0YS40MC4yXCInLCBjaGFubmVsczogJzUuMScsIGJpdHJhdGU6IDEwMDAsIHNhbXBs
ZXJhdGU6IDQ0MTAwLCBzcGF0aWFsUmVuZGVyaW5nOiB0cnVlIH0gfSk7Iik7CisKKyAgICAgICAg
aW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW5mby5zdXBwb3J0ZWQnLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1
cHBvcnRlZENvbmZpZ3VyYXRpb24uYXVkaW8uc3BhdGlhbFJlbmRlcmluZycsIHRydWUpOworCisg
ICAgICAgIHJ1bigicHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGlu
Z0luZm8oeyB0eXBlOiAnZmlsZScsIGF1ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBj
b2RlY3M9XCJtcDRhLjQwLjJcIicsIGNoYW5uZWxzOiAnMicsIGJpdHJhdGU6IDEwMDAsIHNhbXBs
ZXJhdGU6IDQ0MTAwLCBzcGF0aWFsUmVuZGVyaW5nOiB0cnVlIH0gfSk7Iik7CisKKyAgICAgICAg
aW5mbyA9IGF3YWl0IHNob3VsZFJlc29sdmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnaW5mby5zdXBwb3J0ZWQnLCBmYWxzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5z
dXBwb3J0ZWRDb25maWd1cmF0aW9uLmF1ZGlvLnNwYXRpYWxSZW5kZXJpbmcnLCB0cnVlKTsKKwor
ICAgICAgICBydW4oInByb21pc2UgPSBuYXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2Rp
bmdJbmZvKHsgdHlwZTogJ2ZpbGUnLCBhdWRpbzogeyBjb250ZW50VHlwZTogJ2F1ZGlvL21wNDsg
Y29kZWNzPVwibXA0YS40MC4yXCInLCBjaGFubmVsczogJzInLCBiaXRyYXRlOiAxMDAwLCBzYW1w
bGVyYXRlOiA0NDEwMCwgc3BhdGlhbFJlbmRlcmluZzogZmFsc2UgfSB9KTsiKTsKKworICAgICAg
ICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8u
c3VwcG9ydGVkQ29uZmlndXJhdGlvbi5hdWRpby5zcGF0aWFsUmVuZGVyaW5nJywgZmFsc2UpOwor
CisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9ImRvVGVzdCgpIiAvPgorPC9odG1sPgo=
</data>
<flag name="review"
          id="430267"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413638</attachid>
            <date>2020-11-09 16:13:40 -0800</date>
            <delta_ts>2020-11-10 11:10:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218727-20201109161339.patch</filename>
            <type>text/plain</type>
            <size>34892</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU3ZTZiMDU0OThlZDRl
N2Y4OWM1MDViNzIyMmQ5MDYyOTNmYmJhOS4uMzdjMDNiN2M4ZWZmNWJlYTJkZDgyNTFhYWI4Zjk0
M2M0NjQwNzQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTExLTA5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBB
dWRpb0NvbmZpZ3VyYXRpb24uc3BhdGlhbFJlbmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTIxMzM0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgVGVzdDogbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvbW9jay1kZWNvZGluZ0luZm8tc3BhdGlh
bFJlbmRlcmluZy5odG1sCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNwYXRpYWxSZW5kcmlu
Zy4gT24gQ29jb2EgcG9ydHMsIHRoaXMgd2lsbCBxdWVyeSBBVkF1ZGlvQ29udGV4dCBmb3Igc3Bh
dGlhbCByZW5kZXJpbmcgc3VwcG9ydC4KKworICAgICAgICBEcml2ZS1ieSBmaXg6IFRoZSBBdWRp
b0NvbmZpZ3VyYXRpb24uaWRsIG1hcmtzIHNhbXBsZVJhdGUsIGJpdHJhdGUsIGFuZCBjaGFubmVs
cyBhcyBvcHRpb25hbDsgdGhvc2UgbmVlZCB0bworICAgICAgICBiZSByZWZsZWN0ZWQgaW4gdGhl
IEMrKyBzdHJ1Y3QuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL0F1ZGlv
Q29uZmlndXJhdGlvbi5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmV4ZXJuYWxEZXZpY2VEaXNwbGF5TmFtZUZvclBsYXllcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNv
Y29hLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1lZGlhUGxheWVyRGVjb2RpbmdDb25m
aWd1cmF0aW9uQ29jb2EpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhY2FwYWJpbGl0aWVzL0F1
ZGlvQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhY2FwYWJpbGl0aWVz
L01lZGlhQ2FwYWJpbGl0aWVzTG9nZ2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTT05P
YmplY3QpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTWVkaWFFbmdpbmVDb25maWd1cmF0aW9u
RmFjdG9yeU1vY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuRGVjb2RlTWVkaWEpOgorICAg
ICAgICAoV2ViQ29yZTo6Y2FuU21vb3RobHlEZWNvZGVNZWRpYSk6CisgICAgICAgIChXZWJDb3Jl
OjpjYW5Qb3dlckVmZmljaWVudGx5RGVjb2RlTWVkaWEpOgorICAgICAgICAoV2ViQ29yZTo6Y2Fu
U21vb3RobHlFbmNvZGVNZWRpYSk6CisgICAgICAgIChXZWJDb3JlOjpjYW5Qb3dlckVmZmljaWVu
dGx5RW5jb2RlTWVkaWEpOgorCiAyMDIwLTExLTA0ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgogCiAgICAgICAgIE5vbi1mdWxsc2NyZWVuIHBhZ2UgY29udGVudHMgdmlzaWJsZSB3
aGVuIHJvdGF0aW5nIGRldmljZSBkdXJpbmcgZWxlbWVudCBmdWxsc2NyZWVuIHByZXNlbnRhdGlv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGM5NDZmMDRiYWY5NjA3ZTA5MTU1YTkwYmE5NmE3Yzli
MDI2ZmZjZmQuLmYxZWU2NzI0OGUzZjZiZDRjZDhhOGM3Y2JjN2MwZjliYTgxMzJlNTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTExLTA5ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpb0NvbmZp
Z3VyYXRpb24uc3BhdGlhbFJlbmRlcmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTIxMzM0
OD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBQQUwu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWwvYXZmb3VuZGF0aW9uL091
dHB1dENvbnRleHQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFj
YXBhYmlsaXRpZXMvQXVkaW9Db25maWd1cmF0aW9uLmguCisgICAgICAgIChQQUw6Ok91dHB1dENv
bnRleHQ6OnBsYXRmb3JtQ29udGV4dCBjb25zdCk6CisgICAgICAgICogcGFsL2F2Zm91bmRhdGlv
bi9PdXRwdXRDb250ZXh0Lm1tOiBBZGRlZC4KKyAgICAgICAgKFBBTDo6T3V0cHV0Q29udGV4dDo6
T3V0cHV0Q29udGV4dCk6CisgICAgICAgIChQQUw6Ok91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlv
UHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCk6CisgICAgICAgIChQQUw6Ok91dHB1dENvbnRleHQ6
OnN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKToKKyAgICAgICAgKFBBTDo6T3V0cHV0Q29u
dGV4dDo6ZGV2aWNlTmFtZSk6CisgICAgICAgIChQQUw6Ok91dHB1dENvbnRleHQ6Om91dHB1dERl
dmljZXMgY29uc3QpOgorICAgICAgICAqIHBhbC9hdmZvdW5kYXRpb24vT3V0cHV0RGV2aWNlLmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhY2FwYWJpbGl0aWVzL0F1
ZGlvQ29uZmlndXJhdGlvbi5oLgorICAgICAgICAoUEFMOjpPdXRwdXREZXZpY2U6OnBsYXRmb3Jt
RGV2aWNlIGNvbnN0KToKKyAgICAgICAgKiBwYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmljZS5t
bTogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFjYXBhYmlsaXRpZXMv
QXVkaW9Db25maWd1cmF0aW9uLmguCisgICAgICAgIChQQUw6Ok91dHB1dERldmljZTo6T3V0cHV0
RGV2aWNlKToKKyAgICAgICAgKFBBTDo6T3V0cHV0RGV2aWNlOjpuYW1lIGNvbnN0KToKKyAgICAg
ICAgKFBBTDo6T3V0cHV0RGV2aWNlOjpkZXZpY2VGZWF0dXJlcyBjb25zdCk6CisgICAgICAgIChQ
QUw6Ok91dHB1dERldmljZTo6c3VwcG9ydHNTcGF0aWFsQXVkaW8gY29uc3QpOgorICAgICAgICAq
IHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg6CisKIDIwMjAtMTEtMDQgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQgc2hvdWxkIHJlbW92
ZSB1bnVzZWQgZGVidWcgdmFyaWFudCBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL0F1ZGlvQ29uZmlndXJhdGlvbi5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY2FwYWJpbGl0aWVzL0F1ZGlvQ29uZmlndXJhdGlvbi5p
ZGwKaW5kZXggMmM0MjVmNmVkNDU2MTFhMjdlNDAzNDNkNGZjNWI1NWJmNjE4YTVkMy4uNDc3ZThh
M2ZhYTJmNWZmZjQ4MmMwMjFmZjE1OGI5ZTRjYWUzY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYWNhcGFiaWxpdGllcy9BdWRpb0NvbmZpZ3VyYXRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjYXBhYmlsaXRpZXMvQXVkaW9Db25maWd1
cmF0aW9uLmlkbApAQCAtMzEsNCArMzEsNSBAQAogICBET01TdHJpbmcgY2hhbm5lbHM7CiAgIHVu
c2lnbmVkIGxvbmcgbG9uZyBiaXRyYXRlOwogICB1bnNpZ25lZCBsb25nIHNhbXBsZXJhdGU7Cisg
IGJvb2xlYW4gc3BhdGlhbFJlbmRlcmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
UEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjlkNmE4MDI1NTQ5YzdjNzQ4NzJm
NzE1MjMyMzQ1ODc4ZGI0ZTkyZi4uYWJjZWE1MDQ5ODg3MTI0OTc1YzIzYTkyN2U3MzVhOTcwYzE4
MDdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML1BBTC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTgxLDYgKzE4MSwxMCBAQAogCQlBM0M2NkNERDFGNDYyRDZBMDA5RTZFRTkg
LyogU2Vzc2lvbklELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBM0M2NkNEQjFGNDYyRDZBMDA5RTZFRTkgLyogU2Vzc2lvbklELmggKi87IH07CiAJCUFC
Q0E1MzY4MjQ4OTVEQjkwMDM2MUJGRiAvKiBDb3JlTW90aW9uU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBQkNBNTM2NzI0ODk1REI5MDAzNjFCRkYg
LyogQ29yZU1vdGlvblNQSS5oICovOyB9OwogCQlDMTVDQkIzNTIzRjM1NDhBMDAzMDBDQzcgLyog
TlNVc2VyRGVmYXVsdHNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMxNUNCQjMyMjNGMzRBMTIwMDMwMENDNyAvKiBOU1VzZXJEZWZhdWx0c1NQSS5o
ICovOyB9OworCQlDRDYxMjJDQzI1NTlCNkFDMDBGQzY1N0EgLyogT3V0cHV0Q29udGV4dC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MTIyQ0EyNTU5
QjZBQzAwRkM2NTdBIC8qIE91dHB1dENvbnRleHQuaCAqLzsgfTsKKwkJQ0Q2MTIyQ0QyNTU5QjZB
QzAwRkM2NTdBIC8qIE91dHB1dENvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDYxMjJDQjI1NTlCNkFDMDBGQzY1N0EgLyogT3V0cHV0Q29u
dGV4dC5tbSAqLzsgfTsKKwkJQ0Q2MTIyRDAyNTU5QjhGMjAwRkM2NTdBIC8qIE91dHB1dERldmlj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MTIy
Q0UyNTU5QjhGMjAwRkM2NTdBIC8qIE91dHB1dERldmljZS5oICovOyB9OworCQlDRDYxMjJEMTI1
NTlCOEYyMDBGQzY1N0EgLyogT3V0cHV0RGV2aWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2MTIyQ0YyNTU5QjhGMjAwRkM2NTdBIC8qIE91dHB1
dERldmljZS5tbSAqLzsgfTsKIAkJQ0RBQ0IzNjAyMzg3NDI1QjAwMThEN0NFIC8qIE1lZGlhVG9v
bGJveFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQUNCMzVFMjM4NzNFNDgwMDE4RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5j
cHAgKi87IH07CiAJCUNEQUNCMzYxMjM4NzQyNzQwMDE4RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0
TGluay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RB
Q0IzNUYyMzg3M0U0ODAwMThEN0NFIC8qIE1lZGlhVG9vbGJveFNvZnRMaW5rLmggKi87IH07CiAJ
CUNERjkxMTEzMjIwRTRFRUMwMDFFQTM5RSAvKiBDZWxlc3RpYWxTUEkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjkxMTEyMjIwRTRFRUMwMDFFQTM5
RSAvKiBDZWxlc3RpYWxTUEkuaCAqLzsgfTsKQEAgLTM3Nyw2ICszODEsMTAgQEAKIAkJQzEzOEVB
MUEyNDM2NDQ3MjAwNjU2REYxIC8qIENvcmVTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b3JlU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE1Q0JCMzIy
M0YzNEExMjAwMzAwQ0M3IC8qIE5TVXNlckRlZmF1bHRzU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5T
VXNlckRlZmF1bHRzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMTQ3QTRB
MUVGRDBBQTYwMDA1NkZBNSAvKiBDb3B5UEFMSGVhZGVycy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBDb3B5UEFMSGVhZGVycy54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q2MTIyQ0EyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1dENvbnRl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gT3V0cHV0Q29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDYxMjJDQjI1NTlCNkFDMDBGQzY1N0EgLyogT3V0cHV0Q29udGV4dC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IE91dHB1dENvbnRleHQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNENjEyMkNFMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXREZXZpY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gT3V0cHV0RGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUNENjEyMkNGMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXREZXZpY2UubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBPdXRwdXREZXZpY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEQUNCMzVFMjM4NzNFNDgwMDE4RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRvb2xib3hTb2Z0TGluay5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEQUNCMzVGMjM4NzNFNDgwMDE4RDdDRSAvKiBNZWRpYVRvb2xi
b3hTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRvb2xib3hTb2Z0TGluay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY5MTExMjIyMEU0RUVDMDAxRUEzOUUgLyogQ2Vs
ZXN0aWFsU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENlbGVzdGlhbFNQ
SS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDA2LDYgKzQxNCwxMCBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJMEMwMENGRDExRjY4Q0U0NjAwQUFDMjZEIC8qIE1lZGlhVGltZUFW
Rm91bmRhdGlvbi5jcHAgKi8sCiAJCQkJMEMwMENGRDIxRjY4Q0U0NjAwQUFDMjZEIC8qIE1lZGlh
VGltZUFWRm91bmRhdGlvbi5oICovLAorCQkJCUNENjEyMkNBMjU1OUI2QUMwMEZDNjU3QSAvKiBP
dXRwdXRDb250ZXh0LmggKi8sCisJCQkJQ0Q2MTIyQ0IyNTU5QjZBQzAwRkM2NTdBIC8qIE91dHB1
dENvbnRleHQubW0gKi8sCisJCQkJQ0Q2MTIyQ0UyNTU5QjhGMjAwRkM2NTdBIC8qIE91dHB1dERl
dmljZS5oICovLAorCQkJCUNENjEyMkNGMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXREZXZpY2Uu
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGF2Zm91bmRhdGlvbjsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC04NzQsNiArODg2LDggQEAKIAkJCQk1NzBBQjhGOTIwQUY2RTNEMDBCOEJF
ODcgLyogTlNYUENDb25uZWN0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwQzVBRjkxRjFG
NDNBNEM3MDAyRUFDMDIgLyogT3BlbkdMRVNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNjQ3
RkIxMjUxNzU5RUYwMDEwRjhGQiAvKiBPcGVuR0xTb2Z0TGlua0NvY29hLmggaW4gSGVhZGVycyAq
LywKKwkJCQlDRDYxMjJDQzI1NTlCNkFDMDBGQzY1N0EgLyogT3V0cHV0Q29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0Q2MTIyRDAyNTU5QjhGMjAwRkM2NTdBIC8qIE91dHB1dERldmljZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2OUIwNDEyNDhFRjA1MjAwRUU4QjdCIC8qIFBhc3NLaXRJ
bnN0YWxsbWVudHNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRjYzQzlGMjFBNERCRjcwMDZG
QjQzQiAvKiBQYXNzS2l0U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTBDMkRBMTU1MUYz
QkVCNDkwMERCQzMxNyAvKiBQYXNzS2l0U1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMTEsNiAr
MTAyNSw4IEBACiAJCQkJMENGOTlDQTQxRjczNjM3NTAwN0VFNzkzIC8qIE1lZGlhVGltZUFWRm91
bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREFDQjM2MDIzODc0MjVCMDAxOEQ3Q0Ug
LyogTWVkaWFUb29sYm94U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2NDdGQjAy
NTE3NTlERDAwMTBGOEZCIC8qIE9wZW5HTFNvZnRMaW5rQ29jb2EubW0gaW4gU291cmNlcyAqLywK
KwkJCQlDRDYxMjJDRDI1NTlCNkFDMDBGQzY1N0EgLyogT3V0cHV0Q29udGV4dC5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCUNENjEyMkQxMjU1OUI4RjIwMEZDNjU3QSAvKiBPdXRwdXREZXZpY2UubW0g
aW4gU291cmNlcyAqLywKIAkJCQlBMUY2M0NBMDIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tpdFNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYwIC8q
IFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0NTBGQzlGMjFGNUY2MDIwMDRERkE1
NiAvKiBRdWlja0xvb2tTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4dC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmYxZDY4YzgxZjBjNDIyOTM0M2E4Y2U1OGUzYmYyYzkwZmY3MTRhNzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2F2Zm91bmRhdGlvbi9PdXRwdXRDb250ZXh0LmgK
QEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFW
Rk9VTkRBVElPTikKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitPQkpDX0NM
QVNTIEFWT3V0cHV0Q29udGV4dDsKKworbmFtZXNwYWNlIFBBTCB7CisKK2NsYXNzIE91dHB1dERl
dmljZTsKKworY2xhc3MgT3V0cHV0Q29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIE9wdGlv
bmFsPE91dHB1dENvbnRleHQ+JiBzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQo
KTsKKworICAgIGJvb2wgc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXMoKTsKKyAgICBTdHJp
bmcgZGV2aWNlTmFtZSgpOworCisgICAgVmVjdG9yPE91dHB1dERldmljZT4gb3V0cHV0RGV2aWNl
cygpIGNvbnN0OworCisgICAgQVZPdXRwdXRDb250ZXh0KiBwbGF0Zm9ybUNvbnRleHQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNz
IE5ldmVyRGVzdHJveWVkPE91dHB1dENvbnRleHQ+OworICAgIE91dHB1dENvbnRleHQoUmV0YWlu
UHRyPEFWT3V0cHV0Q29udGV4dD4mJik7CisKKyAgICBSZXRhaW5QdHI8QVZPdXRwdXRDb250ZXh0
PiBtX2NvbnRleHQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9hdmZvdW5kYXRpb24vT3V0cHV0Q29udGV4dC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dENvbnRleHQubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTFkZmRj
MWMwZmVlY2M4YWUwZTJkMjk5NWU5MWUzYjA2ODRjOWE0NAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dENvbnRleHQubW0KQEAgLTAs
MCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
T3V0cHV0Q29udGV4dC5oIgorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKworI2luY2x1ZGUgIk91
dHB1dERldmljZS5oIgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHBhbC9zcGkvY29jb2Ev
QVZGb3VuZGF0aW9uU1BJLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCisjaW5jbHVkZSA8cGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBQQUwgeworCitPdXRwdXRDb250ZXh0
OjpPdXRwdXRDb250ZXh0KFJldGFpblB0cjxBVk91dHB1dENvbnRleHQ+JiYgY29udGV4dCkKKyAg
ICA6IG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQoreworfQorCitPcHRpb25hbDxPdXRwdXRD
b250ZXh0PiYgT3V0cHV0Q29udGV4dDo6c2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250
ZXh0KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T3B0aW9uYWw8T3V0cHV0Q29udGV4
dD4+IHNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCA9IFtdICgpIC0+IE9wdGlv
bmFsPE91dHB1dENvbnRleHQ+IHsKKyAgICAgICAgaWYgKCFbUEFMOjpnZXRBVk91dHB1dENvbnRl
eHRDbGFzcygpIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2hhcmVkQXVkaW9QcmVzZW50
YXRpb25PdXRwdXRDb250ZXh0KV0pCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgICAgIGF1dG8gY29udGV4dCA9IFtnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIHNoYXJl
ZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dF07CisgICAgICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgcmV0dXJuIE91dHB1
dENvbnRleHQocmV0YWluUHRyKGNvbnRleHQpKTsKKyAgICB9KCk7CisgICAgcmV0dXJuIHNoYXJl
ZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dDsKK30KKworYm9vbCBPdXRwdXRDb250ZXh0
OjpzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcygpCit7CisgICAgcmV0dXJuIFttX2NvbnRl
eHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2
aWNlcyldCisgICAgICAgICYmIFttX2NvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihvdXRwdXREZXZpY2VzKV0KKyAgICAgICAgJiYgW21fY29udGV4dCBzdXBwb3J0c011bHRpcGxl
T3V0cHV0RGV2aWNlc107Cit9CisKK1N0cmluZyBPdXRwdXRDb250ZXh0OjpkZXZpY2VOYW1lKCkK
K3sKKyAgICBpZiAoIXN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKCkpCisgICAgICAgIHJl
dHVybiBbbV9jb250ZXh0IGRldmljZU5hbWVdOworCisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGF1dG8gZGV2aWNlcyA9IG91dHB1dERldmljZXMoKTsKKyAgICBhdXRvIGl0ZXJhdG9y
ID0gZGV2aWNlcy5iZWdpbigpOworCisgICAgd2hpbGUgKGl0ZXJhdG9yICE9IGRldmljZXMuZW5k
KCkpIHsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlcmF0b3ItPm5hbWUoKSk7CisKKyAgICAg
ICAgaWYgKCsraXRlcmF0b3IgIT0gZGV2aWNlcy5lbmQoKSkKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKCIgKyAiKTsKKyAgICB9CisKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwor
fQorCitWZWN0b3I8T3V0cHV0RGV2aWNlPiBPdXRwdXRDb250ZXh0OjpvdXRwdXREZXZpY2VzKCkg
Y29uc3QKK3sKKyAgICBpZiAoIVttX2NvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihvdXRwdXREZXZpY2VzKV0pIHsKKyAgICAgICAgaWYgKGF1dG8gKm91dHB1dERldmljZSA9IFtt
X2NvbnRleHQgb3V0cHV0RGV2aWNlXSkKKyAgICAgICAgICAgIHJldHVybiB7IHJldGFpblB0cihv
dXRwdXREZXZpY2UpIH07CisgICAgICAgIHJldHVybiB7IH07CisgICAgfQorCisgICAgYXV0byAq
YXZPdXRwdXREZXZpY2VzID0gW21fY29udGV4dCBvdXRwdXREZXZpY2VzXTsKKyAgICBWZWN0b3I8
T3V0cHV0RGV2aWNlPiBvdXRwdXREZXZpY2VzOworICAgIG91dHB1dERldmljZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShhdk91dHB1dERldmljZXMuY291bnQpOworICAgIGZvciAoQVZPdXRwdXRE
ZXZpY2UgKmRldmljZSBpbiBhdk91dHB1dERldmljZXMpCisgICAgICAgIG91dHB1dERldmljZXMu
dW5jaGVja2VkQXBwZW5kKHsgcmV0YWluUHRyKGRldmljZSkgfSk7CisgICAgcmV0dXJuIG91dHB1
dERldmljZXM7Cit9CisKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmljZS5oIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9hdmZvdW5kYXRpb24vT3V0cHV0RGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDYyMTEwNDQ5ZjQ2
NDRlYmE3MTcyNzI1YjUyNWYyMGI5OTg1MTdjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvYXZmb3VuZGF0aW9uL091dHB1dERldmljZS5oCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFVTRShBVkZPVU5EQVRJT04pCisK
K09CSkNfQ0xBU1MgQVZPdXRwdXREZXZpY2U7CisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFBBTCB7CisKK2NsYXNzIE91dHB1dERldmljZSB7CitwdWJsaWM6
CisgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsKKworICAgIGVudW0gY2xhc3MgRGV2aWNlRmVhdHVy
ZXMgOiB1aW50OF90IHsKKyAgICAgICAgQXVkaW8gPSAxIDw8IDAsCisgICAgICAgIFNjcmVlbiA9
IDEgPDwgMSwKKyAgICAgICAgVmlkZW8gPSAxIDw8IDIsCisgICAgfTsKKyAgICB1aW50OF90IGRl
dmljZUZlYXR1cmVzKCkgY29uc3Q7CisKKyAgICBib29sIHN1cHBvcnRzU3BhdGlhbEF1ZGlvKCkg
Y29uc3Q7CisKKyAgICBBVk91dHB1dERldmljZSogcGxhdGZvcm1EZXZpY2UoKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZS5nZXQoKTsgfQorcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgT3V0cHV0
Q29udGV4dDsKKyAgICBPdXRwdXREZXZpY2UoUmV0YWluUHRyPEFWT3V0cHV0RGV2aWNlPiYmKTsK
KworICAgIFJldGFpblB0cjxBVk91dHB1dERldmljZT4gbV9kZXZpY2U7Cit9OworCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9hdmZvdW5kYXRpb24vT3V0
cHV0RGV2aWNlLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9hdmZvdW5kYXRpb24vT3V0cHV0
RGV2aWNlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyOGNiMzFkZDJlMTJiNGFmNjYzZGRmOTdiMThkMWM5NGNl
NzZkYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2F2Zm91bmRh
dGlvbi9PdXRwdXREZXZpY2UubW0KQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJPdXRwdXREZXZpY2UuaCIKKworI2lmIFVTRShBVkZP
VU5EQVRJT04pCisKKyNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oPgor
CisjaW5jbHVkZSA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK25hbWVzcGFj
ZSBQQUwgeworCitPdXRwdXREZXZpY2U6Ok91dHB1dERldmljZShSZXRhaW5QdHI8QVZPdXRwdXRE
ZXZpY2U+JiYgZGV2aWNlKQorICAgIDogbV9kZXZpY2UoV1RGTW92ZShkZXZpY2UpKQoreworfQor
CitTdHJpbmcgT3V0cHV0RGV2aWNlOjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fZGV2
aWNlIG5hbWVdOworfQorCit1aW50OF90IE91dHB1dERldmljZTo6ZGV2aWNlRmVhdHVyZXMoKSBj
b25zdAoreworICAgIGF1dG8gYXZEZXZpY2VGZWF0dXJlcyA9IFttX2RldmljZSBkZXZpY2VGZWF0
dXJlc107CisgICAgdWludDhfdCBkZXZpY2VGZWF0dXJlcyB7IDAgfTsKKyAgICBpZiAoYXZEZXZp
Y2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlvKQorICAgICAgICBkZXZpY2VG
ZWF0dXJlcyB8PSAodWludDhfdClEZXZpY2VGZWF0dXJlczo6QXVkaW87CisgICAgaWYgKGF2RGV2
aWNlRmVhdHVyZXMgJiBBVk91dHB1dERldmljZUZlYXR1cmVTY3JlZW4pCisgICAgICAgIGRldmlj
ZUZlYXR1cmVzIHw9ICh1aW50OF90KURldmljZUZlYXR1cmVzOjpTY3JlZW47CisgICAgaWYgKGF2
RGV2aWNlRmVhdHVyZXMgJiBBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbykKKyAgICAgICAgZGV2
aWNlRmVhdHVyZXMgfD0gKHVpbnQ4X3QpRGV2aWNlRmVhdHVyZXM6OlZpZGVvOworICAgIHJldHVy
biBkZXZpY2VGZWF0dXJlczsKK30KKworYm9vbCBPdXRwdXREZXZpY2U6OnN1cHBvcnRzU3BhdGlh
bEF1ZGlvKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21fZGV2aWNlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc3VwcG9ydHNIZWFkVHJhY2tlZFNwYXRpYWxBdWRpbyldCisgICAgICAgICYm
IFttX2RldmljZSBzdXBwb3J0c0hlYWRUcmFja2VkU3BhdGlhbEF1ZGlvXTsKK30KKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91
bmRhdGlvblNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0
aW9uU1BJLmgKaW5kZXggZWM2OGI3OGMyNDQ4ZDhjYzllYTUzMTNlYjQ1MmEyZDYyYjU5MDE4YS4u
YjgzMWFkMjIwNDY2MGJiZThjYWM0NTIyNDBkZjlhZjFmYzMyNTA5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmgKQEAgLTEwMiw2
ICsxMDIsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgQVZPdXRwdXREZXZpY2VG
ZWF0dXJlcykgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqbmFt
ZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmRldmljZU5hbWU7
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEFWT3V0cHV0RGV2aWNlRmVhdHVyZXMg
ZGV2aWNlRmVhdHVyZXM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgc3Vw
cG9ydHNIZWFkVHJhY2tlZFNwYXRpYWxBdWRpbzsKIEBlbmQKIAogI2lmICFQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZjI5NDg4MTZlZGRlNzllNzhhMTkz
MWQ1YmM2ZDNlY2VlYjVkODQ3Zi4uMmE2ZDdhM2U5MDIzYWMyY2U5MWZiMDY0OWZhMmY5MThhNzg3
NmE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC04Niw2ICs4Niw3IEBACiAjaW1wb3J0
IDxmdW5jdGlvbmFsPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvYXZm
b3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8cGFsL2F2Zm91bmRh
dGlvbi9PdXRwdXRDb250ZXh0Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0
IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgpAQCAtMjc0NSwyNCArMjc0Niw4IEBAIHN0YXRp
YyBOU1N0cmluZyAqZXhlcm5hbERldmljZURpc3BsYXlOYW1lRm9yUGxheWVyKEFWUGxheWVyICpw
bGF5ZXIpCiAgICAgaWYgKCFQQUw6OmlzQVZGb3VuZGF0aW9uRnJhbWV3b3JrQXZhaWxhYmxlKCkp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBpZiAoW1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0
Q2xhc3MoKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNoYXJlZEF1ZGlvUHJlc2VudGF0
aW9uT3V0cHV0Q29udGV4dCldKSB7Ci0gICAgICAgIEFWT3V0cHV0Q29udGV4dCAqb3V0cHV0Q29u
dGV4dCA9IFtQQUw6OmdldEFWT3V0cHV0Q29udGV4dENsYXNzKCkgc2hhcmVkQXVkaW9QcmVzZW50
YXRpb25PdXRwdXRDb250ZXh0XTsKLQotICAgICAgICBpZiAoIVtvdXRwdXRDb250ZXh0IHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXMpXQot
ICAgICAgICAgICAgfHwgIVtvdXRwdXRDb250ZXh0IHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZp
Y2VzXQotICAgICAgICAgICAgfHwgIVtvdXRwdXRDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3Iob3V0cHV0RGV2aWNlcyldKQotICAgICAgICAgICAgcmV0dXJuIFtvdXRwdXRDb250
ZXh0IGRldmljZU5hbWVdOwotCi0gICAgICAgIGF1dG8gb3V0cHV0RGV2aWNlTmFtZXMgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgZm9yIChBVk91dHB1
dERldmljZSAqb3V0cHV0RGV2aWNlIGluIFtvdXRwdXRDb250ZXh0IG91dHB1dERldmljZXNdKSB7
Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgICAgICAgICAgYXV0byBv
dXRwdXREZXZpY2VOYW1lID0gYWRvcHROUyhbW291dHB1dERldmljZSBuYW1lXSBjb3B5XSk7Ci1B
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICAgICAgICAgIFtvdXRwdXREZXZp
Y2VOYW1lcyBhZGRPYmplY3Q6b3V0cHV0RGV2aWNlTmFtZS5nZXQoKV07Ci0gICAgICAgIH0KLQot
ICAgICAgICByZXR1cm4gW291dHB1dERldmljZU5hbWVzIGNvbXBvbmVudHNKb2luZWRCeVN0cmlu
ZzpAIiArICJdOwotICAgIH0KKyAgICBpZiAoYXV0byBjb250ZXh0ID0gT3V0cHV0Q29udGV4dDo6
c2hhcmVkQXVkaW9QcmVzZW50YXRpb25PdXRwdXRDb250ZXh0KCkpCisgICAgICAgIHJldHVybiBj
b250ZXh0LT5kZXZpY2VOYW1lKCk7CiAKICAgICBpZiAocGxheWVyLmV4dGVybmFsUGxheWJhY2tU
eXBlICE9IEFWUGxheWVyRXh0ZXJuYWxQbGF5YmFja1R5cGVBaXJQbGF5KQogICAgICAgICByZXR1
cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeUNvY29hLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rv
cnlDb2NvYS5jcHAKaW5kZXggOWM1NGIxNzNjMzdkZmM3NDQ2YjY1YjA3Njk5NWY2MDNlNzhlYzFi
ZS4uODdkM2U1ZjNhMDE5YmRkMDMzNDA5YjdiZDIwZjVmZTJkYTFjY2MyNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvTWVkaWFFbmdpbmVDb25maWd1
cmF0aW9uRmFjdG9yeUNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Q29jb2EuY3BwCkBAIC0z
Myw2ICszMyw4IEBACiAjaW5jbHVkZSAiTWVkaWFEZWNvZGluZ0NvbmZpZ3VyYXRpb24uaCIKICNp
bmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUgIlZQOVV0aWxpdGllc0NvY29hLmgiCisj
aW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9PdXRwdXRDb250ZXh0Lmg+CisjaW5jbHVkZSA8cGFs
L2F2Zm91bmRhdGlvbi9PdXRwdXREZXZpY2UuaD4KIAogI2luY2x1ZGUgIlZpZGVvVG9vbGJveFNv
ZnRMaW5rLmgiCiAKQEAgLTEyNSw2ICsxMjcsMjYgQEAgdm9pZCBjcmVhdGVNZWRpYVBsYXllckRl
Y29kaW5nQ29uZmlndXJhdGlvbkNvY29hKE1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uJiYgY28K
ICAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGlmIChjb25maWd1cmF0aW9u
LmF1ZGlvLT5zcGF0aWFsUmVuZGVyaW5nKSB7CisgICAgICAgICAgICBhdXRvIGNvbnRleHQgPSBQ
QUw6Ok91dHB1dENvbnRleHQ6OnNoYXJlZEF1ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dCgp
OworICAgICAgICAgICAgaWYgKCFjb250ZXh0IHx8ICFXVEY6OmFsbE9mKGNvbnRleHQtPm91dHB1
dERldmljZXMoKSwgW10gKGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBk
ZXZpY2Uuc3VwcG9ydHNTcGF0aWFsQXVkaW8oKTsKKyAgICAgICAgICAgIH0pKSB7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soe3sgfSwgV1RGTW92ZShjb25maWd1cmF0aW9uKX0pOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gT25seSBt
dWx0aWNoYW5uZWwgYXVkaW8gY2FuIGJlIHNwYXRpYWxseSByZW5kZXJlZC4KKyAgICAgICAgICAg
IGlmICghY29uZmlndXJhdGlvbi5hdWRpby0+Y2hhbm5lbHMuaXNOdWxsKCkpIHsKKyAgICAgICAg
ICAgICAgICBib29sIGlzT2sgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBhdXRvIHBhcnNlZENo
YW5uZWxzID0gY29uZmlndXJhdGlvbi5hdWRpby0+Y2hhbm5lbHMudG9Eb3VibGUoJmlzT2spOwor
ICAgICAgICAgICAgICAgIGlmICghaXNPayB8fCBwYXJzZWRDaGFubmVscyA8PSAyKSB7CisgICAg
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKHt7IH0sIFdURk1vdmUoY29uZmlndXJhdGlvbil9KTsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQogICAgICAgICBpbmZvLnN1cHBvcnRlZCA9IHRydWU7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9B
dWRpb0NvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhY2FwYWJp
bGl0aWVzL0F1ZGlvQ29uZmlndXJhdGlvbi5oCmluZGV4IDk2NWNmN2U3OWExZmY1ZjNlMGQyNWFj
YzU3MTk0NGYyMTM4NDY2MmYuLjhmYTE0YTUyNGMwNDVmZWRlY2MzZmE1NTRmNDgwOTZhNDkzNDhh
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhY2FwYWJpbGl0aWVz
L0F1ZGlvQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
Y2FwYWJpbGl0aWVzL0F1ZGlvQ29uZmlndXJhdGlvbi5oCkBAIC0zMiw4ICszMiw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBBdWRpb0NvbmZpZ3VyYXRpb24gewogICAgIFN0cmluZyBj
b250ZW50VHlwZTsKICAgICBTdHJpbmcgY2hhbm5lbHM7Ci0gICAgdWludDY0X3QgYml0cmF0ZTsK
LSAgICB1aW50MzJfdCBzYW1wbGVyYXRlOworICAgIE9wdGlvbmFsPHVpbnQ2NF90PiBiaXRyYXRl
OworICAgIE9wdGlvbmFsPHVpbnQzMl90PiBzYW1wbGVyYXRlOworICAgIE9wdGlvbmFsPGJvb2w+
IHNwYXRpYWxSZW5kZXJpbmc7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYWNhcGFiaWxpdGllcy9NZWRpYUNhcGFi
aWxpdGllc0xvZ2dpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFjYXBhYmls
aXRpZXMvTWVkaWFDYXBhYmlsaXRpZXNMb2dnaW5nLmNwcAppbmRleCAwYTQyZmIzNzRjMjg2OWE2
YmY1OGIwMTdjMDBiODM4NjZkMDdiZWJiLi41NTliZjFhNjcyZjQ1YWYzMDE5NzY1YTU0NWM5MmQ4
OThlY2YxN2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYWNhcGFi
aWxpdGllcy9NZWRpYUNhcGFiaWxpdGllc0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhY2FwYWJpbGl0aWVzL01lZGlhQ2FwYWJpbGl0aWVzTG9nZ2luZy5jcHAK
QEAgLTY2LDkgKzY2LDE0IEBAIHN0YXRpYyBSZWY8SlNPTjo6T2JqZWN0PiB0b0pTT05PYmplY3Qo
Y29uc3QgQXVkaW9Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gb2Jq
ZWN0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICBvYmplY3QtPnNldFN0cmluZygiY29u
dGVudFR5cGUiX3MsIGNvbmZpZ3VyYXRpb24uY29udGVudFR5cGUpOwotICAgIG9iamVjdC0+c2V0
U3RyaW5nKCJjaGFubmVscyJfcywgY29uZmlndXJhdGlvbi5jaGFubmVscyk7Ci0gICAgb2JqZWN0
LT5zZXRJbnRlZ2VyKCJiaXRyYXRlIl9zLCBzdGF0aWNfY2FzdDxpbnQ+KGNvbmZpZ3VyYXRpb24u
Yml0cmF0ZSkpOwotICAgIG9iamVjdC0+c2V0RG91YmxlKCJzYW1wbGVyYXRlIl9zLCBjb25maWd1
cmF0aW9uLnNhbXBsZXJhdGUpOworICAgIGlmICghY29uZmlndXJhdGlvbi5jaGFubmVscy5pc051
bGwoKSkKKyAgICAgICAgb2JqZWN0LT5zZXRTdHJpbmcoImNoYW5uZWxzIl9zLCBjb25maWd1cmF0
aW9uLmNoYW5uZWxzKTsKKyAgICBpZiAoY29uZmlndXJhdGlvbi5iaXRyYXRlKQorICAgICAgICBv
YmplY3QtPnNldEludGVnZXIoImJpdHJhdGUiX3MsIHN0YXRpY19jYXN0PGludD4oY29uZmlndXJh
dGlvbi5iaXRyYXRlLnZhbHVlKCkpKTsKKyAgICBpZiAoY29uZmlndXJhdGlvbi5zYW1wbGVyYXRl
KQorICAgICAgICBvYmplY3QtPnNldERvdWJsZSgic2FtcGxlcmF0ZSJfcywgY29uZmlndXJhdGlv
bi5zYW1wbGVyYXRlLnZhbHVlKCkpOworICAgIGlmIChjb25maWd1cmF0aW9uLnNwYXRpYWxSZW5k
ZXJpbmcpCisgICAgICAgIG9iamVjdC0+c2V0Qm9vbGVhbigic3BhdGlhbFJlbmRlcmluZyJfcywg
Y29uZmlndXJhdGlvbi5zcGF0aWFsUmVuZGVyaW5nLnZhbHVlKCkpOwogICAgIHJldHVybiBvYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFF
bmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAKaW5kZXggNzY4
ODM2YTE1YmU2MWNmMTM4Nzg0MzdhMGE2ZThkZGZjZWNiOGE4Yi4uZTQyOTQyODhhMjNiZDdkYWUw
MzA0MjlmMWU4OTEyOTg4NGVhNTI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
TW9jay5jcHAKQEAgLTYxLDggKzYxLDE0IEBAIHN0YXRpYyBib29sIGNhbkRlY29kZU1lZGlhKGNv
bnN0IE1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogCiAgICAgLy8g
QXVkaW8gZGVjb2Rpbmcgc3VwcG9ydCBsaW1pdGVkIHRvIGF1ZGlvL21wNC4KICAgICBhdXRvIGF1
ZGlvQ29uZmlnID0gY29uZmlndXJhdGlvbi5hdWRpbzsKLSAgICBpZiAoYXVkaW9Db25maWcpCi0g
ICAgICAgIHJldHVybiBDb250ZW50VHlwZShhdWRpb0NvbmZpZy0+Y29udGVudFR5cGUpLmNvbnRh
aW5lclR5cGUoKSA9PSAiYXVkaW8vbXA0IjsKKyAgICBpZiAoYXVkaW9Db25maWcpIHsKKyAgICAg
ICAgaWYgKENvbnRlbnRUeXBlKGF1ZGlvQ29uZmlnLT5jb250ZW50VHlwZSkuY29udGFpbmVyVHlw
ZSgpICE9ICJhdWRpby9tcDQiKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IC8vIENhbiBvbmx5IHN1cHBvcnQgc3BhdGlhbCByZW5kZXJpbmcgb2YgdHJhY2tzIHdpdGggbXVs
dGljaGFubmVsIGF1ZGlvOgorICAgICAgICBpZiAoYXVkaW9Db25maWctPnNwYXRpYWxSZW5kZXJp
bmcudmFsdWVPcihmYWxzZSkgJiYgYXVkaW9Db25maWctPmNoYW5uZWxzLnRvRG91YmxlKCkgPD0g
MikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTc0LDcgKzgwLDcgQEAgc3RhdGljIGJvb2wgY2FuU21vb3RobHlEZWNvZGVNZWRpYShj
b25zdCBNZWRpYURlY29kaW5nQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgYXV0byBhdWRpb0NvbmZpZyA9IGNvbmZpZ3VyYXRpb24uYXVkaW87
Ci0gICAgaWYgKGF1ZGlvQ29uZmlnKQorICAgIGlmIChhdWRpb0NvbmZpZyAmJiAhYXVkaW9Db25m
aWctPmNoYW5uZWxzLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gYXVkaW9Db25maWctPmNoYW5u
ZWxzID09ICIyIjsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtODcsOCArOTMsOCBAQCBzdGF0aWMg
Ym9vbCBjYW5Qb3dlckVmZmljaWVudGx5RGVjb2RlTWVkaWEoY29uc3QgTWVkaWFEZWNvZGluZ0Nv
bmZpZ3VyYXRpb24mIGNvbgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIGF1ZGlv
Q29uZmlnID0gY29uZmlndXJhdGlvbi5hdWRpbzsKLSAgICBpZiAoYXVkaW9Db25maWcpCi0gICAg
ICAgIHJldHVybiBhdWRpb0NvbmZpZy0+Yml0cmF0ZSA8PSAxMDAwOworICAgIGlmIChhdWRpb0Nv
bmZpZyAmJiBhdWRpb0NvbmZpZy0+Yml0cmF0ZSkKKyAgICAgICAgcmV0dXJuIGF1ZGlvQ29uZmln
LT5iaXRyYXRlLnZhbHVlKCkgPD0gMTAwMDsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTI1
LDcgKzEzMSw3IEBAIHN0YXRpYyBib29sIGNhblNtb290aGx5RW5jb2RlTWVkaWEoY29uc3QgTWVk
aWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGF1dG8gYXVkaW9Db25maWcgPSBjb25maWd1cmF0aW9uLmF1ZGlvOwotICAgIGlm
IChhdWRpb0NvbmZpZyAmJiBhdWRpb0NvbmZpZy0+Y2hhbm5lbHMgIT0gIjIiKQorICAgIGlmIChh
dWRpb0NvbmZpZyAmJiAhYXVkaW9Db25maWctPmNoYW5uZWxzLmlzTnVsbCgpICYmIGF1ZGlvQ29u
ZmlnLT5jaGFubmVscyAhPSAiMiIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biB0cnVlOwpAQCAtMTM4LDcgKzE0NCw3IEBAIHN0YXRpYyBib29sIGNhblBvd2VyRWZmaWNpZW50
bHlFbmNvZGVNZWRpYShjb25zdCBNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbiYgY29uCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8gYXVkaW9Db25maWcgPSBjb25maWd1cmF0aW9u
LmF1ZGlvOwotICAgIGlmIChhdWRpb0NvbmZpZyAmJiBhdWRpb0NvbmZpZy0+Yml0cmF0ZSA+IDEw
MDApCisgICAgaWYgKGF1ZGlvQ29uZmlnICYmIGF1ZGlvQ29uZmlnLT5iaXRyYXRlICYmIGF1ZGlv
Q29uZmlnLT5iaXRyYXRlLnZhbHVlKCkgPiAxMDAwKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYjk4MGE3ZWQxODI4NzE0ZGNjYWQ2ZTdkNzVlZDE2
NTdkOTc1ZWEyLi45ZjRkOWI4YWNhYTM2MjdlOTBhOTdmYTQyMTM4ZTNmZjA5OGNkYjg3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMTEtMDkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEF1ZGlvQ29uZmlndXJhdGlvbi5zcGF0
aWFsUmVuZGVyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg3MjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjEzMzQ4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1lZGlhL21lZGlhY2FwYWJp
bGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxSZW5kZXJpbmctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYWNhcGFiaWxpdGllcy9tb2NrLWRlY29kaW5nSW5m
by1zcGF0aWFsUmVuZGVyaW5nLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTA5ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIE5vbi1mdWxsc2NyZWVuIHBhZ2UgY29u
dGVudHMgdmlzaWJsZSB3aGVuIHJvdGF0aW5nIGRldmljZSBkdXJpbmcgZWxlbWVudCBmdWxsc2Ny
ZWVuIHByZXNlbnRhdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhY2Fw
YWJpbGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxSZW5kZXJpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvbW9jay1kZWNvZGluZ0luZm8t
c3BhdGlhbFJlbmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg2NzM3Mzk1ZWE1Yjli
MWU1NDUzNzMyMjAyOWU2M2Q5NTk4MGRhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxSZW5kZXJp
bmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK1JVTihpbnRlcm5hbHMuZW5hYmxlTW9j
a01lZGlhQ2FwYWJpbGl0aWVzKCkpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhQ2Fw
YWJpbGl0aWVzRXh0ZW5zaW9uc0VuYWJsZWQodHJ1ZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRv
ci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnZmlsZScsIGF1ZGlvOiB7
IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAuMiInLCBjaGFubmVsczog
JzUuMScsIGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAwIH0gfSk7KQorUHJvbWlzZSBy
ZXNvbHZlZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICd0cnVlJykgT0sKK0VYUEVD
VEVEICh0eXBlb2YgaW5mby5zdXBwb3J0ZWRDb25maWd1cmF0aW9uLmF1ZGlvLnNwYXRpYWxSZW5k
ZXJpbmcgPT0gJ3VuZGVmaW5lZCcpIE9LCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRpYUNh
cGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnZmlsZScsIGF1ZGlvOiB7IGNvbnRlbnRU
eXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAuMiInLCBjaGFubmVsczogJzUuMScsIGJp
dHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAwLCBzcGF0aWFsUmVuZGVyaW5nOiB0cnVlIH0g
fSk7KQorUHJvbWlzZSByZXNvbHZlZCBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkID09ICd0
cnVlJykgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZENvbmZpZ3VyYXRpb24uYXVkaW8uc3Bh
dGlhbFJlbmRlcmluZyA9PSAndHJ1ZScpIE9LCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5tZWRp
YUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnZmlsZScsIGF1ZGlvOiB7IGNvbnRl
bnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9Im1wNGEuNDAuMiInLCBjaGFubmVsczogJzInLCBi
aXRyYXRlOiAxMDAwLCBzYW1wbGVyYXRlOiA0NDEwMCwgc3BhdGlhbFJlbmRlcmluZzogdHJ1ZSB9
IH0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9PSAn
ZmFsc2UnKSBPSworRVhQRUNURUQgKGluZm8uc3VwcG9ydGVkQ29uZmlndXJhdGlvbi5hdWRpby5z
cGF0aWFsUmVuZGVyaW5nID09ICd0cnVlJykgT0sKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLm1l
ZGlhQ2FwYWJpbGl0aWVzLmRlY29kaW5nSW5mbyh7IHR5cGU6ICdmaWxlJywgYXVkaW86IHsgY29u
dGVudFR5cGU6ICdhdWRpby9tcDQ7IGNvZGVjcz0ibXA0YS40MC4yIicsIGNoYW5uZWxzOiAnMics
IGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAwLCBzcGF0aWFsUmVuZGVyaW5nOiBmYWxz
ZSB9IH0pOykKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VYUEVDVEVEIChpbmZvLnN1cHBvcnRlZCA9
PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoaW5mby5zdXBwb3J0ZWRDb25maWd1cmF0aW9uLmF1ZGlv
LnNwYXRpYWxSZW5kZXJpbmcgPT0gJ2ZhbHNlJykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhY2FwYWJpbGl0aWVzL21vY2stZGVjb2RpbmdJbmZv
LXNwYXRpYWxSZW5kZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhY2FwYWJpbGl0
aWVzL21vY2stZGVjb2RpbmdJbmZvLXNwYXRpYWxSZW5kZXJpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
NWY3OGU3YjE5ZGE1NzE2ZTI0ZDE5YmVlZGQyYjkxZGRjOTk4ZWFkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWFjYXBhYmlsaXRpZXMvbW9jay1kZWNvZGluZ0luZm8t
c3BhdGlhbFJlbmRlcmluZy5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0uLi92aWRlby10ZXN0LmpzPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICB2YXIgcHJvbWlzZTsK
KyAgICB2YXIgaW5mbzsKKworICAgIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgeworICAg
ICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCJJbnRl
cm5hbHMgaXMgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4iKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuZW5hYmxlTW9ja01lZGlhQ2FwYWJp
bGl0aWVzKCknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFDYXBh
YmlsaXRpZXNFeHRlbnNpb25zRW5hYmxlZCh0cnVlKScpOworCisgICAgICAgIHJ1bigicHJvbWlz
ZSA9IG5hdmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnZmls
ZScsIGF1ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9XCJtcDRhLjQwLjJc
IicsIGNoYW5uZWxzOiAnNS4xJywgYml0cmF0ZTogMTAwMCwgc2FtcGxlcmF0ZTogNDQxMDAgfSB9
KTsiKTsKKworICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVzb2x2ZShwcm9taXNlKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRydWUpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3R5cGVvZiBpbmZvLnN1cHBvcnRlZENvbmZpZ3VyYXRpb24uYXVkaW8uc3BhdGlh
bFJlbmRlcmluZycsICd1bmRlZmluZWQnKTsKKworICAgICAgICBydW4oInByb21pc2UgPSBuYXZp
Z2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ2ZpbGUnLCBhdWRp
bzogeyBjb250ZW50VHlwZTogJ2F1ZGlvL21wNDsgY29kZWNzPVwibXA0YS40MC4yXCInLCBjaGFu
bmVsczogJzUuMScsIGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAwLCBzcGF0aWFsUmVu
ZGVyaW5nOiB0cnVlIH0gfSk7Iik7CisKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29s
dmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCB0cnVl
KTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZENvbmZpZ3VyYXRpb24uYXVk
aW8uc3BhdGlhbFJlbmRlcmluZycsIHRydWUpOworCisgICAgICAgIHJ1bigicHJvbWlzZSA9IG5h
dmlnYXRvci5tZWRpYUNhcGFiaWxpdGllcy5kZWNvZGluZ0luZm8oeyB0eXBlOiAnZmlsZScsIGF1
ZGlvOiB7IGNvbnRlbnRUeXBlOiAnYXVkaW8vbXA0OyBjb2RlY3M9XCJtcDRhLjQwLjJcIicsIGNo
YW5uZWxzOiAnMicsIGJpdHJhdGU6IDEwMDAsIHNhbXBsZXJhdGU6IDQ0MTAwLCBzcGF0aWFsUmVu
ZGVyaW5nOiB0cnVlIH0gfSk7Iik7CisKKyAgICAgICAgaW5mbyA9IGF3YWl0IHNob3VsZFJlc29s
dmUocHJvbWlzZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWQnLCBmYWxz
ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnaW5mby5zdXBwb3J0ZWRDb25maWd1cmF0aW9uLmF1
ZGlvLnNwYXRpYWxSZW5kZXJpbmcnLCB0cnVlKTsKKworICAgICAgICBydW4oInByb21pc2UgPSBu
YXZpZ2F0b3IubWVkaWFDYXBhYmlsaXRpZXMuZGVjb2RpbmdJbmZvKHsgdHlwZTogJ2ZpbGUnLCBh
dWRpbzogeyBjb250ZW50VHlwZTogJ2F1ZGlvL21wNDsgY29kZWNzPVwibXA0YS40MC4yXCInLCBj
aGFubmVsczogJzInLCBiaXRyYXRlOiAxMDAwLCBzYW1wbGVyYXRlOiA0NDEwMCwgc3BhdGlhbFJl
bmRlcmluZzogZmFsc2UgfSB9KTsiKTsKKworICAgICAgICBpbmZvID0gYXdhaXQgc2hvdWxkUmVz
b2x2ZShwcm9taXNlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdpbmZvLnN1cHBvcnRlZCcsIHRy
dWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2luZm8uc3VwcG9ydGVkQ29uZmlndXJhdGlvbi5h
dWRpby5zcGF0aWFsUmVuZGVyaW5nJywgZmFsc2UpOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIiAvPgor
PC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>