<?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>148802</bug_id>
          
          <creation_ts>2015-09-04 10:09:27 -0700</creation_ts>
          <short_desc>Add support for LOG(level, ...) in JavaScriptCore parts of Web Inspector code</short_desc>
          <delta_ts>2017-04-24 19:09:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147066</blocked>
    
    <blocked>149074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>basile_clement</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123468</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-04 10:09:27 -0700</bug_when>
    <thetext>I want to add logging to both JSC and WebCore parts of Web Inspector for tracing things like frontends connecting/disconnecting, instrumentation being plugged/unplugged, etc. But, Logging.h (which allows toggling logging with NSUserDefaults) is only available in WebCore and WebKit/2. This patch would copy Logging.h down to JSC, and initialize logging channels in InitializeThreading.cpp alongside Options and other stuff. Then, it would be possible to use this log channel from JSC or WebCore, and flip one switch to enable all Inspector log tracing regardless of whether it&apos;s in JSC, WebCore, WK2.

Logging code gets compiled out if LOG_DISABLED is defined; by default, LOG_DISABLED == NDEBUG. This should not have any performance impact.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123572</commentid>
    <comment_count>1</comment_count>
      <attachid>260609</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-04 13:13:04 -0700</bug_when>
    <thetext>Created attachment 260609
Proposed Fix

This will probably require a few rounds with EWS, due to adding multiple platform implementations and a new forwarding header directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123576</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-04 13:15:59 -0700</bug_when>
    <thetext>Attachment 260609 did not pass style-queue:


ERROR: Source/JavaScriptCore/tools/Logging.cpp:38:  JOIN_LOG_CHANNEL_WITH_PREFIX is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 27 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125186</commentid>
    <comment_count>3</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-11 08:57:12 -0700</bug_when>
    <thetext>I used this patch in a branch to help diagnose https://webkit.org/b/149006. It was very helpful. I&apos;d love to be able to commit some of the lifecycle logging so I don&apos;t have to re-add it for the next bug.

Can someone review? I have not heard any objections... runtime memory use will increase a little bit in !LOG_DISABLED builds (cf. https://bugs.webkit.org/show_bug.cgi?id=143506) but not really relevant for debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125189</commentid>
    <comment_count>4</comment_count>
      <attachid>260609</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-11 09:02:05 -0700</bug_when>
    <thetext>Comment on attachment 260609
Proposed Fix

Seems like we’d move Logging into WTF rather than duplicating it to JavaScriptCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125197</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-11 09:28:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 260609 [details]
&gt; Proposed Fix
&gt; 
&gt; Seems like we’d move Logging into WTF rather than duplicating it to
&gt; JavaScriptCore.

The way it&apos;s set up now, there are copies of Logging in JSC, WebCore, WebKit, WebKit2, and some in Internal. Each has a different NSUserDefaults key.

So, which ones are you proposing should be combined? And, should we preserve separate defaults keys, i.e., WebKitLogging, WebCoreLogging, and so on, or just have one (likely WebKitLogging) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125208</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-09-11 10:13:18 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Comment on attachment 260609 [details]
&gt; &gt; Proposed Fix
&gt; &gt; 
&gt; &gt; Seems like we’d move Logging into WTF rather than duplicating it to
&gt; &gt; JavaScriptCore.
&gt; 
&gt; The way it&apos;s set up now, there are copies of Logging in JSC, WebCore,
&gt; WebKit, WebKit2, and some in Internal. Each has a different NSUserDefaults
&gt; key.
&gt; 
&gt; So, which ones are you proposing should be combined? And, should we preserve
&gt; separate defaults keys, i.e., WebKitLogging, WebCoreLogging, and so on, or
&gt; just have one (likely WebKitLogging) ?

(Re: &quot;some in Internal&quot;, logging outside the WebKit project is a separate issue and probably shouldn’t be discussed here.)

Within the WebKit project, I think it would be good to avoid code duplication and to be able to improve the logging machinery easily once. But I suppose it’s OK if we want each framework to have a separate key and a separate set of channels.

Maybe that’s already how this works and my objection is really no objection at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125213</commentid>
    <comment_count>7</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-09-11 10:27:13 -0700</bug_when>
    <thetext>
&gt; Within the WebKit project, I think it would be good to avoid code
&gt; duplication and to be able to improve the logging machinery easily once. But
&gt; I suppose it’s OK if we want each framework to have a separate key and a
&gt; separate set of channels.
&gt; 
&gt; Maybe that’s already how this works and my objection is really no objection
&gt; at all.

I think you are correct.

wtf/Assertions.cpp (WTFInitializeLogChannelStatesFromString) is where all the interesting machinery is located. The rest is a lot of duplicated x-macros, which I suppose could be centralized, but it doesn&apos;t buy much in terms of maintainability.

The separate Logging.h files define the logging channels, prefix, and the static WTFLogChannel* logChannels[]. These are currently initialized as needed; so WebKit2 channels aren&apos;t reserved by JSC&apos;s Logging.h. Maybe each framework could have its own Group of channels that get set up at the same time, but this seems like over-engineering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300822</commentid>
    <comment_count>8</comment_count>
      <attachid>260609</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-04-24 19:09:26 -0700</bug_when>
    <thetext>Comment on attachment 260609
Proposed Fix

This patch has been pending review since 2015 with no recent activity.
It seems unlikely that it would even still apply to trunk in its current form.

Clearing from the review queue.

Feel free to update and resubmit if the patch is still relevant.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260609</attachid>
            <date>2015-09-04 13:13:04 -0700</date>
            <delta_ts>2017-04-24 19:09:26 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-148802-20150904131301.patch</filename>
            <type>text/plain</type>
            <size>37556</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YmQxMjU5NWU3OGIxMmQ0ZWRlODA3NjQ0ZjFmYTk0MzBhMWI3YzgwLi4xMjU4YTNjNTM2YTYwNmIy
NmE5OWNmZGY3NDQ1ZWRjM2VhYWI4Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NyBAQAogMjAxNS0wOS0wNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTE9HKGxldmVsLCAuLi4pIGluIEphdmFTY3JpcHRDb3Jl
IHBhcnRzIG9mIFdlYiBJbnNwZWN0b3IgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ29weSBvdmVyIHRoZSBiYXNpYyBpbXBsZW1lbnRhdGlvbnMg
b2YgTG9nZ2luZyBtZXRob2RzIGZyb20gV2ViQ29yZS4KKyAgICAgICAgSW5pdGlhbGl6ZSBsb2dn
aW5nIGluIGluaXRpYWxpemVUaHJlYWRpbmcoKSBpZiBsb2dnaW5nIGlzIGVuYWJsZWQuCisgICAg
ICAgIEF1dG9tYXRpY2FsbHkgaW1wb3J0IEpTQyBsb2dnaW5nIGNoYW5uZWxzIGludG8gZ2xvYmFs
IG5hbWVzcGFjZSBzbworICAgICAgICB0aGF0IHRoZXkgY2FuIGJlIHVzZWQgd2l0aG91dCB0cm91
YmxlIGZyb20gb3V0c2lkZSBKYXZhU2NyaXB0Q29yZS4KKworICAgICAgICBGb3Igbm93LCBtb3Zl
IHRoZSBJbnNwZWN0b3IgYW5kIFdlYlJlcGxheSBsb2cgY2hhbm5lbHMgdG8gSlNDLgorICAgICAg
ICBCb3RoIG9mIHRoZXNlIHN1YnN5c3RlbXMgc3BhbiBhY3Jvc3MgSlNDIGFuZCBXZWJDb3JlL1dl
YktpdC4KKworICAgICAgICBMb2dnaW5nIGlzIGVuYWJsZWQgYnkgc2V0dGluZyBXRUJLSVRfTE9H
IGVudmlyb25tZW50IHZhcmlhYmxlIG9uCisgICAgICAgIEVGTC9HVEssIGFuZCBzZXR0aW5nIHRo
ZSBKU0NMb2dnaW5nIGRlZmF1bHRzIGtleSBvbiBNYWMvV2luLiBUaGUKKyAgICAgICAgdmFsdWUg
aXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBsb2cgY2hhbm5lbHMgdG8gZW5hYmxlLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMu
Y21ha2U6CisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogcnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6aW5pdGlhbGl6ZVRocmVhZGlu
Zyk6CisgICAgICAgICogdG9vbHMvTG9nZ2luZy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuaC4KKyAgICAgICAgKEpTQzo6aXNMb2dDaGFubmVsRW5hYmxl
ZCk6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vzc2FyeSk6
CisgICAgICAgICogdG9vbHMvTG9nZ2luZy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2dnaW5nLmguCisgICAgICAgICogdG9vbHMvTG9nZ2luZ0VmbC5jcHA6IEFkZGVk
LgorICAgICAgICAoSlNDOjpsb2dMZXZlbFN0cmluZyk6CisgICAgICAgICogdG9vbHMvTG9nZ2lu
Z0d0ay5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpsb2dMZXZlbFN0cmluZyk6CisgICAgICAg
ICogdG9vbHMvTG9nZ2luZ01hYy5tbTogQWRkZWQuCisgICAgICAgIChKU0M6OmxvZ0xldmVsU3Ry
aW5nKToKKyAgICAgICAgKiB0b29scy9Mb2dnaW5nV2luLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OmxvZ0xldmVsU3RyaW5nKToKKworMjAxNS0wOS0wNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFw
cGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnNwZWN0b3JDb250cm9sbGVyIHNo
b3VsZCBzdXBwb3J0IG11bHRpcGxlIGZyb250ZW5kIGNoYW5uZWxzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg1MzgKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUw
ZjU5YjViZjQ5MDMzNTIyY2RiMTZjMTQ1NTY4ODgwZjY4MjY4Y2YuLjYzOTQ2MmE2YTQ4N2QyM2Qw
NmUzZGM3NmUxYjU2MTJjZmI1MzRkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMSBAQAogMjAx
NS0wOS0wNCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgTE9HKGxldmVsLCAuLi4pIGluIEphdmFTY3JpcHRDb3JlIHBhcnRzIG9mIFdlYiBJ
bnNwZWN0b3IgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ4ODAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBXZWJSZXBsYXkgYW5kICh1bnVzZWQpIFJlbW90ZUluc3BlY3RvciBjaGFubmVs
IGRvd24gdG8gSlNDIGxvZ2dpbmcsCisgICAgICAgIHNpbmNlIHBhcnRzIG9mIGJvdGggYXJlIGlt
cGxlbWVudGVkIGluIEpTQy4KKworICAgICAgICBBZGQgYSBmb3J3YXJkaW5nIGhlYWRlciBmb3Ig
dG9vbHMvTG9nZ2luZy5oLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hh
bmdlZC4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3Rvb2xzL0xvZ2dpbmcuaDogQWRk
ZWQuCisgICAgICAgICogUGxhdGZvcm1XaW4uY21ha2U6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL2NvcHlGb3J3YXJkaW5n
SGVhZGVycy5jbWQ6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogcmVwbGF5L0NhcHR1
cmluZ0lucHV0Q3Vyc29yLmNwcDoKKyAgICAgICAgKiByZXBsYXkvRXZlbnRMb29wSW5wdXREaXNw
YXRjaGVyLmNwcDoKKyAgICAgICAgKiByZXBsYXkvUmVwbGF5Q29udHJvbGxlci5jcHA6CisgICAg
ICAgICogcmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHA6CisKKzIwMTUtMDktMDQgIEJy
aWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogSW5z
cGVjdG9yQ29udHJvbGxlciBzaG91bGQgc3VwcG9ydCBtdWx0aXBsZSBmcm9udGVuZCBjaGFubmVs
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4NTM4
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyZGIzZTI5NDk5NmZmMzY0
NDNiN2YxYTRiOTEwNTZlNTY1MWQ3ZDRiLi41NDAwMDJlZTliZmFkNWM2Yjg2Njk0MjU1YzUwMjgy
MzM2YTRmOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00MjcsNiAr
NDI3LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICB0b29scy9GdW5jdGlvbk92
ZXJyaWRlcy5jcHAKICAgICB0b29scy9KU0RvbGxhclZNLmNwcAogICAgIHRvb2xzL0pTRG9sbGFy
Vk1Qcm90b3R5cGUuY3BwCisgICAgdG9vbHMvTG9nZ2luZy5jcHAKIAogICAgIHdhc20vSlNXQVNN
TW9kdWxlLmNwcAogICAgIHdhc20vV0FTTUZ1bmN0aW9uUGFyc2VyLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9q
L0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggNTExZjEwOWFiNmEwYjgxMWU0ODc5ZjlkYTA2
ZjljMDliYzNmMjIwYy4uOWI4ZDFmZGM2N2NkYzUyYmEwZjE5OWU1NWI0NDM1NTAwZDdhNWJjMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ov
SmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCkBAIC05MDAsNiArOTAwLDgg
QEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXEZ1bmN0aW9uT3ZlcnJpZGVzLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXEpTRG9sbGFyVk0uY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xsYXJWTVByb3RvdHlwZS5j
cHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx0b29sc1xMb2dnaW5nLmNwcCIgLz4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHRvb2xzXExvZ2dpbmdXaW4uY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxKU1dBU01Nb2R1bGUuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNRnVuY3Rpb25QYXJzZXIuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd2FzbVxXQVNNTW9kdWxlUGFyc2VyLmNwcCIgLz4KQEAg
LTE3OTksNiArMTgwMSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0b29sc1xGdW5j
dGlvbk92ZXJyaWRlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNE
b2xsYXJWTS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xsYXJW
TVByb3RvdHlwZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcTG9nZ2lu
Zy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNcUHJvZmlsZVRyZWVOb2Rl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0b29sc1xUaWVyZWRNTWFwQXJyYXku
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHdhc21cSlNXQVNNTW9kdWxlLmgiIC8+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5k
ZXggMjU4ZmI3NmYyMDU2ODdlNGM3YWI0Zjg2MTMzN2RlYWQ4YjgyNGFjZi4uN2QxYTJkMDllZDkz
N2JmNjk5NWVjY2JkODE2MDE2YTM4ZmRiZWIzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtOTgxLDYgKzk4MSwxMiBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cdG9vbHNcSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAiPgogICAg
ICAgPEZpbHRlcj50b29sczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cdG9vbHNcTG9nZ2luZy5jcHAiPgorICAgICAgPEZpbHRlcj50b29sczwv
RmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cdG9v
bHNcTG9nZ2luZ1dpbi5jcHAiPgorICAgICAgPEZpbHRlcj50b29sczwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ceWFyclxSZWd1bGFyRXhwcmVz
c2lvbi5jcHAiPgogICAgICAgPEZpbHRlcj55YXJyPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+
CkBAIC0zMTY4LDYgKzMxNzQsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cdG9vbHNc
SlNEb2xsYXJWTVByb3RvdHlwZS5oIj4KICAgICAgIDxGaWx0ZXI+dG9vbHM8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHRvb2xzXExvZ2dpbmcu
aCI+CisgICAgICA8RmlsdGVyPnRvb2xzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx0b29sc1xQcm9maWxlVHJlZU5vZGUuaCI+CiAgICAgICA8
RmlsdGVyPnRvb2xzPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDA0YTEyM2ZlMzY1Y2Y1NzI2ZjJiZjMxZjc2YTdiZGZjZGFlNzY2OTIu
LjM0NjQ4MDQ3NjM2ZDA5ZjUwMDViOWFmYmM0MDY3YjhiZDc5YWViNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTk3LDYgKzExOTcsOSBAQAogCQk5OUU0NUEyODE4QTFCMjU5
MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3RpY0lucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU0NUEyMzE4QTFCMjU5MDAyNkQ4OEYgLyogTm9u
ZGV0ZXJtaW5pc3RpY0lucHV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTlGMUE2RkUxQjhFNkQ5NDAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250
ZW5kUm91dGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5RjFBNkZDMUI4RTZEOTQwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5j
cHAgKi87IH07CiAJCTk5RjFBNzAxMUI5OEZCRUMwMDQ2M0IyNiAvKiBJbnNwZWN0b3JGcm9udGVu
ZFJvdXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTlGMUE3MDAxQjk4RkJFQzAwNDYzQjI2IC8qIEluc3BlY3RvckZyb250ZW5kUm91dGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTlGMUE3MDUx
QjlBMUMwMzAwNDYzQjI2IC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTlGMUE3MDIxQjlBMUMwMzAwNDYzQjI2IC8qIExvZ2dpbmcu
Y3BwICovOyB9OworCQk5OUYxQTcwNjFCOUExQzAzMDA0NjNCMjYgLyogTG9nZ2luZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlGMUE3MDMxQjlBMUMw
MzAwNDYzQjI2IC8qIExvZ2dpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5OUYxQTcwNzFCOUExQzAzMDA0NjNCMjYgLyogTG9nZ2luZ01hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RjFBNzA0
MUI5QTFDMDMwMDQ2M0IyNiAvKiBMb2dnaW5nTWFjLm1tICovOyB9OwogCQk5RTcyOTQwNzE5MEYw
MUE1MDAxQTkxQjUgLyogSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc4NjM2QzBEOUJFRUMzMDBENzRFNzUgLyog
SW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgKi87IH07CiAJCTlFNzI5NDA4MTkwRjAyMUUwMDFBOTFC
NSAvKiBJbml0aWFsaXplTExWTVBPU0lYLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUM1MTgwNUU3NTUwMDQ3MkNFNCAvKiBJbml0aWFsaXpl
TExWTVBPU0lYLmNwcCAqLzsgfTsKIAkJOUU3Mjk0MEIxOTBGMDUxNDAwMUE5MUI1IC8qIEJ1bmRs
ZVBhdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlF
NzI5NDBBMTkwRjA1MTQwMDFBOTFCNSAvKiBCdW5kbGVQYXRoLmggKi87IH07CkBAIC0zMDY3LDYg
KzMwNzAsOSBAQAogCQk5OUU0NUEyMzE4QTFCMjU5MDAyNkQ4OEYgLyogTm9uZGV0ZXJtaW5pc3Rp
Y0lucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vbmRldGVybWluaXN0
aWNJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUYxQTZGQzFCOEU2RDk0
MDA0NjNCMjYgLyogSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRnJvbnRlbmRSb3V0ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OUYxQTcwMDFCOThGQkVDMDA0NjNCMjYgLyogSW5zcGVj
dG9yRnJvbnRlbmRSb3V0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yRnJvbnRlbmRSb3V0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlG
MUE3MDIxQjlBMUMwMzAwNDYzQjI2IC8qIExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk5RjFBNzAzMUI5QTFDMDMwMDQ2M0IyNiAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTlGMUE3MDQxQjlBMUMwMzAwNDYzQjI2IC8qIExvZ2dpbmdNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2dnaW5nTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QjQ5NTRFODFBNjY0MERCMDAyODE1QTYgLyogUGFyc2VyRnVuY3Rp
b25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlckZ1bmN0aW9uSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5RTcyOTQwOTE5MEYwMzA2MDAxQTkxQjUgLyogQnVuZGxlUGF0
aC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEJ1bmRsZVBhdGgu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlFNzI5NDBBMTkwRjA1MTQwMDFBOTFC
NSAvKiBCdW5kbGVQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1bmRs
ZVBhdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUwNzMsNiArNTA3OSw5IEBA
CiAJCQkJRkUzODRFRTQxQUREQjdBRDAwNTVERTJDIC8qIEpTRG9sbGFyVk1Qcm90b3R5cGUuaCAq
LywKIAkJCQk4NkI1ODIyQzE0RDIyRjVGMDBBOUMzMDYgLyogUHJvZmlsZVRyZWVOb2RlLmggKi8s
CiAJCQkJODZCNTgyNkExNEQzNUQ1MTAwQTlDMzA2IC8qIFRpZXJlZE1NYXBBcnJheS5oICovLAor
CQkJCTk5RjFBNzAyMUI5QTFDMDMwMDQ2M0IyNiAvKiBMb2dnaW5nLmNwcCAqLywKKwkJCQk5OUYx
QTcwMzFCOUExQzAzMDA0NjNCMjYgLyogTG9nZ2luZy5oICovLAorCQkJCTk5RjFBNzA0MUI5QTFD
MDMwMDQ2M0IyNiAvKiBMb2dnaW5nTWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSB0b29sczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02Mzk0LDYgKzY0MDMsNyBAQAogCQkJCUE1
MzI0MzhBMTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JGcm9udGVuZERpc3BhdGNoZXJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkYyQ0Q1QzFCNjFBNEY4MDA0OTU1QTggLyogREZHTXVsdGlH
ZXRCeU9mZnNldERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MDZEREVBMThEQTQ0QUIwMEEz
ODNEMCAvKiBJZGVudGlmaWVySW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTlGMUE3MDYx
QjlBMUMwMzAwNDYzQjI2IC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1MzI0MzhD
MTg1NjgzMzUwMDJFRDY5MiAvKiBJbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1MEU0QjYyMTg4MDlERDUwMDY4QTQ2RCAvKiBJbnNwZWN0b3JSdW50aW1lQWdl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1NUQ5M0FDMTg1MTRGNzkwMDQwMERFRCAvKiBJbnNw
ZWN0b3JQcm90b2NvbFR5cGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTc1OTgsNyArNzYwOCw5IEBA
CiAJCQkJMEY1RDA4NUQxQjhDRjk5RDAwMTE0M0I0IC8qIERGR05vZGVPcmlnaW4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkUzOTEzNTQxQjc5NEY2RTAwRURBRjcxIC8qIExpdmVPYmplY3RMaXN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOTc4QjNCMUFBRUE3MUQwMDdDNzM2OSAvKiBDb25z
dGFudE1vZGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTlGMUE3MDUxQjlBMUMwMzAwNDYzQjI2
IC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMDUwMjUxQUE5MDk1NjAwRDMz
QjMzIC8qIENsb25lZEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OUYxQTcwNzFC
OUExQzAzMDA0NjNCMjYgLyogTG9nZ2luZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGNzkw
ODU1MTlBMjkwQjIwMEY2MzEwQyAvKiBERkdTdHJ1Y3R1cmVSZWdpc3RyYXRpb25QaGFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRkVBMEExRTE3MDhCMDA3MDBCQjcyMkMgLyogRlRMQWJzdHJh
Y3RIZWFwUmVwb3NpdG9yeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjQ4NTMyNzE4N0RGREVD
MDA4M0I2ODcgLyogRlRMQXZhaWxhYmxlUmVjb3ZlcnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggNjI5ZTA4MWRlMjExZDJiMDUy
YTU3NTk0MzlhODhkOTI0YjU2MjMxZS4uMzcyYzAzZGYzOTliMTlkODAyOGI2ZmU3ZDljZTY0MzI4
Mjc0NTQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNSw2
ICs1LDExIEBAIGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXVEZfRElSfSIKICAgICAiJHtXVEZfRElSfS93dGYvZWZsIgogKQorCitsaXN0KEFQ
UEVORCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCisgICAgdG9vbHMvTG9nZ2luZ0VmbC5jcHAKKykK
KwogYWRkX2RlZmluaXRpb25zKC1EU1RBVElDQUxMWV9MSU5LRURfV0lUSF9XVEYpCiAKIGluc3Rh
bGwoRklMRVMgQVBJL0phdmFTY3JpcHQuaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCmluZGV4IDRhZDFjMWEwMzgyMTcyODY1YjRmZjY4YmNlNGNjYzRjMjUzNmZmNGYuLmEy
YjFlZDEzYmQyZjQyMjZjNDRjNmRkOTQ1NzZkMWY0MDQ5NGUwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTQsNiArNCwxMCBAQCBsaXN0KEFQUEVORCBKYXZh
U2NyaXB0Q29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V1RGX0RJUn0iCiApCiAKK2xp
c3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKKyAgICB0b29scy9Mb2dnaW5nR3RrLmNw
cAorKQorCiBjb25maWd1cmVfZmlsZShqYXZhc2NyaXB0Y29yZWd0ay5wYy5pbiAke0NNQUtFX0JJ
TkFSWV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qYXZhc2NyaXB0Y29yZWd0ay0ke1dFQktJ
VEdUS19BUElfVkVSU0lPTn0ucGMgQE9OTFkpCiBjb25maWd1cmVfZmlsZShKYXZhU2NyaXB0Q29y
ZS5naXIuaW4gJHtDTUFLRV9CSU5BUllfRElSfS9KYXZhU2NyaXB0Q29yZS0ke1dFQktJVEdUS19B
UElfVkVSU0lPTn0uZ2lyIEBPTkxZKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1NYWMu
Y21ha2UKaW5kZXggZWRjMTA2ZTk3NGRhNTRkZjZkODE4NjdiNDFlZjgxYjViYTQzM2U4OS4uYjNl
ODg2ZDNmODAyMWQwOTBlZjg5MzJkMDRjNDY3NjI3ZjQ0ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMTksNiArMTksOCBAQCBsaXN0KEFQUEVORCBKYXZh
U2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgQVBJL0pTV3JhcHBlck1hcC5tbQogICAgIEFQSS9PYmpD
Q2FsbGJhY2tGdW5jdGlvbi5tbQogCisgICAgdG9vbHMvTG9nZ2luZ01hYy5tbQorCiAgICAgaW5z
cGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3IubW0KICAgICBpbnNwZWN0b3IvcmVtb3RlL1Jl
bW90ZUluc3BlY3RvckRlYnVnZ2FibGUuY3BwCiAgICAgaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJ
bnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRm
b3JtV2luLmNtYWtlCmluZGV4IGQ0MWMyYjlmMGJjZmZlNzA3MTRmYmM1ZDNjNDVmYWI4MjM2NDA5
Y2EuLmRiNTRkMjhiZTA0ZmQyZjE3NWM4NWI0Y2E3ZDM1ZWVmMDkzNTJkZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTEsNiArMSw4IEBACiBsaXN0KEFQUEVO
RCBKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgQVBJL0pTU3RyaW5nUmVmQlNUUi5jcHAKICAg
ICBBUEkvSlNTdHJpbmdSZWZDRi5jcHAKKworICAgIHRvb2xzL0xvZ2dpbmdXaW4uY3BwCiApCiAK
IGxpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAK
aW5kZXggZDc0NDYwZjIwODM0NTNkNTI3ZjdjZTI4YmE0NDViNDIxZTg0N2VlMS4uZTllOWRlNzU2
NWQ5YzMwMzI3OTQ3MjUwYTc4ZDdhNWQ5NmJlMTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgog
I2luY2x1ZGUgIkxMSW50RGF0YS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJT
dHJ1Y3R1cmVJRFRhYmxlLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVkZSA8
bXV0ZXg+CkBAIC02OSw2ICs3MCw5IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICBEaXNhbGxvd0dDOjppbml0aWFsaXplKCk7CiAjZW5kaWYKKyNp
ZiAhTE9HX0RJU0FCTEVECisgICAgICAgIGluaXRpYWxpemVMb2dnaW5nQ2hhbm5lbHNJZk5lY2Vz
c2FyeSgpOworI2VuZGlmCiAgICAgICAgIFdURlRocmVhZERhdGEmIHRocmVhZERhdGEgPSB3dGZU
aHJlYWREYXRhKCk7CiAgICAgICAgIHRocmVhZERhdGEuc2V0U2F2ZWRMYXN0U3RhY2tUb3AodGhy
ZWFkRGF0YS5zdGFjaygpLm9yaWdpbigpKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9Mb2dnaW5nLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjNlNTVhMDAxMmQ0OGYzNWJlZDY2MmVhYjg1
ZGM3ZTYyMjQ3NTI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rv
b2xzL0xvZ2dpbmcuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDYsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKKyNpZiAhTE9HX0RJU0FCTEVECisKK25hbWVzcGFjZSBKU0MgeworCisjZGVm
aW5lIERFRklORV9MT0dfQ0hBTk5FTChuYW1lKSBcCisgICAgV1RGTG9nQ2hhbm5lbCBKT0lOX0xP
R19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSkgPSB7IFdURkxv
Z0NoYW5uZWxPZmYsICNuYW1lIH07CitKU0NfTE9HX0NIQU5ORUxTKERFRklORV9MT0dfQ0hBTk5F
TCkKKworI2RlZmluZSBMT0dfQ0hBTk5FTF9BRERSRVNTKG5hbWUpICAmSk9JTl9MT0dfQ0hBTk5F
TF9XSVRIX1BSRUZJWChMT0dfQ0hBTk5FTF9QUkVGSVgsIG5hbWUpLAorV1RGTG9nQ2hhbm5lbCog
bG9nQ2hhbm5lbHNbXSA9IHsKKyAgICBKU0NfTE9HX0NIQU5ORUxTKExPR19DSEFOTkVMX0FERFJF
U1MpCit9OworCitzaXplX3QgbG9nQ2hhbm5lbENvdW50ID0gV1RGX0FSUkFZX0xFTkdUSChsb2dD
aGFubmVscyk7CisKK2Jvb2wgaXNMb2dDaGFubmVsRW5hYmxlZChjb25zdCBTdHJpbmcmIG5hbWUp
Cit7CisgICAgV1RGTG9nQ2hhbm5lbCogY2hhbm5lbCA9IFdURkxvZ0NoYW5uZWxCeU5hbWUobG9n
Q2hhbm5lbHMsIGxvZ0NoYW5uZWxDb3VudCwgbmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAo
IWNoYW5uZWwpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY2hhbm5lbC0+c3Rh
dGUgIT0gV1RGTG9nQ2hhbm5lbE9mZjsKK30KKwordm9pZCBpbml0aWFsaXplTG9nZ2luZ0NoYW5u
ZWxzSWZOZWNlc3NhcnkoKQoreworICAgIHN0YXRpYyBib29sIGhhdmVJbml0aWFsaXplZExvZ2dp
bmdDaGFubmVscyA9IGZhbHNlOworICAgIGlmIChoYXZlSW5pdGlhbGl6ZWRMb2dnaW5nQ2hhbm5l
bHMpCisgICAgICAgIHJldHVybjsKKyAgICBoYXZlSW5pdGlhbGl6ZWRMb2dnaW5nQ2hhbm5lbHMg
PSB0cnVlOworCisgICAgV1RGSW5pdGlhbGl6ZUxvZ0NoYW5uZWxTdGF0ZXNGcm9tU3RyaW5nKGxv
Z0NoYW5uZWxzLCBsb2dDaGFubmVsQ291bnQsIGxvZ0xldmVsU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0xvZ2dpbmcuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90b29scy9Mb2dnaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEzZmNkMDBmNjJk
NDJmNTFkOWMxYmRjZTI1YzA0NWI3NDlhM2IyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90b29scy9Mb2dnaW5nLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAxMywgMjAxNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIExvZ2dpbmdfaAorI2RlZmluZSBMb2dnaW5nX2gKKworI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworI2lmICFMT0dfRElTQUJMRUQK
KworI2lmbmRlZiBMT0dfQ0hBTk5FTF9QUkVGSVgKKyNkZWZpbmUgTE9HX0NIQU5ORUxfUFJFRklY
IExvZworI2VuZGlmCisKK25hbWVzcGFjZSBKU0MgeworCisjZGVmaW5lIEpTQ19MT0dfQ0hBTk5F
TFMoTSkgXAorICAgIE0oSW5zcGVjdG9yKSBcCisgICAgTShXZWJSZXBsYXkpIFwKKworI2RlZmlu
ZSBERUNMQVJFX0xPR19DSEFOTkVMKG5hbWUpIFwKKyAgICBKU19FWFBPUlRfUFJJVkFURSBleHRl
cm4gV1RGTG9nQ2hhbm5lbCBKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJFRklYKExPR19DSEFOTkVM
X1BSRUZJWCwgbmFtZSk7CisKK0pTQ19MT0dfQ0hBTk5FTFMoREVDTEFSRV9MT0dfQ0hBTk5FTCkK
KworI3VuZGVmIERFQ0xBUkVfTE9HX0NIQU5ORUwKKworU3RyaW5nIGxvZ0xldmVsU3RyaW5nKCk7
Citib29sIGlzTG9nQ2hhbm5lbEVuYWJsZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKK0pTX0VYUE9S
VF9QUklWQVRFIHZvaWQgaW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCk7CisK
K30gLy8gbmFtZXNwYWNlIEpTQworCisjZGVmaW5lIElNUE9SVF9MT0dfQ0hBTk5FTF9GUk9NX0pT
Q19OQU1FU1BBQ0UobmFtZSkgXAordXNpbmcgSlNDOjpKT0lOX0xPR19DSEFOTkVMX1dJVEhfUFJF
RklYKExPR19DSEFOTkVMX1BSRUZJWCwgbmFtZSk7CisKK0pTQ19MT0dfQ0hBTk5FTFMoSU1QT1JU
X0xPR19DSEFOTkVMX0ZST01fSlNDX05BTUVTUEFDRSkKKworI3VuZGVmIElNUE9SVF9MT0dfQ0hB
Tk5FTF9GUk9NX0pTQ19OQU1FU1BBQ0UKKworI2VuZGlmIC8vICFMT0dfRElTQUJMRUQKKworI2Vu
ZGlmIC8vIExvZ2dpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0xvZ2dpbmdFZmwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0xvZ2dpbmdFZmwu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNlMWNmN2IzYTRjYTc5NzYwYjUwMjYyYTQ3NDdiODBjYzlkZWUyNTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvTG9nZ2luZ0Vm
bC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lmICFMT0dfRElTQUJMRUQKKworbmFt
ZXNwYWNlIEpTQyB7CisKK1N0cmluZyBsb2dMZXZlbFN0cmluZygpCit7CisgICAgcmV0dXJuIGdl
dGVudigiV0VCS0lUX0RFQlVHIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0xvZ2dpbmdHdGsuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0xvZ2dpbmdHdGsu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNlMWNmN2IzYTRjYTc5NzYwYjUwMjYyYTQ3NDdiODBjYzlkZWUyNTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvTG9nZ2luZ0d0
ay5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lmICFMT0dfRElTQUJMRUQKKworbmFt
ZXNwYWNlIEpTQyB7CisKK1N0cmluZyBsb2dMZXZlbFN0cmluZygpCit7CisgICAgcmV0dXJuIGdl
dGVudigiV0VCS0lUX0RFQlVHIik7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYg
Ly8gIUxPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xz
L0xvZ2dpbmdNYWMubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdG9vbHMvTG9nZ2luZ01hYy5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wZjk1NjNkMzQ4MDM3ODg3NWM0MTdmY2ZiNmIxNzdmNzJlOTk4ZmM1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0xvZ2dpbmdNYWMu
bW0KQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAx
MyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisjaWYgIUxPR19E
SVNBQkxFRAorCitzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBkZWZhdWx0c0RvbWFpbiA9IEAiSlND
TG9nZ2luZyI7CisKK25hbWVzcGFjZSBKU0MgeworCitTdHJpbmcgbG9nTGV2ZWxTdHJpbmcoKQor
eworICAgIHJldHVybiBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzdHJp
bmdGb3JLZXk6ZGVmYXVsdHNEb21haW5dOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKworI2Vu
ZGlmIC8vICFMT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
b29scy9Mb2dnaW5nV2luLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9Mb2dnaW5n
V2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MDU3N2NhNzQ0YWEyNDU2OWU2YTVlZGVmODhjYzg1ZTliOTA0
MjBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0xvZ2dp
bmdXaW4uY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTG9nZ2luZy5oIgorCisjaWYgIUxPR19ESVNBQkxFRAorCisjaW5jbHVkZSA8d2luZG93cy5o
PgorI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CisKK3N0YXRpYyBjaGFyKiBjb25zdCBsb2dnaW5n
RW52aXJvbm1lbnRWYXJpYWJsZSA9ICJKU0NMb2dnaW5nIjsKKworU3RyaW5nIGxvZ0xldmVsU3Ry
aW5nKCkKK3sKKyAgICBEV09SRCBsZW5ndGggPSBHZXRFbnZpcm9ubWVudFZhcmlhYmxlQShsb2dn
aW5nRW52aXJvbm1lbnRWYXJpYWJsZSwgMCwgMCk7CisgICAgaWYgKCFsZW5ndGgpCisgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOworCisgICAgYXV0byBidWZmZXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPGNoYXJbXT4obGVuZ3RoKTsKKworICAgIGlmICghR2V0RW52aXJvbm1lbnRWYXJpYWJsZUEo
bG9nZ2luZ0Vudmlyb25tZW50VmFyaWFibGUsIGJ1ZmZlci5nZXQoKSwgbGVuZ3RoKSkKKyAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CisKKyAgICByZXR1cm4gU3RyaW5nKGJ1ZmZlci5nZXQo
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gIUxPR19ESVNBQkxFRApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvdG9vbHMvTG9nZ2lu
Zy5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvdG9vbHMvTG9nZ2luZy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEwYzlkY2M4NDMxNDIzM2ZmMGEyNWZhNjExZmIyNDdkYmQ0NTU4ZGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy90b29scy9Mb2dn
aW5nLmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0xvZ2dpbmdfaAorI2Rl
ZmluZSBXZWJDb3JlX0ZXRF9Mb2dnaW5nX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Mb2dn
aW5nLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZTMzNmQ5ZTJkMjUx
OTUwOGY1ODE0NmQ4OTMzYzY1ZTIxYzkyZGQ2ZC4uNjhkNjQzZDc1YWVjNjJkYWIyNDNlNTY2OTUy
ZDdmMjczMzgwN2JlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTIxLDYgKzIxLDcg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7REVSSVZF
RF9TT1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvcGFyc2VyIgog
ICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyIgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9L0ZvcndhcmRpbmdIZWFk
ZXJzL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUiCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUvdG9vbHMiCiAgICAgIiR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMvSmF2YVNjcmlwdENvcmUveWFyciIKICAgICAi
JHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycy9XVEYiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJzIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYzQ1YWMxZmY1ZjQ2ZjhkYWFhYjI2Zjg3YjU3
YWY0Nzk5M2Y2NmM2ZC4uYjA3OWIzYjY5N2JlNTU4MTA4NTZkM2ZmYzBlNmNhNTJlYWI4ZjkwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBA
IC0yMDM5OSw2ICsyMDM5OSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJk
aW5nSGVhZGVyc1xydW50aW1lXFdhdGNoZG9nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xydW50aW1lXFdlYWtHQ01hcC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxXcml0ZUJhcnJpZXIu
aCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHRvb2xz
XExvZ2dpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXHlhcnJcWWFyckpJVC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxj
YW52YXNcQU5HTEVJbnN0YW5jZWRBcnJheXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGh0bWxcY2FudmFzXENhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmgiIC8+CkBAIC0yMjY4OSw2
ICsyMjY5MCw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXE9wZXJhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXHJ1bnRpbWVcUHJvdGVjdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxTdHJpbmdPYmplY3QuaCIgLz4KKyAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHRvb2xzXExvZ2dpbmcu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJc
UmVndWxhckV4cHJlc3Npb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndh
cmRpbmdIZWFkZXJzXHlhcnJcWWFyci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
Rm9yd2FyZGluZ0hlYWRlcnNceWFyclxZYXJySW50ZXJwcmV0ZXIuaCIgLz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpp
bmRleCBkZDliMmRhZjFhZGZkZDhhODdmNDFjMzA1ODUzZjNkY2Y1ZTZhMmZkLi42ZGEyNGEzZDBi
MWNmY2I2ZGUwYzVhY2I0NmNjMzIxMzFmZWRjYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0xMTY4NCw2
ICsxMTY4NCw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xydW50aW1lXFN0cmluZ09iamVjdC5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRl
cnNccnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcdG9vbHNcTG9nZ2luZy5oIj4KKyAgICAgIDxGaWx0
ZXI+Rm9yd2FyZGluZ0hlYWRlcnNcdG9vbHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcUmVndWxhckV4
cHJlc3Npb24uaCI+CiAgICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHlhcnI8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9jb3B5Rm9yd2FyZGluZ0hlYWRlcnMuY21kIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL2NvcHlGb3J3YXJkaW5nSGVhZGVycy5jbWQKaW5kZXggMTI2ZWFjNWI5MTM0MzJj
NmVlNmE2YzA0Nzg2ZTE5NGU3NzMwNjUzNi4uZWVlZjQ2OTQxNzNmYTUwNGZmNGY3YWE3MzIxZGQw
YTFkN2I3Y2ZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL2Nv
cHlGb3J3YXJkaW5nSGVhZGVycy5jbWQKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL2NvcHlGb3J3YXJkaW5nSGVhZGVycy5jbWQKQEAgLTEzLDYgKzEzLDcgQEAgZWNobyBDb3B5
aW5nIEZvcndhcmRpbmcgSGVhZGVycy4uLgogQG1rZGlyIDI+TlVMICIlQ09ORklHVVJBVElPTkJV
SUxERElSJVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnNcaGVhcCIKIEBta2RpciAy
Pk5VTCAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdI
ZWFkZXJzXGluc3BlY3RvciIKIEBta2RpciAyPk5VTCAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVc
aW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzXGludGVycHJldGVyIgorQG1rZGlyIDI+
TlVMICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hl
YWRlcnNcdG9vbHMiCiBAbWtkaXIgMj5OVUwgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1
ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVyc1x5YXJyIgogQG1rZGlyIDI+TlVMICIlQ09ORklH
VVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmVUZXN0U3VwcG9ydCIKIApAQCAtMTA5LDYg
KzExMCw3IEBAIGVjaG8gQ29weWluZyBGb3J3YXJkaW5nIEhlYWRlcnMuLi4KIEB4Y29weSAveSAv
ZCAiJVByb2plY3REaXIlLi5cRm9yd2FyZGluZ0hlYWRlcnNcaGVhcFwqLmgiICIlQ09ORklHVVJB
VElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnNcaGVhcCIgPm51
bCAyPm51bAogQHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxGb3J3YXJkaW5nSGVhZGVyc1xp
bnNwZWN0b3JcKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlXEZv
cndhcmRpbmdIZWFkZXJzXGluc3BlY3RvciIgPm51bCAgMj5udWwKIEB4Y29weSAveSAvZCAiJVBy
b2plY3REaXIlLi5cRm9yd2FyZGluZ0hlYWRlcnNcaW50ZXJwcmV0ZXJcKi5oIiAiJUNPTkZJR1VS
QVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzXGludGVycHJl
dGVyIiA+bnVsICAyPm51bAorQHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxGb3J3YXJkaW5n
SGVhZGVyc1x0b29sc1wqLmgiICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNv
cmVcRm9yd2FyZGluZ0hlYWRlcnNcdG9vbHMiID5udWwgIDI+bnVsCiBAeGNvcHkgL3kgL2QgIiVQ
cm9qZWN0RGlyJS4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcKi5oIiAiJUNPTkZJR1VSQVRJT05C
VUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzXHlhcnIiID5udWwgMj5u
dWwKIAogQHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlx0ZXN0aW5nXGpzXFdlYkNvcmVUZXN0
U3VwcG9ydC5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlVGVzdFN1
cHBvcnQiID5udWwgMj5udWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUmVwbGF5QWdlbnQuY3BwCmluZGV4IDQ3OWI3MTA4ZmFjNDg4MDFmYjI5ZDczOTljNjRlNGI5
MDM4YTQ2OGEuLjYxMDIzYjY0YzVhZDhhZDQ2MTIzZTdkNDlkYWJmZmRhN2ZiMDMwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXBsYXlBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlcGxheUFnZW50LmNwcApA
QCAtMzcsMTYgKzM3LDE2IEBACiAjaW5jbHVkZSAiRnVuY3RvcklucHV0Q3Vyc29yLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2Vu
dC5oIgotI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZXBsYXlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
UmVwbGF5U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlJlcGxheVNlc3Npb25TZWdtZW50LmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXphdGlvbk1ldGhvZHMuaCIKICNpbmNsdWRlICJXZWJSZXBsYXlJbnB1dHMu
aCIgLy8gRm9yIEVuY29kaW5nVHJhaXRzPElucHV0UXVldWU+LgorI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JQcm90b2NvbE9iamVjdHMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVj
dG9yVmFsdWVzLmg+CisjaW5jbHVkZSA8dG9vbHMvTG9nZ2luZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDE5MjEyOTliMTk0Y2Q1MjRmY2EwZDRkZmYzMWExMGUx
MjEyYmRmMDIuLjA4NGNhYjZkODBhMjVkMmUzZTRiMTIwYjdhZWYyYzMzMjI5NjAwMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTY1LDcgKzY1LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9ja2luZykgXAogICAgIE0oUHJv
Z3Jlc3MpIFwKLSAgICBNKFJlbW90ZUluc3BlY3RvcikgXAogICAgIE0oUmVzb3VyY2VMb2FkaW5n
KSBcCiAgICAgTShTUUxEYXRhYmFzZSkgXAogICAgIE0oU2VydmljZXMpIFwKQEAgLTc0LDcgKzcz
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oVGhyZWFkaW5nKSBcCiAgICAgTShXZWJB
dWRpbykgXAogICAgIE0oV2ViR0wpIFwKLSAgICBNKFdlYlJlcGxheSkgXAogICAgIE0oV2hlZWxF
dmVudFRlc3RUcmlnZ2VycykgXAogCiAjZGVmaW5lIERFQ0xBUkVfTE9HX0NIQU5ORUwobmFtZSkg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9DYXB0dXJpbmdJbnB1dEN1cnNvci5jcHAKaW5k
ZXggMDNjZWU5MjAwNDA5NWYxOTE4OTRiNzczN2EyOWJmOWYxMTc0NjYzOS4uYjQ2MzZhOGJhYmRh
ODkxZmE1YTg0MzVhNWIzZjI5NDQzMGZkMDY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVwbGF5L0NhcHR1cmluZ0lucHV0Q3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvQ2FwdHVyaW5nSW5wdXRDdXJzb3IuY3BwCkBAIC0zMSw5ICszMSw5IEBACiAjaWYgRU5BQkxF
KFdFQl9SRVBMQVkpCiAKICNpbmNsdWRlICJFdmVudExvb3BJbnB1dC5oIgotI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKICNpbmNsdWRlICJSZXBsYXlTZXNzaW9uU2VnbWVudC5oIgogI2luY2x1ZGUgIlNl
Z21lbnRlZElucHV0U3RvcmFnZS5oIgorI2luY2x1ZGUgPHRvb2xzL0xvZ2dpbmcuaD4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L0V2ZW50TG9vcElucHV0RGlzcGF0Y2hlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZXBsYXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcAppbmRleCBj
ZDhiOTNjMzBlNjJiNDdhYTNhMzk4MDdhODhmNGQ4MWE5NjFjYzk5Li4wNWZlMmRmZWQ2MWFkZmQz
MDJkYTFmNzViNGZiYjUzMGRiNDk0ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvRXZlbnRMb29wSW5wdXREaXNwYXRjaGVyLmNwcApAQCAtMzYsOSArMzYsOSBAQAogI2luY2x1
ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAogI2lmICFMT0dfRElTQUJMRUQKLSNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXphdGlvbk1ldGhvZHMuaCIKICNpbmNsdWRl
IDxyZXBsYXkvRW5jb2RlZFZhbHVlLmg+CisjaW5jbHVkZSA8dG9vbHMvTG9nZ2luZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZXBsYXkvUmVwbGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBs
YXkvUmVwbGF5Q29udHJvbGxlci5jcHAKaW5kZXggMDc2NDI5NjBhMmFmY2YzMGQ3ZGU3ZDcyYmMz
MmNlZTI4YTQ4MGQzZi4uM2MzNDEwYmEyY2ZmMTkyODYzZjVjNjc3MTMxYjAxNGNkYTdmOTIwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1JlcGxheUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9SZXBsYXlDb250cm9sbGVyLmNwcApAQCAtMzgsNyAr
MzgsNiBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
ZXBsYXlTZXNzaW9uLmgiCkBAIC01MCw2ICs0OSw3IEBACiAjaW5jbHVkZSAiVXNlcklucHV0QnJp
ZGdlLmgiCiAjaW5jbHVkZSAiV2ViUmVwbGF5SW5wdXRzLmgiCiAjaW5jbHVkZSA8cmVwbGF5L0Vt
cHR5SW5wdXRDdXJzb3IuaD4KKyNpbmNsdWRlIDx0b29scy9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9TZWdtZW50ZWRJbnB1dFN0b3JhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVwbGF5L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHAKaW5kZXggMjE0
MjQ5YmZkMTg5Njg2YjIwYmVlYzgyMzVmNWExMzJkMzhhZjIyZS4uMzc1NDU5ZWVkMTc0OTBhMGVh
NWQ4YTc5N2U4MjAyMjhlMWNiMjVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5
L1NlZ21lbnRlZElucHV0U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1Nl
Z21lbnRlZElucHV0U3RvcmFnZS5jcHAKQEAgLTMxLDkgKzMxLDkgQEAKICNpZiBFTkFCTEUoV0VC
X1JFUExBWSkKIAogI2lmICFMT0dfRElTQUJMRUQKLSNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXphdGlvbk1ldGhvZHMuaCIKICNpbmNsdWRlIDxyZXBsYXkvRW5jb2RlZFZh
bHVlLmg+CisjaW5jbHVkZSA8dG9vbHMvTG9nZ2luZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgo=
</data>
<flag name="review"
          id="285814"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>