<?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>192473</bug_id>
          
          <creation_ts>2018-12-06 13:08:32 -0800</creation_ts>
          <short_desc>WKWebProcessPlugInLoadDelegate should have API for saying which rendering events it wants to listen for</short_desc>
          <delta_ts>2018-12-08 09:38:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1485784</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-06 13:08:32 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485785</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-06 13:08:48 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #0)
&gt; ...

Patch forthcoming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485877</commentid>
    <comment_count>2</comment_count>
      <attachid>356765</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-06 16:48:02 -0800</bug_when>
    <thetext>Created attachment 356765
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485880</commentid>
    <comment_count>3</comment_count>
      <attachid>356765</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-12-06 16:53:24 -0800</bug_when>
    <thetext>Comment on attachment 356765
patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:56
&gt; +- (_WKRenderingProgressEvents)getLayoutMilestonesWithWebProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller;

The layout milestones / rendering progress events terminology mismatch is a little strange here.

But assuming you keep &quot;layout milestones&quot; term, the right name for this selector would be -webProcessPlugInBrowserContextControllerLayoutMilestones:.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485893</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-06 17:28:57 -0800</bug_when>
    <thetext>(In reply to Andy Estes from comment #3)
&gt; Comment on attachment 356765 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=356765&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:56
&gt; &gt; +- (_WKRenderingProgressEvents)getLayoutMilestonesWithWebProcessPlugInBrowserContextController:(WKWebProcessPlugInBrowserContextController*)controller;
&gt; 
&gt; The layout milestones / rendering progress events terminology mismatch is a
&gt; little strange here.
Good point. I forgot to change the name to reflect the type when I changed the type. Will update.
&gt; 
&gt; But assuming you keep &quot;layout milestones&quot; term, the right name for this
&gt; selector would be -webProcessPlugInBrowserContextControllerLayoutMilestones:.

👍🏼</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485894</commentid>
    <comment_count>5</comment_count>
      <attachid>356771</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-06 17:32:22 -0800</bug_when>
    <thetext>Created attachment 356771
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486093</commentid>
    <comment_count>6</comment_count>
      <attachid>356771</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2018-12-07 11:33:35 -0800</bug_when>
    <thetext>Comment on attachment 356771
patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:56
&gt; +- (_WKRenderingProgressEvents)webProcessPlugInBrowserContextControllerRenderingProgressEvents:(WKWebProcessPlugInBrowserContextController*)controller;

WKWebProcessPlugInBrowserContextController *</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486116</commentid>
    <comment_count>7</comment_count>
      <attachid>356771</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-07 12:39:54 -0800</bug_when>
    <thetext>Comment on attachment 356771
patch

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

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:56
&gt;&gt; +- (_WKRenderingProgressEvents)webProcessPlugInBrowserContextControllerRenderingProgressEvents:(WKWebProcessPlugInBrowserContextController*)controller;
&gt; 
&gt; WKWebProcessPlugInBrowserContextController *

Will fix. Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486117</commentid>
    <comment_count>8</comment_count>
      <attachid>356831</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-07 12:41:40 -0800</bug_when>
    <thetext>Created attachment 356831
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486154</commentid>
    <comment_count>9</comment_count>
      <attachid>356831</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-07 14:35:14 -0800</bug_when>
    <thetext>Comment on attachment 356831
patch for landing

Clearing flags on attachment: 356831

Committed r238969: &lt;https://trac.webkit.org/changeset/238969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486155</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-07 14:35:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486157</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-07 14:36:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/46565296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486243</commentid>
    <comment_count>12</comment_count>
      <attachid>356831</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-12-07 17:01:58 -0800</bug_when>
    <thetext>Comment on attachment 356831
patch for landing

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:56
&gt; +- (_WKRenderingProgressEvents)webProcessPlugInBrowserContextControllerRenderingProgressEvents:(WKWebProcessPlugInBrowserContextController *)controller;

I think this should&apos;ve been completion handler based.  There&apos;s no reason this needs to be synchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486309</commentid>
    <comment_count>13</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-08 09:38:20 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #12)
&gt; Comment on attachment 356831 [details]
&gt; patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=356831&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:56
&gt; &gt; +- (_WKRenderingProgressEvents)webProcessPlugInBrowserContextControllerRenderingProgressEvents:(WKWebProcessPlugInBrowserContextController *)controller;
&gt; 
&gt; I think this should&apos;ve been completion handler based.  There&apos;s no reason
&gt; this needs to be synchronous.

That’s not right. WebKit calls this expecting a response</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356765</attachid>
            <date>2018-12-06 16:48:02 -0800</date>
            <delta_ts>2018-12-06 17:32:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>19987</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzg5MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEyLTA2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIHNheWluZyB3aGljaCByZW5kZXJpbmcgZXZlbnRz
IGl0IHdhbnRzIHRvIGxpc3RlbiBmb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5tbToKKyAgICAgICAgKFBhZ2VMb2FkZXJDbGllbnQ6OmxheW91dE1pbGVzdG9uZXMgY29u
c3QpOgorCiAyMDE4LTEyLTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJFR1JFU1NJT04oUFNPTik6IFByb2Nlc3Mgc3dhcHBpbmcgY29kZSBkb2Vzbid0IHNl
dCBEaXNwbGF5SUQgaW4gV2ViQ29udGVudCBwcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgJKHJldmlz
aW9uIDIzODkyNykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDYgKzUzLDcgQEAKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKilj
b250cm9sbGVyIGRpZExheW91dEZvckZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZy
YW1lOwogLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRyb2xsZXIgcmVu
ZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKWV2ZW50
czsKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKiljb250cm9sbGVyIGRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZSAqKWZyYW1lOworLSAoX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpZ2V0TGF5b3V0TWlsZXN0
b25lc1dpdGhXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRyb2xsZXI7CiAKIC8vIFJl
c291cmNlIGxvYWRpbmcKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQko
cmV2aXNpb24gMjM4OTI3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2Vi
S2l0OjpXZWJGcmFtZSYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZExheW91dEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKFdlYktpdDo6V2ViUGFn
ZSYsIE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+LCBSZWZQdHI8QVBJOjpPYmpl
Y3Q+Jikgb3ZlcnJpZGU7CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4g
bGF5b3V0TWlsZXN0b25lcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlkSGFu
ZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFt
ZSYpIG92ZXJyaWRlOwogICAgIApAQCAtMjMyLDYgKzIzMywxNiBAQCB2b2lkIFBhZ2VMb2FkZXJD
bGllbnQ6OmRpZEZpcnN0VmlzdWFsbHlOCiAgICAgICAgIFtsb2FkRGVsZWdhdGUoKSB3ZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVy
KCkgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU6d3JhcHBlcihmcmFtZSld
OwogfQogCitPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBQYWdlTG9hZGVyQ2xp
ZW50OjpsYXlvdXRNaWxlc3RvbmVzKCkgY29uc3QKK3sKKyAgICBpZiAoW2xvYWREZWxlZ2F0ZSgp
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoZ2V0TGF5b3V0TWlsZXN0b25lc1dpdGhXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOildKSB7CisgICAgICAgIF9XS1Jl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzIG1pbGVzdG9uZXMgPSBbbG9hZERlbGVnYXRlKCkgZ2V0TGF5
b3V0TWlsZXN0b25lc1dpdGhXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
OnBsdWdpbkNvbnRleHRDb250cm9sbGVyKCldOworICAgICAgICByZXR1cm4gV2ViS2l0Ojp0b0xh
eW91dE1pbGVzdG9uZXMoc3RhdGljX2Nhc3Q8V0tMYXlvdXRNaWxlc3RvbmVzPihtaWxlc3RvbmVz
KSk7CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYWdlTG9hZGVyQ2xpZW50
OjpkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6
OldlYkZyYW1lJiBmcmFtZSkKIHsKICAgICBpZiAoW2xvYWREZWxlZ2F0ZSgpIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjpkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZTopXSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODk0NSkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTEyLTA2
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViUHJvY2Vz
c1BsdWdJbkxvYWREZWxlZ2F0ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIHNheWluZyB3aGljaCByZW5k
ZXJpbmcgZXZlbnRzIGl0IHdhbnRzIHRvIGxpc3RlbiBmb3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQ3MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzcy5tbTogQWRkZWQuCisgICAgICAgICgtW0Rp
ZEZpcnN0TWVhbmluZ2Z1bFBhaW50UmVtb3RlT2JqZWN0IGRpZEZpcnN0TWVhbmluZ2Z1bFBhaW50
XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bUmVu
ZGVyaW5nUHJvZ3Jlc3NQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1JlbmRlcmluZ1Byb2dyZXNzUGx1Z0luIGdl
dExheW91dE1pbGVzdG9uZXNXaXRoV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjpdKToKKyAgICAgICAgKC1bUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4gd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpyZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpd
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1By
b2dyZXNzUHJvdG9jb2wuaDogQWRkZWQuCisKIDIwMTgtMTItMDYgIEpvbmF0aGFuIEJlZGFyZCAg
PGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IHJ1bi13ZWJraXQtdGVz
dHMgbWF5IGZhaWwgd2hlbiB1c2luZyBib290ZWQgc2ltdWxhdG9ycwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIzODkyNykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzUsOSArMjM1LDExIEBACiAJCTUxRTZBODk2MUQyRjFDQTcwMEMwMDRCNiAvKiBMb2NhbFN0b3Jh
Z2VDbGVhci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRTZBODk1MUQyRjFDNzcwMEMwMDRCNiAvKiBMb2NhbFN0b3JhZ2VDbGVhci5o
dG1sICovOyB9OwogCQk1MUVCMTI5NDFGREYwNTI1MDBBNUExQkQgLyogU2VydmljZVdvcmtlckJh
c2ljLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
QjEyOTMxRkRGMDUwNTAwQTVBMUJEIC8qIFNlcnZpY2VXb3JrZXJCYXNpYy5tbSAqLzsgfTsKIAkJ
NTIwQkNGNEMxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMEJDRjRBMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi87IH07CisJCTUyNDUxNzg3MjFCOUY1
N0IwMDgyQ0IzNCAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVENkJFMjFCOUYxQjIwMDQ2QUJBNiAv
KiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSAqLzsgfTsKIAkJNTI0QkJDOUUxOURGNzJDMDAw
MkYxQUYxIC8qIGZpbGUtd2l0aC12aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQzlCMTlERjM3MTQwMDJGMUFGMSAvKiBm
aWxlLXdpdGgtdmlkZW8uaHRtbCAqLzsgfTsKIAkJNTI0QkJDQTExOUUzMEM3NzAwMkYxQUYxIC8q
IHRlc3QubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyNEJCQ0EwMTlFMzBDNjMwMDJGMUFGMSAvKiB0ZXN0Lm1wNCAqLzsgfTsKIAkJNTJC
OENGOTgxNTg2OEQ5MTAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCOENGOTQxNTg2OENG
MDAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgKi87IH07CisJCTUyRDVENkMwMjFCOUYx
QjMwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVENkJEMjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5k
ZXJpbmdQcm9ncmVzcy5tbSAqLzsgfTsKIAkJNTJENjczRUUxQUZCMTI3MzAwRkExOUZFIC8qIFdL
UGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDY3M0VDMUFGQjEyNjgwMEZBMTlGRSAvKiBX
S1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgKi87IH07CiAJCTUyRTVDRTQ5
MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJFNUNFNDgxNEQyMUVBQjAwM0IyQkQ4
IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi87IH07CiAJCTUzMTFCRDVFMUVBOTQ5MEUwMDUy
NTI4MSAvKiBUaHJlYWRNZXNzYWdlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MzExQkQ1RDFFQTk0OTBEMDA1MjUyODEgLyogVGhyZWFkTWVzc2Fn
ZXMuY3BwICovOyB9OwpAQCAtMTU3OCw2ICsxNTgwLDkgQEAKIAkJNTJCOENGOTQxNTg2OENGMDAw
MjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSBTZXREb2N1bWVudFVSSS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkI4
Q0Y5NTE1ODY4Q0YwMDAyODEwNTMgLyogU2V0RG9jdW1lbnRVUkkubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXREb2N1bWVudFVSSS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjQ3NDAxNDQ4RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5h
dGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlV
UkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1RDZCRDIxQjlGMUIyMDA0
NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSZW5kZXJpbmdQcm9ncmVzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTJENUQ2QkUyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1
Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVuZGVyaW5n
UHJvZ3Jlc3NQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVENkJG
MjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9ncmVzc1Byb3RvY29sLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENjczRUMxQUZCMTI2ODAwRkExOUZFIC8qIFdL
UGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLUGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4
IC8qIFBhcmVudEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhcmVudEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDgx
NEQyMUVBQjAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjQ5NSw2ICsyNTAwLDkgQEAKIAkJCQlBMTJEREJGOTFFODM2
RjA3MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zLm1tICovLAogCQkJCUExMkRE
QkZDMUU4MzZGRjEwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0g
Ki8sCiAJCQkJQTEyRERDMDExRTgzNzRGNTAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRoT3B0
aW9uc1Byb3RvY29sLmggKi8sCisJCQkJNTJENUQ2QkQyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRl
cmluZ1Byb2dyZXNzLm1tICovLAorCQkJCTUyRDVENkJFMjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5k
ZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSAqLywKKwkJCQk1MkQ1RDZCRjIxQjlGMUIyMDA0NkFCQTYg
LyogUmVuZGVyaW5nUHJvZ3Jlc3NQcm90b2NvbC5oICovLAogCQkJCUNEOUUyOTJCMUM5MEE3MUYw
MDBCQjgwMCAvKiBSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFjay5tbSAqLywKIAkJCQk1MUM4
RTFBNDFGMjZBQzU0MDBCRjczMUIgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSAqLywKIAkJ
CQk1Q0NCMTBFMDIxMzQ1NzlEMDBBQzVBRjAgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5tbSAqLywK
QEAgLTM5MTMsNiArMzkyMSw3IEBACiAJCQkJQTE1NTAyMkExRTA1MDIwQjAwQTI0QzU3IC8qIER1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0VCRTFBNDExQTdFMDA0NDdDNEMgLyogRHluYW1pY0RldmljZVNjYWxlRmFjdG9yLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUMwQkY4OTIxREQ1OTlCNjAwQjAwMzI4IC8qIEVhcmx5S1ZPQ3Jhc2gu
bW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1RDZDMDIxQjlGMUIzMDA0NkFCQTYgLyogUmVuZGVy
aW5nUHJvZ3Jlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDREMDY0QTFGMzk2MkYyMDAxQTBF
MjkgLyogRWRpdGluZ1Rlc3RIYXJuZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAx
QTQxMUE5QTAwNDQ3QzRDIC8qIEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjQ0RDA2NDcxRjM5NjI3QTAwMUEwRTI5IC8qIEVkaXRvclN0YXRlVGVzdHMubW0gaW4gU291cmNl
cyAqLywKQEAgLTQyODIsNiArNDI5MSw3IEBACiAJCQkJMEU0MDRBOEMyMTY2REUwQTAwODI3MUJB
IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzU2VsZWN0RWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTc5QzVENDMxMjA5RDc2ODMwMEYxRTdDQSAvKiBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGVJc1RleHRGaWVsZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NEM3QTAwMjBGOUVFQkYw
MDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTI0NTE3ODcyMUI5RjU3QjAwODJDQjM0IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTRGODFDRjFCREZGRDUzMDA0RTY3
MkUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
MTJEREMwMjFFODM3QzI0MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1JlbmRlcmluZ1Byb2dyZXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVuZGVyaW5nUHJvZ3Jlc3MubW0JKG5vbmV4aXN0ZW50
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9n
cmVzcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBX
S19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
UmVuZGVyaW5nUHJvZ3Jlc3NQcm90b2NvbC5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAi
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2lt
cG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRy
b2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJL
aXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorCitzdGF0aWMgYm9vbCBkaWRPYnNlcnZlRmlyc3RNZWFuaW5nZnVsUGFpbnQ7CisK
K0BpbnRlcmZhY2UgRGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRSZW1vdGVPYmplY3QgOiBOU09iamVj
dCA8RGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRQcm90b2NvbD4KK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIERpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UmVtb3RlT2JqZWN0CistICh2b2lkKWRpZEZpcnN0
TWVhbmluZ2Z1bFBhaW50Cit7CisgICAgZGlkT2JzZXJ2ZUZpcnN0TWVhbmluZ2Z1bFBhaW50ID0g
dHJ1ZTsKK30KK0BlbmQKKworVEVTVChSZW5kZXJpbmdQcm9ncmVzcywgRmlyc3RNZWFuaW5nZnVs
UGFpbnQpCit7CisgICAgTlNTdHJpbmcgKiBjb25zdCB0ZXN0UGx1Z0luQ2xhc3NOYW1lID0gQCJS
ZW5kZXJpbmdQcm9ncmVzc1BsdWdJbiI7CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IHJldGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6dGVzdFBsdWdJbkNs
YXNzTmFtZV0pOworICAgIAorICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAg
ICBSZXRhaW5QdHI8RGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRSZW1vdGVPYmplY3Q+IG9iamVjdCA9
IGFkb3B0TlMoW1tEaWRGaXJzdE1lYW5pbmdmdWxQYWludFJlbW90ZU9iamVjdCBhbGxvY10gaW5p
dF0pOworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNlID0gW19XS1JlbW90
ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6QHByb3Rv
Y29sKERpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UHJvdG9jb2wpXTsKKyAgICBbW3dlYlZpZXcgX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5nZXQoKSBp
bnRlcmZhY2U6aW50ZXJmYWNlXTsKKworICAgIGRpZE9ic2VydmVGaXJzdE1lYW5pbmdmdWxQYWlu
dCA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0n
YmFja2dyb3VuZC1jb2xvcjogcmVkOyc+PC9ib2R5PiIgYmFzZVVSTDpuaWxdOworCisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRPYnNlcnZlRmlyc3RNZWFuaW5nZnVsUGFpbnQpOwor
fQorCisjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbQkobm9uZXhp
c3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmlu
Z1Byb2dyZXNzUGx1Z0luLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJSZW5kZXJpbmdQcm9ncmVzc1Byb3Rv
Y29sLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaD4KKyNpbXBvcnQgPFdlYktpdC9f
V0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIFJl
bmRlcmluZ1Byb2dyZXNzUGx1Z0luIDogTlNPYmplY3QgPFdLV2ViUHJvY2Vzc1BsdWdJbiwgV0tX
ZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gUmVu
ZGVyaW5nUHJvZ3Jlc3NQbHVnSW4geworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAg
UmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5Db250cm9sbGVy
OworICAgIFJldGFpblB0cjxpZCA8RGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRQcm90b2NvbD4+IF9y
ZW1vdGVPYmplY3Q7Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNz
UGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIg
Kilicm93c2VyQ29udGV4dENvbnRyb2xsZXIKK3sKKyAgICBBU1NFUlQoIV9icm93c2VyQ29udGV4
dENvbnRyb2xsZXIpOworICAgIEFTU0VSVCghX3BsdWdJbkNvbnRyb2xsZXIpOworICAgIF9icm93
c2VyQ29udGV4dENvbnRyb2xsZXIgPSBicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAgX3Bs
dWdJbkNvbnRyb2xsZXIgPSBwbHVnSW5Db250cm9sbGVyOworCisgICAgX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9i
amVjdEludGVyZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woRGlkRmlyc3RNZWFuaW5nZnVsUGFp
bnRQcm90b2NvbCldOworICAgIF9yZW1vdGVPYmplY3QgPSBbW2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlciBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFj
ZTppbnRlcmZhY2VdOworCisgICAgW19icm93c2VyQ29udGV4dENvbnRyb2xsZXIgc2V0TG9hZERl
bGVnYXRlOnNlbGZdOworfQorCistIChfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cylnZXRMYXlv
dXRNaWxlc3RvbmVzV2l0aFdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6
KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciopY29udHJvbGxlcgor
eworICAgIHJldHVybiBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RNZWFuaW5nZnVsUGFp
bnQ7Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKiljb250cm9sbGVy
IHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOihfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyll
dmVudHMKK3sKKyAgICBpZiAoZXZlbnRzICYgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0
TWVhbmluZ2Z1bFBhaW50KQorICAgICAgICBbX3JlbW90ZU9iamVjdCBkaWRGaXJzdE1lYW5pbmdm
dWxQYWludF07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUHJv
dG9jb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1JlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaAkobm9uZXhpc3RlbnQpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQHByb3RvY29s
IERpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UHJvdG9jb2wgPE5TT2JqZWN0PgorLSAodm9pZClkaWRG
aXJzdE1lYW5pbmdmdWxQYWludDsKK0BlbmQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356771</attachid>
            <date>2018-12-06 17:32:22 -0800</date>
            <delta_ts>2018-12-07 12:41:40 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>19987</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzg5MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEyLTA2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIHNheWluZyB3aGljaCByZW5kZXJpbmcgZXZlbnRz
IGl0IHdhbnRzIHRvIGxpc3RlbiBmb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tX
ZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlci5tbToKKyAgICAgICAgKFBhZ2VMb2FkZXJDbGllbnQ6OmxheW91dE1pbGVzdG9uZXMgY29u
c3QpOgorCiAyMDE4LTEyLTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJFR1JFU1NJT04oUFNPTik6IFByb2Nlc3Mgc3dhcHBpbmcgY29kZSBkb2Vzbid0IHNl
dCBEaXNwbGF5SUQgaW4gV2ViQ29udGVudCBwcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgJKHJldmlz
aW9uIDIzODkyNykKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUzLDYgKzUzLDcgQEAKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKilj
b250cm9sbGVyIGRpZExheW91dEZvckZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqKWZy
YW1lOwogLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihX
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRyb2xsZXIgcmVu
ZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKWV2ZW50
czsKIC0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKiljb250cm9sbGVyIGRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lOihXS1dlYlByb2Nlc3NQbHVnSW5GcmFt
ZSAqKWZyYW1lOworLSAoX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpd2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRyb2xsZXI7CiAKIC8vIFJl
c291cmNlIGxvYWRpbmcKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQko
cmV2aXNpb24gMjM4OTI3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2Vi
S2l0OjpXZWJGcmFtZSYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZExheW91dEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKFdlYktpdDo6V2ViUGFn
ZSYsIE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+LCBSZWZQdHI8QVBJOjpPYmpl
Y3Q+Jikgb3ZlcnJpZGU7CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4g
bGF5b3V0TWlsZXN0b25lcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlkSGFu
ZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFt
ZSYpIG92ZXJyaWRlOwogICAgIApAQCAtMjMyLDYgKzIzMywxNiBAQCB2b2lkIFBhZ2VMb2FkZXJD
bGllbnQ6OmRpZEZpcnN0VmlzdWFsbHlOCiAgICAgICAgIFtsb2FkRGVsZWdhdGUoKSB3ZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVy
KCkgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU6d3JhcHBlcihmcmFtZSld
OwogfQogCitPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBQYWdlTG9hZGVyQ2xp
ZW50OjpsYXlvdXRNaWxlc3RvbmVzKCkgY29uc3QKK3sKKyAgICBpZiAoW2xvYWREZWxlZ2F0ZSgp
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250
ZXh0Q29udHJvbGxlclJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzOildKSB7CisgICAgICAgIF9XS1Jl
bmRlcmluZ1Byb2dyZXNzRXZlbnRzIG1pbGVzdG9uZXMgPSBbbG9hZERlbGVnYXRlKCkgd2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclJlbmRlcmluZ1Byb2dyZXNzRXZlbnRz
OnBsdWdpbkNvbnRleHRDb250cm9sbGVyKCldOworICAgICAgICByZXR1cm4gV2ViS2l0Ojp0b0xh
eW91dE1pbGVzdG9uZXMoc3RhdGljX2Nhc3Q8V0tMYXlvdXRNaWxlc3RvbmVzPihtaWxlc3RvbmVz
KSk7CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYWdlTG9hZGVyQ2xpZW50
OjpkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6
OldlYkZyYW1lJiBmcmFtZSkKIHsKICAgICBpZiAoW2xvYWREZWxlZ2F0ZSgpIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjpkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZTopXSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODk0NSkKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTEyLTA2
ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViUHJvY2Vz
c1BsdWdJbkxvYWREZWxlZ2F0ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIHNheWluZyB3aGljaCByZW5k
ZXJpbmcgZXZlbnRzIGl0IHdhbnRzIHRvIGxpc3RlbiBmb3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQ3MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzcy5tbTogQWRkZWQuCisgICAgICAgICgtW0Rp
ZEZpcnN0TWVhbmluZ2Z1bFBhaW50UmVtb3RlT2JqZWN0IGRpZEZpcnN0TWVhbmluZ2Z1bFBhaW50
XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bUmVu
ZGVyaW5nUHJvZ3Jlc3NQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29u
dGV4dENvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1JlbmRlcmluZ1Byb2dyZXNzUGx1Z0luIHdl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJSZW5kZXJpbmdQcm9ncmVzc0V2
ZW50czpdKToKKyAgICAgICAgKC1bUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4gd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpyZW5kZXJpbmdQcm9ncmVzc0RpZENoYW5nZTpd
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1By
b2dyZXNzUHJvdG9jb2wuaDogQWRkZWQuCisKIDIwMTgtMTItMDYgIEpvbmF0aGFuIEJlZGFyZCAg
PGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IHJ1bi13ZWJraXQtdGVz
dHMgbWF5IGZhaWwgd2hlbiB1c2luZyBib290ZWQgc2ltdWxhdG9ycwpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIzODkyNykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzUsOSArMjM1LDExIEBACiAJCTUxRTZBODk2MUQyRjFDQTcwMEMwMDRCNiAvKiBMb2NhbFN0b3Jh
Z2VDbGVhci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRTZBODk1MUQyRjFDNzcwMEMwMDRCNiAvKiBMb2NhbFN0b3JhZ2VDbGVhci5o
dG1sICovOyB9OwogCQk1MUVCMTI5NDFGREYwNTI1MDBBNUExQkQgLyogU2VydmljZVdvcmtlckJh
c2ljLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFF
QjEyOTMxRkRGMDUwNTAwQTVBMUJEIC8qIFNlcnZpY2VXb3JrZXJCYXNpYy5tbSAqLzsgfTsKIAkJ
NTIwQkNGNEMxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMEJDRjRBMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi87IH07CisJCTUyNDUxNzg3MjFCOUY1
N0IwMDgyQ0IzNCAvKiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVENkJFMjFCOUYxQjIwMDQ2QUJBNiAv
KiBSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSAqLzsgfTsKIAkJNTI0QkJDOUUxOURGNzJDMDAw
MkYxQUYxIC8qIGZpbGUtd2l0aC12aWRlby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNEJCQzlCMTlERjM3MTQwMDJGMUFGMSAvKiBm
aWxlLXdpdGgtdmlkZW8uaHRtbCAqLzsgfTsKIAkJNTI0QkJDQTExOUUzMEM3NzAwMkYxQUYxIC8q
IHRlc3QubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyNEJCQ0EwMTlFMzBDNjMwMDJGMUFGMSAvKiB0ZXN0Lm1wNCAqLzsgfTsKIAkJNTJC
OENGOTgxNTg2OEQ5MTAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJCOENGOTQxNTg2OENG
MDAwMjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgKi87IH07CisJCTUyRDVENkMwMjFCOUYx
QjMwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9ncmVzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVENkJEMjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5k
ZXJpbmdQcm9ncmVzcy5tbSAqLzsgfTsKIAkJNTJENjczRUUxQUZCMTI3MzAwRkExOUZFIC8qIFdL
UGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDY3M0VDMUFGQjEyNjgwMEZBMTlGRSAvKiBX
S1BhZ2VDb3B5U2Vzc2lvblN0YXRlV2l0aEZpbHRlcmluZy5jcHAgKi87IH07CiAJCTUyRTVDRTQ5
MTREMjFFQUIwMDNCMkJEOCAvKiBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJFNUNFNDgxNEQyMUVBQjAwM0IyQkQ4
IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi87IH07CiAJCTUzMTFCRDVFMUVBOTQ5MEUwMDUy
NTI4MSAvKiBUaHJlYWRNZXNzYWdlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MzExQkQ1RDFFQTk0OTBEMDA1MjUyODEgLyogVGhyZWFkTWVzc2Fn
ZXMuY3BwICovOyB9OwpAQCAtMTU3OCw2ICsxNTgwLDkgQEAKIAkJNTJCOENGOTQxNTg2OENGMDAw
MjgxMDUzIC8qIFNldERvY3VtZW50VVJJLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSBTZXREb2N1bWVudFVSSS5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkI4
Q0Y5NTE1ODY4Q0YwMDAyODEwNTMgLyogU2V0RG9jdW1lbnRVUkkubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZXREb2N1bWVudFVSSS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTJDQjQ3NDAxNDQ4RkI5MzAwODczOTk1IC8qIExvYWRBbHRlcm5h
dGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlV
UkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkQ1RDZCRDIxQjlGMUIyMDA0
NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSZW5kZXJpbmdQcm9ncmVzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTJENUQ2QkUyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1
Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVuZGVyaW5n
UHJvZ3Jlc3NQbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVENkJG
MjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9ncmVzc1Byb3RvY29sLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENjczRUMxQUZCMTI2ODAwRkExOUZFIC8qIFdL
UGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLUGFnZUNvcHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDUxNEQyMUU5RDAwM0IyQkQ4
IC8qIFBhcmVudEZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhcmVudEZyYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJFNUNFNDgx
NEQyMUVBQjAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJlbnRGcmFtZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjQ5NSw2ICsyNTAwLDkgQEAKIAkJCQlBMTJEREJGOTFFODM2
RjA3MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zLm1tICovLAogCQkJCUExMkRE
QkZDMUU4MzZGRjEwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0g
Ki8sCiAJCQkJQTEyRERDMDExRTgzNzRGNTAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRoT3B0
aW9uc1Byb3RvY29sLmggKi8sCisJCQkJNTJENUQ2QkQyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRl
cmluZ1Byb2dyZXNzLm1tICovLAorCQkJCTUyRDVENkJFMjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5k
ZXJpbmdQcm9ncmVzc1BsdWdJbi5tbSAqLywKKwkJCQk1MkQ1RDZCRjIxQjlGMUIyMDA0NkFCQTYg
LyogUmVuZGVyaW5nUHJvZ3Jlc3NQcm90b2NvbC5oICovLAogCQkJCUNEOUUyOTJCMUM5MEE3MUYw
MDBCQjgwMCAvKiBSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5YmFjay5tbSAqLywKIAkJCQk1MUM4
RTFBNDFGMjZBQzU0MDBCRjczMUIgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbSAqLywKIAkJ
CQk1Q0NCMTBFMDIxMzQ1NzlEMDBBQzVBRjAgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5tbSAqLywK
QEAgLTM5MTMsNiArMzkyMSw3IEBACiAJCQkJQTE1NTAyMkExRTA1MDIwQjAwQTI0QzU3IC8qIER1
cGxpY2F0ZUNvbXBsZXRpb25IYW5kbGVyQ2FsbHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NF
N0VCRTFBNDExQTdFMDA0NDdDNEMgLyogRHluYW1pY0RldmljZVNjYWxlRmFjdG9yLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUMwQkY4OTIxREQ1OTlCNjAwQjAwMzI4IC8qIEVhcmx5S1ZPQ3Jhc2gu
bW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkQ1RDZDMDIxQjlGMUIzMDA0NkFCQTYgLyogUmVuZGVy
aW5nUHJvZ3Jlc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDREMDY0QTFGMzk2MkYyMDAxQTBF
MjkgLyogRWRpdGluZ1Rlc3RIYXJuZXNzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTAx
QTQxMUE5QTAwNDQ3QzRDIC8qIEVkaXRvckNvbW1hbmRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjQ0RDA2NDcxRjM5NjI3QTAwMUEwRTI5IC8qIEVkaXRvclN0YXRlVGVzdHMubW0gaW4gU291cmNl
cyAqLywKQEAgLTQyODIsNiArNDI5MSw3IEBACiAJCQkJMEU0MDRBOEMyMTY2REUwQTAwODI3MUJB
IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzU2VsZWN0RWxlbWVudC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTc5QzVENDMxMjA5RDc2ODMwMEYxRTdDQSAvKiBJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGVJc1RleHRGaWVsZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NEM3QTAwMjBGOUVFQkYw
MDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTI0NTE3ODcyMUI5RjU3QjAwODJDQjM0IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTEzRUJCQUIxQjg3NDM0NjAwMDk3MTEwIC8qIFBsYXRmb3JtVXRp
bGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTRGODFDRjFCREZGRDUzMDA0RTY3
MkUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
MTJEREMwMjFFODM3QzI0MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUGx1Z0lu
Lm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1JlbmRlcmluZ1Byb2dyZXNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVuZGVyaW5nUHJvZ3Jlc3MubW0JKG5vbmV4aXN0ZW50
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9n
cmVzcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBX
S19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAi
UmVuZGVyaW5nUHJvZ3Jlc3NQcm90b2NvbC5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAi
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2lt
cG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4dHJhcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRy
b2xsZXJQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XZWJL
aXQuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorCitzdGF0aWMgYm9vbCBkaWRPYnNlcnZlRmlyc3RNZWFuaW5nZnVsUGFpbnQ7CisK
K0BpbnRlcmZhY2UgRGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRSZW1vdGVPYmplY3QgOiBOU09iamVj
dCA8RGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRQcm90b2NvbD4KK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIERpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UmVtb3RlT2JqZWN0CistICh2b2lkKWRpZEZpcnN0
TWVhbmluZ2Z1bFBhaW50Cit7CisgICAgZGlkT2JzZXJ2ZUZpcnN0TWVhbmluZ2Z1bFBhaW50ID0g
dHJ1ZTsKK30KK0BlbmQKKworVEVTVChSZW5kZXJpbmdQcm9ncmVzcywgRmlyc3RNZWFuaW5nZnVs
UGFpbnQpCit7CisgICAgTlNTdHJpbmcgKiBjb25zdCB0ZXN0UGx1Z0luQ2xhc3NOYW1lID0gQCJS
ZW5kZXJpbmdQcm9ncmVzc1BsdWdJbiI7CisKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IHJldGFpblB0cihbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6dGVzdFBsdWdJbkNs
YXNzTmFtZV0pOworICAgIAorICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisKKyAg
ICBSZXRhaW5QdHI8RGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRSZW1vdGVPYmplY3Q+IG9iamVjdCA9
IGFkb3B0TlMoW1tEaWRGaXJzdE1lYW5pbmdmdWxQYWludFJlbW90ZU9iamVjdCBhbGxvY10gaW5p
dF0pOworICAgIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqaW50ZXJmYWNlID0gW19XS1JlbW90
ZU9iamVjdEludGVyZmFjZSByZW1vdGVPYmplY3RJbnRlcmZhY2VXaXRoUHJvdG9jb2w6QHByb3Rv
Y29sKERpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UHJvdG9jb2wpXTsKKyAgICBbW3dlYlZpZXcgX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5XSByZWdpc3RlckV4cG9ydGVkT2JqZWN0Om9iamVjdC5nZXQoKSBp
bnRlcmZhY2U6aW50ZXJmYWNlXTsKKworICAgIGRpZE9ic2VydmVGaXJzdE1lYW5pbmdmdWxQYWlu
dCA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8Ym9keSBzdHlsZT0n
YmFja2dyb3VuZC1jb2xvcjogcmVkOyc+PC9ib2R5PiIgYmFzZVVSTDpuaWxdOworCisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRPYnNlcnZlRmlyc3RNZWFuaW5nZnVsUGFpbnQpOwor
fQorCisjZW5kaWYKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzc1BsdWdJbi5tbQkobm9uZXhp
c3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmlu
Z1Byb2dyZXNzUGx1Z0luLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJSZW5kZXJpbmdQcm9ncmVzc1Byb3Rv
Y29sLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0V29ybGQuaD4KKyNpbXBvcnQgPFdlYktpdC9f
V0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAaW50ZXJmYWNlIFJl
bmRlcmluZ1Byb2dyZXNzUGx1Z0luIDogTlNPYmplY3QgPFdLV2ViUHJvY2Vzc1BsdWdJbiwgV0tX
ZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gUmVu
ZGVyaW5nUHJvZ3Jlc3NQbHVnSW4geworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAg
UmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5Db250cm9sbGVy
OworICAgIFJldGFpblB0cjxpZCA8RGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRQcm90b2NvbD4+IF9y
ZW1vdGVPYmplY3Q7Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNz
UGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRyb2xsZXIgZGlkQ3JlYXRlQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIg
Kilicm93c2VyQ29udGV4dENvbnRyb2xsZXIKK3sKKyAgICBBU1NFUlQoIV9icm93c2VyQ29udGV4
dENvbnRyb2xsZXIpOworICAgIEFTU0VSVCghX3BsdWdJbkNvbnRyb2xsZXIpOworICAgIF9icm93
c2VyQ29udGV4dENvbnRyb2xsZXIgPSBicm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAgX3Bs
dWdJbkNvbnRyb2xsZXIgPSBwbHVnSW5Db250cm9sbGVyOworCisgICAgX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIHJlbW90ZU9i
amVjdEludGVyZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woRGlkRmlyc3RNZWFuaW5nZnVsUGFp
bnRQcm90b2NvbCldOworICAgIF9yZW1vdGVPYmplY3QgPSBbW2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlciBfcmVtb3RlT2JqZWN0UmVnaXN0cnldIHJlbW90ZU9iamVjdFByb3h5V2l0aEludGVyZmFj
ZTppbnRlcmZhY2VdOworCisgICAgW19icm93c2VyQ29udGV4dENvbnRyb2xsZXIgc2V0TG9hZERl
bGVnYXRlOnNlbGZdOworfQorCistIChfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyl3ZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHM6
KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciopY29udHJvbGxlcgor
eworICAgIHJldHVybiBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RNZWFuaW5nZnVsUGFp
bnQ7Cit9CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
cjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKiljb250cm9sbGVy
IHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOihfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyll
dmVudHMKK3sKKyAgICBpZiAoZXZlbnRzICYgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0
TWVhbmluZ2Z1bFBhaW50KQorICAgICAgICBbX3JlbW90ZU9iamVjdCBkaWRGaXJzdE1lYW5pbmdm
dWxQYWludF07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUHJv
dG9jb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1JlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaAkobm9uZXhpc3RlbnQpCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQHByb3RvY29s
IERpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UHJvdG9jb2wgPE5TT2JqZWN0PgorLSAodm9pZClkaWRG
aXJzdE1lYW5pbmdmdWxQYWludDsKK0BlbmQKKworI2VuZGlmCg==
</data>
<flag name="review"
          id="373709"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356831</attachid>
            <date>2018-12-07 12:41:40 -0800</date>
            <delta_ts>2018-12-07 14:35:14 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>19981</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzg5MjcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE4LTEyLTA2ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWRE
ZWxlZ2F0ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIHNheWluZyB3aGljaCByZW5kZXJpbmcgZXZlbnRz
IGl0IHdhbnRzIHRvIGxpc3RlbiBmb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlBy
b2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tOgorICAgICAgICAoUGFnZUxvYWRlckNsaWVudDo6bGF5b3V0TWlsZXN0b25lcyBjb25zdCk6
CisKIDIwMTgtMTItMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihQU09OKTogUHJvY2VzcyBzd2FwcGluZyBjb2RlIGRvZXNuJ3Qgc2V0IERp
c3BsYXlJRCBpbiBXZWJDb250ZW50IHByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaAkocmV2aXNpb24g
MjM4OTI3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsNyBAQAogLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyOihXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRy
b2xsZXIgZGlkTGF5b3V0Rm9yRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWU7
CiAtICh2b2lkKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciopY29udHJvbGxlciByZW5kZXJp
bmdQcm9ncmVzc0RpZENoYW5nZTooX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMpZXZlbnRzOwog
LSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOihXS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIqKWNvbnRyb2xsZXIgZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICop
ZnJhbWU7CistIChfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyl3ZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHM6KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXI7CiAKIC8vIFJlc291
cmNlIGxvYWRpbmcKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQkocmV2
aXNpb24gMjM4OTI3KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0
OjpXZWJGcmFtZSYsIFJlZlB0cjxBUEk6Ok9iamVjdD4mKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZExheW91dEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKFdlYktpdDo6V2ViUGFnZSYs
IE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+LCBSZWZQdHI8QVBJOjpPYmplY3Q+
Jikgb3ZlcnJpZGU7CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbGF5
b3V0TWlsZXN0b25lcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgZGlkSGFuZGxl
T25sb2FkRXZlbnRzRm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFtZSYp
IG92ZXJyaWRlOwogICAgIApAQCAtMjMyLDYgKzIzMywxNiBAQCB2b2lkIFBhZ2VMb2FkZXJDbGll
bnQ6OmRpZEZpcnN0VmlzdWFsbHlOCiAgICAgICAgIFtsb2FkRGVsZWdhdGUoKSB3ZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOnBsdWdpbkNvbnRleHRDb250cm9sbGVyKCkg
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU6d3JhcHBlcihmcmFtZSldOwog
fQogCitPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBQYWdlTG9hZGVyQ2xpZW50
OjpsYXlvdXRNaWxlc3RvbmVzKCkgY29uc3QKK3sKKyAgICBpZiAoW2xvYWREZWxlZ2F0ZSgpIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlclJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzOildKSB7CisgICAgICAgIF9XS1JlbmRl
cmluZ1Byb2dyZXNzRXZlbnRzIG1pbGVzdG9uZXMgPSBbbG9hZERlbGVnYXRlKCkgd2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzOnBs
dWdpbkNvbnRleHRDb250cm9sbGVyKCldOworICAgICAgICByZXR1cm4gV2ViS2l0Ojp0b0xheW91
dE1pbGVzdG9uZXMoc3RhdGljX2Nhc3Q8V0tMYXlvdXRNaWxlc3RvbmVzPihtaWxlc3RvbmVzKSk7
CisgICAgfQorCisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYWdlTG9hZGVyQ2xpZW50Ojpk
aWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6Oldl
YkZyYW1lJiBmcmFtZSkKIHsKICAgICBpZiAoW2xvYWREZWxlZ2F0ZSgpIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3Iod2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpk
aWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZTopXSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzODk0NSkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE4LTEyLTA2ICBT
YWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFdLV2ViUHJvY2Vzc1Bs
dWdJbkxvYWREZWxlZ2F0ZSBzaG91bGQgaGF2ZSBBUEkgZm9yIHNheWluZyB3aGljaCByZW5kZXJp
bmcgZXZlbnRzIGl0IHdhbnRzIHRvIGxpc3RlbiBmb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQ3MworCisgICAgICAgIFJldmlld2VkIGJ5IEFu
ZHkgRXN0ZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1JlbmRlcmluZ1Byb2dyZXNzLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bRGlkRmlyc3RN
ZWFuaW5nZnVsUGFpbnRSZW1vdGVPYmplY3QgZGlkRmlyc3RNZWFuaW5nZnVsUGFpbnRdKToKKyAg
ICAgICAgKFRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW06IEFkZGVkLgorICAgICAgICAoLVtSZW5kZXJpbmdQ
cm9ncmVzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luOmRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlcjpdKToKKyAgICAgICAgKC1bUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4gd2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzOl0p
OgorICAgICAgICAoLVtSZW5kZXJpbmdQcm9ncmVzc1BsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyOnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOl0pOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVuZGVyaW5nUHJvZ3Jlc3NQ
cm90b2NvbC5oOiBBZGRlZC4KKwogMjAxOC0xMi0wNiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFy
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogcnVuLXdlYmtpdC10ZXN0cyBtYXkg
ZmFpbCB3aGVuIHVzaW5nIGJvb3RlZCBzaW11bGF0b3JzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjM4OTI3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIzNSw5ICsy
MzUsMTEgQEAKIAkJNTFFNkE4OTYxRDJGMUNBNzAwQzAwNEI2IC8qIExvY2FsU3RvcmFnZUNsZWFy
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTFFNkE4OTUxRDJGMUM3NzAwQzAwNEI2IC8qIExvY2FsU3RvcmFnZUNsZWFyLmh0bWwgKi87
IH07CiAJCTUxRUIxMjk0MUZERjA1MjUwMEE1QTFCRCAvKiBTZXJ2aWNlV29ya2VyQmFzaWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVCMTI5MzFG
REYwNTA1MDBBNUExQkQgLyogU2VydmljZVdvcmtlckJhc2ljLm1tICovOyB9OwogCQk1MjBCQ0Y0
QzE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4
IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLzsgfTsKKwkJNTI0NTE3ODcyMUI5RjU3QjAwODJD
QjM0IC8qIFJlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUQ2QkUyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRl
cmluZ1Byb2dyZXNzUGx1Z0luLm1tICovOyB9OwogCQk1MjRCQkM5RTE5REY3MkMwMDAyRjFBRjEg
LyogZmlsZS13aXRoLXZpZGVvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTI0QkJDOUIxOURGMzcxNDAwMkYxQUYxIC8qIGZpbGUtd2l0
aC12aWRlby5odG1sICovOyB9OwogCQk1MjRCQkNBMTE5RTMwQzc3MDAyRjFBRjEgLyogdGVzdC5t
cDQgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTI0QkJDQTAxOUUzMEM2MzAwMkYxQUYxIC8qIHRlc3QubXA0ICovOyB9OwogCQk1MkI4Q0Y5ODE1
ODY4RDkxMDAyODEwNTMgLyogU2V0RG9jdW1lbnRVUkkuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkI4Q0Y5NDE1ODY4Q0YwMDAyODEw
NTMgLyogU2V0RG9jdW1lbnRVUkkuaHRtbCAqLzsgfTsKKwkJNTJENUQ2QzAyMUI5RjFCMzAwNDZB
QkE2IC8qIFJlbmRlcmluZ1Byb2dyZXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTJENUQ2QkQyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRlcmluZ1By
b2dyZXNzLm1tICovOyB9OwogCQk1MkQ2NzNFRTFBRkIxMjczMDBGQTE5RkUgLyogV0tQYWdlQ29w
eVNlc3Npb25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENjczRUMxQUZCMTI2ODAwRkExOUZFIC8qIFdLUGFnZUNv
cHlTZXNzaW9uU3RhdGVXaXRoRmlsdGVyaW5nLmNwcCAqLzsgfTsKIAkJNTJFNUNFNDkxNEQyMUVB
QjAwM0IyQkQ4IC8qIFBhcmVudEZyYW1lX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkU1Q0U0ODE0RDIxRUFCMDAzQjJCRDggLyogUGFy
ZW50RnJhbWVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTMxMUJENUUxRUE5NDkwRTAwNTI1MjgxIC8q
IFRocmVhZE1lc3NhZ2VzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUzMTFCRDVEMUVBOTQ5MEQwMDUyNTI4MSAvKiBUaHJlYWRNZXNzYWdlcy5jcHAg
Ki87IH07CkBAIC0xNTc4LDYgKzE1ODAsOSBAQAogCQk1MkI4Q0Y5NDE1ODY4Q0YwMDAyODEwNTMg
LyogU2V0RG9jdW1lbnRVUkkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IFNldERv
Y3VtZW50VVJJLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyQjhDRjk1MTU4
NjhDRjAwMDI4MTA1MyAvKiBTZXREb2N1bWVudFVSSS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNldERvY3VtZW50VVJJLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MkNCNDc0MDE0NDhGQjkzMDA4NzM5OTUgLyogTG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVjdG9yeVVSTC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDVENkJEMjFCOUYxQjIwMDQ2QUJBNiAv
KiBSZW5kZXJpbmdQcm9ncmVzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJlbmRlcmluZ1Byb2dyZXNzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1MkQ1RDZCRTIxQjlGMUIyMDA0NkFCQTYgLyogUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW5kZXJpbmdQcm9ncmVz
c1BsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJENUQ2QkYyMUI5RjFC
MjAwNDZBQkE2IC8qIFJlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nUHJvZ3Jlc3NQcm90b2NvbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MkQ2NzNFQzFBRkIxMjY4MDBGQTE5RkUgLyogV0tQYWdlQ29w
eVNlc3Npb25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tQYWdlQ29weVNlc3Npb25TdGF0ZVdpdGhGaWx0ZXJpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkU1Q0U0NTE0RDIxRTlEMDAzQjJCRDggLyogUGFy
ZW50RnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFyZW50
RnJhbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkU1Q0U0ODE0RDIxRUFC
MDAzQjJCRDggLyogUGFyZW50RnJhbWVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBhcmVudEZyYW1lX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNDk1LDYgKzI1MDAsOSBAQAogCQkJCUExMkREQkY5MUU4MzZGMDcwMENG
NkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnMubW0gKi8sCiAJCQkJQTEyRERCRkMxRTgz
NkZGMTAwQ0Y2Q0FFIC8qIFJlbmRlcmVkSW1hZ2VXaXRoT3B0aW9uc1BsdWdJbi5tbSAqLywKIAkJ
CQlBMTJEREMwMTFFODM3NEY1MDBDRjZDQUUgLyogUmVuZGVyZWRJbWFnZVdpdGhPcHRpb25zUHJv
dG9jb2wuaCAqLywKKwkJCQk1MkQ1RDZCRDIxQjlGMUIyMDA0NkFCQTYgLyogUmVuZGVyaW5nUHJv
Z3Jlc3MubW0gKi8sCisJCQkJNTJENUQ2QkUyMUI5RjFCMjAwNDZBQkE2IC8qIFJlbmRlcmluZ1By
b2dyZXNzUGx1Z0luLm1tICovLAorCQkJCTUyRDVENkJGMjFCOUYxQjIwMDQ2QUJBNiAvKiBSZW5k
ZXJpbmdQcm9ncmVzc1Byb3RvY29sLmggKi8sCiAJCQkJQ0Q5RTI5MkIxQzkwQTcxRjAwMEJCODAw
IC8qIFJlcXVpcmVzVXNlckFjdGlvbkZvclBsYXliYWNrLm1tICovLAogCQkJCTUxQzhFMUE0MUYy
NkFDNTQwMEJGNzMxQiAvKiBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzLm1tICovLAogCQkJCTVDQ0Ix
MEUwMjEzNDU3OUQwMEFDNUFGMCAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLm1tICovLApAQCAtMzkx
Myw2ICszOTIxLDcgQEAKIAkJCQlBMTU1MDIyQTFFMDUwMjBCMDBBMjRDNTcgLyogRHVwbGljYXRl
Q29tcGxldGlvbkhhbmRsZXJDYWxscy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUJFMUE0
MTFBN0UwMDQ0N0M0QyAvKiBEeW5hbWljRGV2aWNlU2NhbGVGYWN0b3IubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1QzBCRjg5MjFERDU5OUI2MDBCMDAzMjggLyogRWFybHlLVk9DcmFzaC5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTUyRDVENkMwMjFCOUYxQjMwMDQ2QUJBNiAvKiBSZW5kZXJpbmdQcm9n
cmVzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0NEQwNjRBMUYzOTYyRjIwMDFBMEUyOSAvKiBF
ZGl0aW5nVGVzdEhhcm5lc3MubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFMDFBNDExQTlB
MDA0NDdDNEMgLyogRWRpdG9yQ29tbWFuZHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDREMDY0
NzFGMzk2MjdBMDAxQTBFMjkgLyogRWRpdG9yU3RhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICovLApA
QCAtNDI4Miw2ICs0MjkxLDcgQEAKIAkJCQkwRTQwNEE4QzIxNjZERTBBMDA4MjcxQkEgLyogSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlSXNTZWxlY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzlDNUQ0MzEyMDlENzY4MzAwRjFFN0NBIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlz
VGV4dEZpZWxkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QzdBMDAyMEY5RUVCRjAwMTQ0NzhD
IC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MjQ1MTc4
NzIxQjlGNTdCMDA4MkNCMzQgLyogUmVuZGVyaW5nUHJvZ3Jlc3NQbHVnSW4ubW0gaW4gU291cmNl
cyAqLywKIAkJCQlBMTNFQkJBQjFCODc0MzQ2MDAwOTcxMTAgLyogUGxhdGZvcm1VdGlsaXRpZXND
b2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNEY4MUNGMUJERkZENTMwMDRFNjcyRSAvKiBS
ZW1vdGVPYmplY3RSZWdpc3RyeVBsdWdJbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUExMkREQzAy
MUU4MzdDMjQwMENGNkNBRSAvKiBSZW5kZXJlZEltYWdlV2l0aE9wdGlvbnNQbHVnSW4ubW0gaW4g
U291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UmVuZGVyaW5nUHJvZ3Jlc3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJpbmdQcm9ncmVzcy5tbQkobm9uZXhpc3RlbnQpCisrKyBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9F
TkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJSZW5kZXJp
bmdQcm9ncmVzc1Byb3RvY29sLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0TmF2
aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJX
S1dlYlZpZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNz
UG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclBy
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VzZXJTY3JpcHRQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgor
I2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8V2Vi
S2l0L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisKK3N0YXRpYyBib29sIGRpZE9ic2VydmVGaXJzdE1lYW5pbmdmdWxQYWludDsKKworQGludGVy
ZmFjZSBEaWRGaXJzdE1lYW5pbmdmdWxQYWludFJlbW90ZU9iamVjdCA6IE5TT2JqZWN0IDxEaWRG
aXJzdE1lYW5pbmdmdWxQYWludFByb3RvY29sPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gRGlk
Rmlyc3RNZWFuaW5nZnVsUGFpbnRSZW1vdGVPYmplY3QKKy0gKHZvaWQpZGlkRmlyc3RNZWFuaW5n
ZnVsUGFpbnQKK3sKKyAgICBkaWRPYnNlcnZlRmlyc3RNZWFuaW5nZnVsUGFpbnQgPSB0cnVlOwor
fQorQGVuZAorCitURVNUKFJlbmRlcmluZ1Byb2dyZXNzLCBGaXJzdE1lYW5pbmdmdWxQYWludCkK
K3sKKyAgICBOU1N0cmluZyAqIGNvbnN0IHRlc3RQbHVnSW5DbGFzc05hbWUgPSBAIlJlbmRlcmlu
Z1Byb2dyZXNzUGx1Z0luIjsKKworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9u
PiBjb25maWd1cmF0aW9uID0gcmV0YWluUHRyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF90ZXN0
X2NvbmZpZ3VyYXRpb25XaXRoVGVzdFBsdWdJbkNsYXNzTmFtZTp0ZXN0UGx1Z0luQ2xhc3NOYW1l
XSk7CisgICAgCisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIFJldGFp
blB0cjxEaWRGaXJzdE1lYW5pbmdmdWxQYWludFJlbW90ZU9iamVjdD4gb2JqZWN0ID0gYWRvcHRO
UyhbW0RpZEZpcnN0TWVhbmluZ2Z1bFBhaW50UmVtb3RlT2JqZWN0IGFsbG9jXSBpbml0XSk7Cisg
ICAgX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICppbnRlcmZhY2UgPSBbX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlIHJlbW90ZU9iamVjdEludGVyZmFjZVdpdGhQcm90b2NvbDpAcHJvdG9jb2woRGlk
Rmlyc3RNZWFuaW5nZnVsUGFpbnRQcm90b2NvbCldOworICAgIFtbd2ViVmlldyBfcmVtb3RlT2Jq
ZWN0UmVnaXN0cnldIHJlZ2lzdGVyRXhwb3J0ZWRPYmplY3Q6b2JqZWN0LmdldCgpIGludGVyZmFj
ZTppbnRlcmZhY2VdOworCisgICAgZGlkT2JzZXJ2ZUZpcnN0TWVhbmluZ2Z1bFBhaW50ID0gZmFs
c2U7CisKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxib2R5IHN0eWxlPSdiYWNrZ3Jv
dW5kLWNvbG9yOiByZWQ7Jz48L2JvZHk+IiBiYXNlVVJMOm5pbF07CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmRpZE9ic2VydmVGaXJzdE1lYW5pbmdmdWxQYWludCk7Cit9CisKKyNl
bmRpZgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZW5kZXJp
bmdQcm9ncmVzc1BsdWdJbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUGx1Z0luLm1tCShub25leGlzdGVudCkK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVuZGVyaW5nUHJvZ3Jl
c3NQbHVnSW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlJlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaCIK
KyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW4uaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaD4KKyNpbXBvcnQgPFdl
YktpdC9XS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90
ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgUmVuZGVyaW5n
UHJvZ3Jlc3NQbHVnSW4gOiBOU09iamVjdCA8V0tXZWJQcm9jZXNzUGx1Z0luLCBXS1dlYlByb2Nl
c3NQbHVnSW5Mb2FkRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBSZW5kZXJpbmdQ
cm9ncmVzc1BsdWdJbiB7CisgICAgUmV0YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcj4gX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBSZXRhaW5Q
dHI8V0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlcj4gX3BsdWdJbkNvbnRyb2xsZXI7CisgICAg
UmV0YWluUHRyPGlkIDxEaWRGaXJzdE1lYW5pbmdmdWxQYWludFByb3RvY29sPj4gX3JlbW90ZU9i
amVjdDsKK30KKworLSAodm9pZCl3ZWJQcm9jZXNzUGx1Z0luOihXS1dlYlByb2Nlc3NQbHVnSW5D
b250cm9sbGVyICopcGx1Z0luQ29udHJvbGxlciBkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRy
b2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlcgoreworICAgIEFTU0VSVCghX2Jyb3dzZXJDb250ZXh0Q29udHJv
bGxlcik7CisgICAgQVNTRVJUKCFfcGx1Z0luQ29udHJvbGxlcik7CisgICAgX2Jyb3dzZXJDb250
ZXh0Q29udHJvbGxlciA9IGJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjsKKyAgICBfcGx1Z0luQ29u
dHJvbGxlciA9IHBsdWdJbkNvbnRyb2xsZXI7CisKKyAgICBfV0tSZW1vdGVPYmplY3RJbnRlcmZh
Y2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3RlT2JqZWN0SW50
ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChEaWRGaXJzdE1lYW5pbmdmdWxQYWludFByb3Rv
Y29sKV07CisgICAgX3JlbW90ZU9iamVjdCA9IFtbYnJvd3NlckNvbnRleHRDb250cm9sbGVyIF9y
ZW1vdGVPYmplY3RSZWdpc3RyeV0gcmVtb3RlT2JqZWN0UHJveHlXaXRoSW50ZXJmYWNlOmludGVy
ZmFjZV07CisKKyAgICBbX2Jyb3dzZXJDb250ZXh0Q29udHJvbGxlciBzZXRMb2FkRGVsZWdhdGU6
c2VsZl07Cit9CisKKy0gKF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKXdlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJSZW5kZXJpbmdQcm9ncmVzc0V2ZW50czooV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlcgoreworICAg
IHJldHVybiBfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RNZWFuaW5nZnVsUGFpbnQ7Cit9
CisKKy0gKHZvaWQpd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyKiljb250cm9sbGVyIHJlbmRl
cmluZ1Byb2dyZXNzRGlkQ2hhbmdlOihfV0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cylldmVudHMK
K3sKKyAgICBpZiAoZXZlbnRzICYgX1dLUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudEZpcnN0TWVhbmlu
Z2Z1bFBhaW50KQorICAgICAgICBbX3JlbW90ZU9iamVjdCBkaWRGaXJzdE1lYW5pbmdmdWxQYWlu
dF07Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Jl
bmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaAkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlbmRlcmluZ1Byb2dyZXNzUHJvdG9jb2wuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0
L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKworQHByb3RvY29sIERpZEZp
cnN0TWVhbmluZ2Z1bFBhaW50UHJvdG9jb2wgPE5TT2JqZWN0PgorLSAodm9pZClkaWRGaXJzdE1l
YW5pbmdmdWxQYWludDsKK0BlbmQKKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>