<?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>90501</bug_id>
          
          <creation_ts>2012-07-03 15:30:57 -0700</creation_ts>
          <short_desc>Implement HTML&apos;s External interface</short_desc>
          <delta_ts>2026-03-03 12:00:37 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/html5/system-state-and-capabilities.html#the-external-interface</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="George Staikos">staikos</reporter>
          <assigned_to name="George Staikos">staikos</assigned_to>
          <cc>abarth</cc>
    
    <cc>annevk</cc>
    
    <cc>bfulgham</cc>
    
    <cc>gustavo</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mifenton</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>syoichi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>662516</commentid>
    <comment_count>0</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-03 15:30:57 -0700</bug_when>
    <thetext>Implement the window.external object and it&apos;s methods AddSearchProvider and IsSearchProviderInstalled.  Needs to be announced on webkit-dev still.  Is implemented as an optional Module so that ports can decide to support it or not.  It is a bit unorthodox in design in my opinion, and I won&apos;t be surprised to see changes or lack of desire to support it.  Nevertheless, my port does want to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662522</commentid>
    <comment_count>1</comment_count>
      <attachid>150682</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-03 15:40:06 -0700</bug_when>
    <thetext>Created attachment 150682
First draft implementing the feature.

Yes, tests are still needed too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662525</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-03 15:43:38 -0700</bug_when>
    <thetext>Attachment 150682 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebCore/CMakeLists.tx...&quot; exit_code: 1
Source/WebCore/page/ChromeClient.h:357:  Missing space inside { }.  [whitespace/braces] [5]
Source/WebCore/Modules/external/External.cpp:24:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/ChangeLog:10:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 3 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662533</commentid>
    <comment_count>3</comment_count>
      <attachid>150682</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-03 15:51:41 -0700</bug_when>
    <thetext>Comment on attachment 150682
First draft implementing the feature.

Attachment 150682 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13124663</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662540</commentid>
    <comment_count>4</comment_count>
      <attachid>150682</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-03 16:01:01 -0700</bug_when>
    <thetext>Comment on attachment 150682
First draft implementing the feature.

Attachment 150682 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13137512</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662550</commentid>
    <comment_count>5</comment_count>
      <attachid>150687</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-03 16:15:24 -0700</bug_when>
    <thetext>Created attachment 150687
Updated second draft, possibly fixing a few ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662569</commentid>
    <comment_count>6</comment_count>
      <attachid>150687</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-03 16:41:51 -0700</bug_when>
    <thetext>Comment on attachment 150687
Updated second draft, possibly fixing a few ports.

Attachment 150687 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13132599</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662632</commentid>
    <comment_count>7</comment_count>
      <attachid>150706</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-03 18:48:54 -0700</bug_when>
    <thetext>Created attachment 150706
Updated third draft, possibly fixing a few ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662638</commentid>
    <comment_count>8</comment_count>
      <attachid>150706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-03 19:11:14 -0700</bug_when>
    <thetext>Comment on attachment 150706
Updated third draft, possibly fixing a few ports.

Attachment 150706 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13134620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662643</commentid>
    <comment_count>9</comment_count>
      <attachid>150709</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-03 19:19:47 -0700</bug_when>
    <thetext>Created attachment 150709
Updated fourth draft, trying to fix win32</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662651</commentid>
    <comment_count>10</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-03 19:51:17 -0700</bug_when>
    <thetext>Looks like we just need tests and it will be good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662671</commentid>
    <comment_count>11</comment_count>
      <attachid>150709</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-03 23:09:08 -0700</bug_when>
    <thetext>Comment on attachment 150709
Updated fourth draft, trying to fix win32

This patch contains a use-after-free vulnerability.  Please make sure you have someone review this patch who understands how we manage memory for the major webcore objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662706</commentid>
    <comment_count>12</comment_count>
      <attachid>150709</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-07-04 00:33:00 -0700</bug_when>
    <thetext>Comment on attachment 150709
Updated fourth draft, trying to fix win32

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

Looks good to me on first sight, except missing tests and minor comments.
I guess Adam is worried that DOMWindow is destructed before External is, right?
If so we might want to clear the DOMWindow pointer in External, as soon as clearDOMWindowProperties() is called. &quot;m_external = 0&quot; doesn&apos;t necessarily free the External object, as JS may still hold a reference.

Is it possible/desired that External keeps DOMWindow alive? (Thinking about a custom mark() logic, if that still exists... JSC is transitioning fast... :-)

&gt; Source/WebCore/ChangeLog:3
&gt; +        Implement HTML5 6.5.2 &quot;The External Interface&quot; and its functions

Nitpicking: This should really only contain the bug title.
Bug title
https:///

Bug desc.

&gt; Source/WebCore/ChangeLog:10
&gt; + 

I wish the ChangeLog was a bit more descriptive.

&gt; Source/WebCore/Modules/external/External.cpp:32
&gt; +External::External(const DOMWindow *window)
&gt; +: m_window(window)

Weird that style-ews doesn&apos;t complain here: &quot;const DOMWindow* window&quot;
and &quot;    : m_window(window)&quot; is the preferred style.&quot;

&gt; Source/WebCore/Modules/external/External.cpp:40
&gt; +void External::addSearchProvider(const String&amp; url, ExceptionCode&amp;)

Does the spec define to raise exceptions here? If not, can we remove the raises(DOMException) from the IDL?

&gt; Source/WebCore/Modules/external/External.h:41
&gt; +private:
&gt; +    External(const DOMWindow*);
&gt; +
&gt; +    const DOMWindow* m_window;
&gt; +

It&apos;s a bit unusual to place private: before public: in our headers, you could swap those sections.

&gt; Source/WebCore/page/ChromeClient.h:359
&gt; +#if ENABLE(WINDOW_EXTERNAL)
&gt; +        virtual void addSearchProvider(const String&amp;) { }
&gt; +        virtual unsigned long isSearchProviderInstalled(const String&amp;) { return 0; }
&gt; +#endif

WINDOW_EXTERNAL is quite confusing. How about HTML5_EXTERNAL_INTERFACE? or even HTML5_SEARCH_PROVIDERS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663063</commentid>
    <comment_count>13</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-07-04 10:51:13 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 150709 [details])
&gt; This patch contains a use-after-free vulnerability.  Please make sure you have someone review this patch who understands how we manage memory for the major webcore objects.

Adam, 

Do you mean an External could outlive its DOMWindow so we should use RefPtr&lt;DOMWindow&gt; here instead of DOMWindow*?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663085</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-04 11:54:07 -0700</bug_when>
    <thetext>Using RefPtr&lt;DOMWindow&gt; would create a reference cycle and leak memory.  I&apos;m off for the fourth of July.  Please make sure the patch gets a high quality review before landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663103</commentid>
    <comment_count>15</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-07-04 12:42:47 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Using RefPtr&lt;DOMWindow&gt; would create a reference cycle and leak memory.  I&apos;m off for the fourth of July.  Please make sure the patch gets a high quality review before landing it.

DOMWindow::clearDOMWindowProperties() will be called when frame is destroyed or new load is committed, which will then clear the External object. So there shouldn&apos;t be reference cycle. But it would be nice if we could avoid using it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663829</commentid>
    <comment_count>16</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-05 18:56:01 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Using RefPtr&lt;DOMWindow&gt; would create a reference cycle and leak memory.  I&apos;m off for the fourth of July.  Please make sure the patch gets a high quality review before landing it.

The patch isn&apos;t really up for review yet, but I appreciate the attention.  Thanks for that.  Actually it has a massive merge error in it too.  It was written against much older baseline webkit.  I&apos;ll turn on the review flag when it&apos;s ready.  I&apos;m definitely interested in higher-level comments now too, as I reference in my original bug description.  Is there wider desire to support this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664449</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-07 20:33:54 -0700</bug_when>
    <thetext>Sorry for the brevity earlier.  You should make External a subclass of DOMWindowProperty and implement the appropriate virtual functions.

Note: You should email webkit-dev as described in http://www.webkit.org/coding/adding-features.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667234</commentid>
    <comment_count>18</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-07-11 17:19:43 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Sorry for the brevity earlier.  You should make External a subclass of DOMWindowProperty and implement the appropriate virtual functions.

Yes, I noticed later that this had to be changed which is one of the main reasons for not setting r? yet.  This code was developed a while ago against an older baseline and badly merged.  Enough to get something saved and figure out the build for other ports though.

&gt; Note: You should email webkit-dev as described in http://www.webkit.org/coding/adding-features.html.

Exactly.  As per comment #0.

I&apos;ll try to post an updated patch by the weekend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751259</commentid>
    <comment_count>19</comment_count>
      <attachid>170740</attachid>
    <who name="">otcheung</who>
    <bug_when>2012-10-25 15:11:54 -0700</bug_when>
    <thetext>Created attachment 170740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751264</commentid>
    <comment_count>20</comment_count>
      <attachid>170740</attachid>
    <who name="">otcheung</who>
    <bug_when>2012-10-25 15:16:16 -0700</bug_when>
    <thetext>Comment on attachment 170740
Patch

In this patch we removed the changes to the make files of other ports. It&apos;s safer if members in the other ports add the external files to their build system themselves.

External now implements DOMWindowProperty as per Adam Barth&apos;s suggestion.

We also added DRT tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751279</commentid>
    <comment_count>21</comment_count>
      <attachid>170740</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-25 15:31:47 -0700</bug_when>
    <thetext>Comment on attachment 170740
Patch

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

Below is a technical review of your patch.  I&apos;m not sure whether WebKit should implement this feature or not.  My understanding is that we&apos;ve historically believed that embedders of WebKit should implement this feature themselves rather than implementing it in the engine directly.

&gt; Source/WebCore/Modules/external/External.cpp:33
&gt; +: DOMWindowProperty(frame)

Bad indent

&gt; Source/WebCore/Modules/external/External.h:27
&gt; +#include &quot;PassRefPtr.h&quot;
&gt; +#include &quot;RefCounted.h&quot;

Usually we include things from wtf in the following style:

#include &lt;wtf/RefCounted.h&gt;

&gt; Source/WebCore/Modules/external/External.h:31
&gt; +namespace WTF {
&gt; +class String;
&gt; +}

I would just #include &lt;wtf/text/WTFString.h&gt;.  There isn&apos;t much to be gained from forward declaring this class since essentially every compilation unit needs to include it anyway.

&gt; Source/WebCore/Modules/external/External.h:36
&gt; +class DOMWindow;
&gt; +class Frame;

By contrast, these are well worth forward declaring.  :)

&gt; Source/WebCore/Modules/external/External.idl:26
&gt; +        void AddSearchProvider(in DOMString engineURL) raises(DOMException);

Yuck.  These functions are in the wrong style.  :(

&gt; Source/WebCore/page/Chrome.cpp:569
&gt; +#if ENABLE(WINDOW_EXTERNAL)
&gt; +void Chrome::addSearchProvider(const String&amp; url)
&gt; +{
&gt; +    m_client-&gt;addSearchProvider(url);
&gt; +}
&gt; +
&gt; +unsigned long Chrome::isSearchProviderInstalled(const String&amp; url)
&gt; +{
&gt; +    return m_client-&gt;isSearchProviderInstalled(url);
&gt; +}
&gt; +#endif

There is no reason to have these functions.  Callers cal just talk to chrome()-&gt;client() directly.

&gt; Source/WebCore/page/DOMWindow.idl:225
&gt; +#if defined(ENABLE_WINDOW_EXTERNAL) &amp;&amp; ENABLE_WINDOW_EXTERNAL
&gt; +    attribute [Replaceable] External external;
&gt; +#endif

You&apos;ve half made your feature into a module (a la http://trac.webkit.org/wiki/Modules ) and half not.  You should pick one approach or the other.  In the case of this feature, I wouldn&apos;t bother making it a module since it is only one file and it is defined in the core HTML5 specification.

Rather than using #if, you can use the Conditional IDL attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1495033</commentid>
    <comment_count>22</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2019-01-16 00:58:09 -0800</bug_when>
    <thetext>Note that at this point this is effectively a useless API that probably cannot be removed from Chrome/Firefox: https://html.spec.whatwg.org/multipage/obsolete.html#Window-partial. Implementing it would make WebKit-based browsers less different from other browsers.

Note that per https://github.com/whatwg/html/pull/4296 the plan is to expose window.External as well, in order to get rid of [NoInterfaceObject] in IDL long term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2186646</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-03-03 12:00:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/171648012&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150682</attachid>
            <date>2012-07-03 15:40:06 -0700</date>
            <delta_ts>2012-07-03 16:15:24 -0700</delta_ts>
            <desc>First draft implementing the feature.</desc>
            <filename>90501.patch</filename>
            <type>text/plain</type>
            <size>22328</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTgw
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA3
LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQg
Q01ha2Ugc3VwcG9ydCBmb3IgdGhlIHdpbmRvdyBleHRlcm5hbCBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09w
dGlvbnNCbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNt
YWtlOgorCiAyMDEyLTA3LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIG1pY3JvZGF0YSBzdXBwb3J0IGZvciBCbGFj
a0JlcnJ5LgpJbmRleDogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2NtYWtlY29uZmlnLmguY21ha2UJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfV0VCX0lOVEVOVFNfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVf
V0VCX1NPQ0tFVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9XRUJfVElNSU5HCisjY21ha2VkZWZp
bmUwMSBFTkFCTEVfV0lORE9XX0VYVEVSTkFMCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfV09SS0VS
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1hTTFQKICNjbWFrZWRlZmluZTAxIFVTRV9TWVNURU1f
TUFMTE9DCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MiBAQAorMjAxMi0wNy0wMyAg
R2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgSW50ZXJmYWNlIiBhbmQgaXRzIGZ1bmN0aW9ucwor
ICAgICAgICBBZGRTZWFyY2hQcm92aWRlciBhbmQgSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZC4K
KyAgICAgICAgQXR0ZW1wdCB0byBrZWVwIGFsbCBwb3J0cyBzdGlsbCBidWlsZGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAo
T09QUyEpCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9leHRlcm5hbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6RXh0ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RXh0ZXJuYWw6On5FeHRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6YWRk
U2VhcmNoUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZXJuYWw6OmlzU2VhcmNoUHJv
dmlkZXJJbnN0YWxsZWQpOgorICAgICAgICAqIE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFeHRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6Y3JlYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjphZGRTZWFyY2hQ
cm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmlzU2VhcmNoUHJvdmlkZXJJbnN0
YWxsZWQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgIChDaHJvbWUpOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphZGRTZWFyY2hQcm92aWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
fkRPTVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyRE9NV2luZG93
UHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6ZXh0ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aWRsOgorCiAyMDEyLTA3LTAzICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUHJvdGVjdCB0aGlzIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBpbiBjYW5jZWwo
KSB0byBoYW5kbGUgcmVlbnRyYW5jeSBwcm9wZXJseS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMjYzOCw2ICsyNjM4LDE4IEBAIElGIChFTkFCTEVfV0VCX0lOVEVOVFMp
CiAgICAgKQogRU5ESUYgKCkKIAorSUYgKEVOQUJMRV9XSU5ET1dfRVhURVJOQUwpCisgICAgTElT
VChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICR7V0VCQ09SRV9E
SVJ9L01vZHVsZXMvZXh0ZXJuYWwKKyAgICApCisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExf
RklMRVMKKyAgICAgICAgTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5pZGwKKyAgICApCisgICAg
TElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIE1vZHVsZXMvZXh0ZXJuYWwvRXh0
ZXJuYWwuY3BwCisgICAgKQorRU5ESUYgKCkKKwogaWYgKEVOQUJMRV9RVU9UQSkKICAgICBMSVNU
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgTW9kdWxlcy9xdW90YS9ET01XaW5kb3dR
dW90YS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDEyMTgw
NSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE1LDYgKzExNSw3IEBACiAjaW5jbHVkZSAiSlNFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNF
dmVudEV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZS5jcHAiCisjaW5jbHVk
ZSAiSlNFeHRlcm5hbC5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJKU0Zp
bGVDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNGaWxlRW50cnkuY3BwIgpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcmkJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC0xNyw2ICsxNyw3IEBAIFdFQkNPUkVfR0VORVJBVEVEX1NPVVJDRVNf
RElSID0gJCR7Uk9PVF8KIAogSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUiBcCisg
ICAgJCRTT1VSQ0VfRElSL01vZHVsZXMvZXh0ZXJuYWwgXAogICAgICQkU09VUkNFX0RJUi9Nb2R1
bGVzL2ZpbGVzeXN0ZW0gXAogICAgICQkU09VUkNFX0RJUi9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwK
ICAgICAkJFNPVVJDRV9ESVIvTW9kdWxlcy9pbmRleGVkZGIgXApJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFeHRlcm5hbC5oIgorCisjaWYgRU5BQkxFKFdJTkRP
V19FWFRFUk5BTCkKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlN0
cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V4dGVybmFsOjpFeHRlcm5hbChjb25z
dCBET01XaW5kb3cgKndpbmRvdykKKzogbV93aW5kb3cod2luZG93KQoreworfQorCitFeHRlcm5h
bDo6fkV4dGVybmFsKCkKK3sKK30KKwordm9pZCBFeHRlcm5hbDo6YWRkU2VhcmNoUHJvdmlkZXIo
Y29uc3QgU3RyaW5nJiB1cmwsIEV4Y2VwdGlvbkNvZGUmKQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1fd2luZG93LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAg
IHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICgh
cGFnZSB8fCAhcGFnZS0+Y2hyb21lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNo
cm9tZSgpLT5hZGRTZWFyY2hQcm92aWRlcih1cmwpOworfQorCit1bnNpZ25lZCBsb25nIEV4dGVy
bmFsOjppc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRp
b25Db2RlJikKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSB8fCAhcGFnZS0+Y2hyb21lKCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLT5pc1NlYXJj
aFByb3ZpZGVySW5zdGFsbGVkKHVybCk7Cit9CisKK30KKworI2VuZGlmCisKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90
aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNp
Zm5kZWYgRXh0ZXJuYWxfaAorI2RlZmluZSBFeHRlcm5hbF9oCisKKyNpZiBFTkFCTEUoV0lORE9X
X0VYVEVSTkFMKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBhc3NS
ZWZQdHIuaCIKKyNpbmNsdWRlICJSZWZDb3VudGVkLmgiCisKK25hbWVzcGFjZSBXVEYgeworY2xh
c3MgU3RyaW5nOworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsK
KworY2xhc3MgRXh0ZXJuYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxFeHRlcm5hbD4geworcHJpdmF0
ZToKKyAgICBFeHRlcm5hbChjb25zdCBET01XaW5kb3cqKTsKKworICAgIGNvbnN0IERPTVdpbmRv
dyogbV93aW5kb3c7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFeHRlcm5hbD4g
Y3JlYXRlKGNvbnN0IERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRXh0
ZXJuYWwod2luZG93KSk7IH0KKyAgICB+RXh0ZXJuYWwoKTsKKworICAgIHZvaWQgYWRkU2VhcmNo
UHJvdmlkZXIoY29uc3QgV1RGOjpTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWdu
ZWQgbG9uZyBpc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNvbnN0IFdURjo6U3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCisKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaWRsCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5pZGwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICov
CisKK21vZHVsZSB3aW5kb3cgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9u
YWw9V0lORE9XX0VYVEVSTkFMLAorICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICAg
ICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBFeHRlcm5hbCB7CisgICAgICAgIHZvaWQgQWRkU2Vh
cmNoUHJvdmlkZXIoaW4gRE9NU3RyaW5nIGVuZ2luZVVSTCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIHVuc2lnbmVkIGxvbmcgSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChpbiBET01T
dHJpbmcgZW5naW5lVVJMKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9OworCit9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gMTIxODA1KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDcgQEAKICAgICAgICcuLi8nLAogICAgICAgJy4uLy4uJywKICAgICAgICcu
Li9Nb2R1bGVzL2JhdHRlcnknLAorICAgICAgJy4uL01vZHVsZXMvZXh0ZXJuYWwnLAogICAgICAg
Jy4uL01vZHVsZXMvZmlsZXN5c3RlbScsCiAgICAgICAnLi4vTW9kdWxlcy9maWxlc3lzdGVtL2No
cm9taXVtJywKICAgICAgICcuLi9Nb2R1bGVzL2dhbWVwYWQnLApJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTIx
ODA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDE1MSw2ICsxMDE1MSw5IEBACiAJCThGNjc1NjE5MTI4OEIx
N0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEV2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODMx
MTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU01haW5UaHJlYWRFeGVjU3RhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01h
aW5UaHJlYWRFeGVjU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RkE3
QjZDNDE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJuYWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRXh0ZXJuYWwuY3BwOyBwYXRoID0gTW9kdWxlcy9leHRlcm5hbC9F
eHRlcm5hbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThGQTdCNkM1MTVBMkIx
QUUwMDdDNzY4OCAvKiBFeHRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBFeHRlcm5hbC5oOyBwYXRoID0gTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4RkE3QjZDNjE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJu
YWwuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IEV4dGVybmFsLmlkbDsgcGF0aCA9IE1vZHVs
ZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MDAxNzczRDEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmNwcDsgcGF0aCA9IGNhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5oOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYy
IC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjMsNiArMTY5MjYs
MTYgQEAKIAkJCXBhdGggPSBsZXZlbGRiOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJOEZBN0I2QzkxNUEyQjFDMTAwN0M3Njg4IC8qIGV4dGVybmFsICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4RkE3QjZDNDE1QTJCMUFFMDA3Qzc2
ODggLyogRXh0ZXJuYWwuY3BwICovLAorCQkJCThGQTdCNkM1MTVBMkIxQUUwMDdDNzY4OCAvKiBF
eHRlcm5hbC5oICovLAorCQkJCThGQTdCNkM2MTVBMkIxQUUwMDdDNzY4OCAvKiBFeHRlcm5hbC5p
ZGwgKi8sCisJCQkpOworCQkJbmFtZSA9IGV4dGVybmFsOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJOTMzMDlEODYwOTlFNjQ5MTAwNTZFNTgxIC8qIGVkaXRpbmcgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTc0OTAsNiArMTc1MDMs
NyBAQAogCQk5NzExNDVGRTE0RUYwMDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOEZBN0I2QzkxNUEyQjFDMTAwN0M3
Njg4IC8qIGV4dGVybmFsICovLAogCQkJCTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9s
b2NhdGlvbiAqLywKIAkJCQk5NzEyQTU1MzE1MDA0RTNDMDA0OEFGMTAgLyogaW5kZXhlZGRiICov
LAogCQkJCTg5RjYwQjA4MTU3RjY4MzUwMDc1RTE1NyAvKiBxdW90YSAqLywKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDQgKzU1NCwxNSBAQCBib29sIENocm9t
ZTo6cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QCiAgICAgcmV0dXJuIG1fY2xpZW50LT5yZXF1
aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0lORE9X
X0VYVEVSTkFMKQordm9pZCBDaHJvbWU6OmFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmluZyYg
dXJsKQoreworICAgIG1fY2xpZW50LT5hZGRTZWFyY2hQcm92aWRlcih1cmwpOworfQorCit1bnNp
Z25lZCBsb25nIENocm9tZTo6aXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcm
IHVybCkKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQo
dXJsKTsKK30KKyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAorI2lmIEVOQUJMRShX
SU5ET1dfRVhURVJOQUwpCisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hQcm92aWRlcihj
b25zdCBTdHJpbmcmKTsKKyAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGlzU2VhcmNoUHJv
dmlkZXJJbnN0YWxsZWQoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKICAgICBwcml2YXRlOgogICAg
ICAgICBDaHJvbWUoUGFnZSosIENocm9tZUNsaWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1Myw2ICszNTMsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmluZyYpIHt9Cisg
ICAgICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBpc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNv
bnN0IFN0cmluZyYpIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAg
ICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSB7IH0KICAgICB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVk
ZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRXh0ZXJuYWwuaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIK
QEAgLTQyMyw2ICs0MjQsOSBAQCBET01XaW5kb3c6On5ET01XaW5kb3coKQogI2VuZGlmCiAgICAg
fQogI2VuZGlmCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKKyAgICBBU1NFUlQoIW1fZXh0
ZXJuYWwpOworI2VuZGlmCiAKICAgICBpZiAobV9zdXNwZW5kZWRGb3JQYWdlQ2FjaGUpCiAgICAg
ICAgIHdpbGxEZXN0cm95Q2FjaGVkRnJhbWUoKTsKQEAgLTU5MCw2ICs1OTQsOSBAQCB2b2lkIERP
TVdpbmRvdzo6Y2xlYXJET01XaW5kb3dQcm9wZXJ0aWVzCiAjaWYgRU5BQkxFKEJMT0IpCiAgICAg
bV9kb21VUkwgPSAwOwogI2VuZGlmCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKKyAgICBt
X2V4dGVybmFsID0gMDsKKyNlbmRpZgogfQogCiBib29sIERPTVdpbmRvdzo6aXNDdXJyZW50bHlE
aXNwbGF5ZWRJbkZyYW1lKCkgY29uc3QKQEAgLTE5MjgsNCArMTkzNSwxMyBAQCB2b2lkIERPTVdp
bmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0CiAgICAgZGlhbG9nRnJhbWUtPnBhZ2UoKS0+
Y2hyb21lKCktPnJ1bk1vZGFsKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQor
RXh0ZXJuYWwqIERPTVdpbmRvdzo6ZXh0ZXJuYWwoKSBjb25zdAoreworICAgIGlmICghbV9leHRl
cm5hbCAmJiBpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgbV9leHRlcm5h
bCA9IEV4dGVybmFsOjpjcmVhdGUodGhpcyk7CisgICAgcmV0dXJuIG1fZXh0ZXJuYWwuZ2V0KCk7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEV2
ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgRXh0ZXJuYWw7CiAgICAgY2xhc3MgRmxvYXRSZWN0Owog
ICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEhpc3Rvcnk7CkBAIC0zOTEsNiArMzkyLDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB3aWxsRGV0YWNoRG9jdW1lbnRGcm9t
RnJhbWUoKTsKICAgICAgICAgdm9pZCB3aWxsRGVzdHJveUNhY2hlZEZyYW1lKCk7CiAKKyNpZiBF
TkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAgICAgICBFeHRlcm5hbCogZXh0ZXJuYWwoKSBjb25z
dDsKKyNlbmRpZgorCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgRE9NV2luZG93KEZy
YW1lKik7CiAKQEAgLTQ1Miw2ICs0NTcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVO
QUJMRShCTE9CKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxET01VUkw+IG1fZG9tVVJMOwogI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAgICAgICBtdXRhYmxlIFJlZlB0
cjxFeHRlcm5hbD4gbV9leHRlcm5hbDsKKyNlbmRpZgogICAgIH07CiAKICAgICBpbmxpbmUgU3Ry
aW5nIERPTVdpbmRvdzo6c3RhdHVzKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCwxMCBAQCBtb2R1bGUgd2luZG93IHsK
ICAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gUGVyZm9ybWFuY2UgcGVyZm9ybWFuY2U7
CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoRU5BQkxFX1dJTkRPV19FWFRFUk5BTCkgJiYgRU5BQkxF
X1dJTkRPV19FWFRFUk5BTAorICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBFeHRlcm5h
bCBleHRlcm5hbDsKKyNlbmRpZgorCiAgICAgICAgIC8vIFRpbWVycwogICAgICAgICBbQ3VzdG9t
XSBsb25nIHNldFRpbWVvdXQoaW4gW09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gVGltZW91
dEhhbmRsZXIgaGFuZGxlciwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBsb25nIHRpbWVvdXQpOwpJbmRleDogU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDctMDMgIEdlb3JnZSBTdGFpa29zICA8c3RhaWtvc0B3ZWJraXQub3JnPgorCisgICAgICAg
IFtCbGFja0JlcnJ5XSBBZGQgc3VwcG9ydCBmb3IgdGhlIEV4dGVybmFsIEludGVyZmFjZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6YWRkU2VhcmNoUHJvdmlkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWFyY2hQcm92
aWRlckluc3RhbGxlZCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeS5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50QmxhY2tCZXJyeSk6CisKIDIwMTItMDct
MDMgIEdlb3JnZSBTdGFpa29zICA8c3RhaWtvc0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBFbmFibGUgQ3VzdG9tIFNjaGVtZSBIYW5kbGVycyBmb3IgQmxhY2tCZXJyeS4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAJKHJldmlzaW9uIDEyMTgwNSkK
KysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI2LDQgKzgyNiwxNSBAQCB2b2lkIENo
cm9tZUNsaWVudEJsYWNrQmVycnk6OnJlZ2lzdGVyUHJvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShXSU5ET1dfRVhURVJOQUwpCit2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmFkZFNlYXJj
aFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsKQoreworfQorCit1bnNpZ25lZCBsb25nIENocm9t
ZUNsaWVudEJsYWNrQmVycnk6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgU3RyaW5n
JiB1cmwpCit7CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEJsYWNrQmVycnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCShyZXZpc2lvbiAxMjE4
MDUpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsNiArMTQ4LDExIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2VQb3B1cCogb3BlblBhZ2VQb3B1cChXZWJDb3Jl
OjpQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdmlydHVh
bCB2b2lkIGNsb3NlUGFnZVBvcHVwKFdlYkNvcmU6OlBhZ2VQb3B1cCopOwogCisjaWYgRU5BQkxF
KFdJTkRPV19FWFRFUk5BTCkKKyAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUHJvdmlkZXIoY29u
c3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGlzU2VhcmNoUHJvdmlkZXJJ
bnN0YWxsZWQoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJh
bWUqLCBHcmFwaGljc0xheWVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb24oKTsKSW5kZXg6IFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tC
ZXJyeS5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnku
Y21ha2UJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJy
eS5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTY5LDYgKzE2OSw3IEBAIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV8KIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9WSUJSQVRJT04gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfVklERU8gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfV0VCX1RJTUlORyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9XSU5ET1dfRVhURVJOQUwgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfV09SS0VSUyBPTikKIAogSUYgKEVOQUJMRV9HTEVTMikKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTgwNSkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA3
LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgdGhlIHdpbmRvdy1leHRlcm5hbCBmZWF0dXJlIGFuZCBlbmFibGUgZm9yIEJs
YWNrQmVycnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MDUwMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorCiAyMDEyLTA3LTAzICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBEb24ndCBh
cmNoaXZlIGJ1aWxkIGZpbGVzIGdlbmVyYXRlZCBieSBWUzIwMTAKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0JKHJldmlzaW9uIDEyMTgwNSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYg
KzEyNyw3IEBAIG15ICgKICAgICAkd2ViQXVkaW9TdXBwb3J0LAogICAgICR3ZWJTb2NrZXRzU3Vw
cG9ydCwKICAgICAkd2ViVGltaW5nU3VwcG9ydCwKKyAgICAkd2luZG93RXh0ZXJuYWxTdXBwb3J0
LAogICAgICR3b3JrZXJzU3VwcG9ydCwKICAgICAkeHNsdFN1cHBvcnQsCiApOwpAQCAtMzg0LDYg
KzM4NSw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAid2ViLXRpbWluZyIs
IGRlc2MgPT4gIlRvZ2dsZSBXZWIgVGltaW5nIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfV0VCX1RJTUlORyIsIGRlZmF1bHQgPT4gKGlzQmxhY2tCZXJyeSgpIHx8IGlzR3RrKCkg
fHwgaXNFZmwoKSksIHZhbHVlID0+IFwkd2ViVGltaW5nU3VwcG9ydCB9LAogCisgICAgeyBvcHRp
b24gPT4gIndpbmRvdy1leHRlcm5hbCIsIGRlc2MgPT4gIlRvZ2dsZSBXaW5kb3cgRXh0ZXJuYWwg
aW50ZXJmYWNlIHN1cHBvcnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0lORE9XX0VYVEVS
TkFMIiwgZGVmYXVsdCA9PiBpc0JsYWNrQmVycnkoKSwgdmFsdWUgPT4gXCR3aW5kb3dFeHRlcm5h
bFN1cHBvcnQgfSwKKwogICAgIHsgb3B0aW9uID0+ICJ3b3JrZXJzIiwgZGVzYyA9PiAiVG9nZ2xl
IFdvcmtlcnMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XT1JLRVJTIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNCbGFja0JlcnJ5KCkgfHwg
aXNFZmwoKSksIHZhbHVlID0+IFwkd29ya2Vyc1N1cHBvcnQgfSwKIAo=
</data>
<flag name="commit-queue"
          id="158966"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150687</attachid>
            <date>2012-07-03 16:15:24 -0700</date>
            <delta_ts>2012-07-03 18:48:54 -0700</delta_ts>
            <desc>Updated second draft, possibly fixing a few ports.</desc>
            <filename>90501.patch</filename>
            <type>text/plain</type>
            <size>23107</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTgw
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA3
LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQg
Q01ha2Ugc3VwcG9ydCBmb3IgdGhlIHdpbmRvdyBleHRlcm5hbCBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09w
dGlvbnNCbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNt
YWtlOgorCiAyMDEyLTA3LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIG1pY3JvZGF0YSBzdXBwb3J0IGZvciBCbGFj
a0JlcnJ5LgpJbmRleDogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2NtYWtlY29uZmlnLmguY21ha2UJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfV0VCX0lOVEVOVFNfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVf
V0VCX1NPQ0tFVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9XRUJfVElNSU5HCisjY21ha2VkZWZp
bmUwMSBFTkFCTEVfV0lORE9XX0VYVEVSTkFMCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfV09SS0VS
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1hTTFQKICNjbWFrZWRlZmluZTAxIFVTRV9TWVNURU1f
TUFMTE9DCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBAQAorMjAxMi0wNy0wMyAg
R2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgSW50ZXJmYWNlIiBhbmQgaXRzIGZ1bmN0aW9ucwor
ICAgICAgICBBZGRTZWFyY2hQcm92aWRlciBhbmQgSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZC4K
KyAgICAgICAgQXR0ZW1wdCB0byBrZWVwIGFsbCBwb3J0cyBzdGlsbCBidWlsZGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9leHRlcm5hbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6RXh0ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RXh0ZXJuYWw6On5FeHRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6YWRk
U2VhcmNoUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZXJuYWw6OmlzU2VhcmNoUHJv
dmlkZXJJbnN0YWxsZWQpOgorICAgICAgICAqIE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFeHRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6Y3JlYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbDogQWRkZWQuCisgICAgICAgICogV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjphZGRTZWFyY2hQcm92aWRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQpOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgIChDaHJvbWUpOgorICAgICAgICAqIHBhZ2UvQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21lQ2xpZW50OjphZGRTZWFyY2hQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnQ6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6fkRPTVdpbmRvdyk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyRE9NV2luZG93UHJvcGVydGllcyk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6ZXh0ZXJuYWwp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEyLTA3
LTAzICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUHJvdGVj
dCB0aGlzIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBpbiBjYW5jZWwoKSB0byBoYW5kbGUgcmVl
bnRyYW5jeSBwcm9wZXJseS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMjE4
MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDYgQEAKIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJD
T1JFX0RJUn0iCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZXh0ZXJuYWwiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L01vZHVsZXMvZmlsZXN5c3RlbSIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9nZW9sb2NhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIi
CkBAIC0yNjM4LDYgKzI2MzksMTUgQEAgSUYgKEVOQUJMRV9XRUJfSU5URU5UUykKICAgICApCiBF
TkRJRiAoKQogCitJRiAoRU5BQkxFX1dJTkRPV19FWFRFUk5BTCkKKyAgICBMSVNUKEFQUEVORCBX
ZWJDb3JlX0lETF9GSUxFUworICAgICAgICBNb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbAor
ICAgICkKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgTW9kdWxlcy9l
eHRlcm5hbC9FeHRlcm5hbC5jcHAKKyAgICApCitFTkRJRiAoKQorCiBpZiAoRU5BQkxFX1FVT1RB
KQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBNb2R1bGVzL3F1b3Rh
L0RPTVdpbmRvd1F1b3RhLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2
aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDcgQEAKICNpbmNsdWRlICJKU0V2ZW50LmNwcCIKICNp
bmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50U291cmNlLmNw
cCIKKyNpbmNsdWRlICJKU0V4dGVybmFsLmNwcCIKICNpbmNsdWRlICJKU0ZpbGUuY3BwIgogI2lu
Y2x1ZGUgIkpTRmlsZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVFbnRyeS5jcHAiCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnByaQkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTE3LDYgKzE3LDcgQEAgV0VCQ09SRV9HRU5FUkFU
RURfU09VUkNFU19ESVIgPSAkJHtST09UXwogCiBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VS
Q0VfRElSIFwKKyAgICAkJFNPVVJDRV9ESVIvTW9kdWxlcy9leHRlcm5hbCBcCiAgICAgJCRTT1VS
Q0VfRElSL01vZHVsZXMvZmlsZXN5c3RlbSBcCiAgICAgJCRTT1VSQ0VfRElSL01vZHVsZXMvZ2Vv
bG9jYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9Nb2R1bGVzL2luZGV4ZWRkYiBcCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EK
KyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV4dGVybmFsLmgiCisKKyNpZiBF
TkFCTEUoV0lORE9XX0VYVEVSTkFMKQorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXh0ZXJuYWw6OkV4
dGVybmFsKGNvbnN0IERPTVdpbmRvdyAqd2luZG93KQorOiBtX3dpbmRvdyh3aW5kb3cpCit7Cit9
CisKK0V4dGVybmFsOjp+RXh0ZXJuYWwoKQoreworfQorCit2b2lkIEV4dGVybmFsOjphZGRTZWFy
Y2hQcm92aWRlcihjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpCit7CisgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gbV93aW5kb3ctPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7
CisgICAgaWYgKCFwYWdlIHx8ICFwYWdlLT5jaHJvbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcGFnZS0+Y2hyb21lKCktPmFkZFNlYXJjaFByb3ZpZGVyKHVybCk7Cit9CisKK3Vuc2lnbmVk
IGxvbmcgRXh0ZXJuYWw6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgU3RyaW5nJiB1
cmwsIEV4Y2VwdGlvbkNvZGUmKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fd2luZG93
LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlIHx8ICFwYWdl
LT5jaHJvbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21l
KCktPmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQodXJsKTsKK30KKworfQorCisjZW5kaWYKKwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNl
YXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNB
CisgKi8KKworI2lmbmRlZiBFeHRlcm5hbF9oCisjZGVmaW5lIEV4dGVybmFsX2gKKworI2lmIEVO
QUJMRShXSU5ET1dfRVhURVJOQUwpCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5j
bHVkZSAiUGFzc1JlZlB0ci5oIgorI2luY2x1ZGUgIlJlZkNvdW50ZWQuaCIKKworbmFtZXNwYWNl
IFdURiB7CitjbGFzcyBTdHJpbmc7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RE9NV2luZG93OworCitjbGFzcyBFeHRlcm5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEV4dGVybmFs
PiB7Citwcml2YXRlOgorICAgIEV4dGVybmFsKGNvbnN0IERPTVdpbmRvdyopOworCisgICAgY29u
c3QgRE9NV2luZG93KiBtX3dpbmRvdzsKKworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEV4dGVybmFsPiBjcmVhdGUoY29uc3QgRE9NV2luZG93KiB3aW5kb3cpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBFeHRlcm5hbCh3aW5kb3cpKTsgfQorICAgIH5FeHRlcm5hbCgpOworCisgICAgdm9p
ZCBhZGRTZWFyY2hQcm92aWRlcihjb25zdCBXVEY6OlN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB1bnNpZ25lZCBsb25nIGlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgV1RGOjpT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Cit9OworCit9CisKKyNlbmRpZgorCisjZW5kaWYKKwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5pZGwJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlk
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEz
MDEgVVNBCisgKi8KKworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1XSU5ET1dfRVhURVJOQUwsCisgICAgICAgIEpTR2VuZXJhdGVUb0pTT2Jq
ZWN0LAorICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIEV4dGVybmFsIHsKKyAgICAgICAg
dm9pZCBBZGRTZWFyY2hQcm92aWRlcihpbiBET01TdHJpbmcgZW5naW5lVVJMKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBJc1NlYXJjaFByb3ZpZGVySW5zdGFs
bGVkKGluIERPTVN0cmluZyBlbmdpbmVVUkwpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIH07
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCShyZXZpc2lv
biAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNiArNTIsNyBAQAogICAgICAgJy4uLycsCiAgICAgICAnLi4vLi4n
LAogICAgICAgJy4uL01vZHVsZXMvYmF0dGVyeScsCisgICAgICAnLi4vTW9kdWxlcy9leHRlcm5h
bCcsCiAgICAgICAnLi4vTW9kdWxlcy9maWxlc3lzdGVtJywKICAgICAgICcuLi9Nb2R1bGVzL2Zp
bGVzeXN0ZW0vY2hyb21pdW0nLAogICAgICAgJy4uL01vZHVsZXMvZ2FtZXBhZCcsCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24g
MTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI0OTI3LDYgKzI0OTI3LDE4IEBACiAJCQkJPC9GaWxlPgogCQkJ
PC9GaWx0ZXI+CiAJCQk8RmlsdGVyCisJCQkJTmFtZT0iZXh0ZXJuYWwiCisJCQkJPgorCQkJCTxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHRlcm5hbFxFeHRlcm5hbC5jcHAi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxN
b2R1bGVzXGV4dGVybmFsXEV4dGVybmFsLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8L0ZpbHRlcj4KKwkJCTxGaWx0ZXIKIAkJCQlOYW1lPSJxdW90YSIK
IAkJCQk+CiAJCQkJPEZpbGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTAxNTEsNiArMTAxNTEsOSBAQAogCQk4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRR
dWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFF1ZXVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4OUYxRUUwMDUwOEQ1RCAvKiBK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThG
OTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEZBN0I2QzQxNUEyQjFBRTAwN0M3Njg4
IC8qIEV4dGVybmFsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEV4
dGVybmFsLmNwcDsgcGF0aCA9IE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4RkE3QjZDNTE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRXh0ZXJuYWwuaDsgcGF0aCA9
IE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOEZBN0I2QzYxNUEyQjFBRTAwN0M3Njg4IC8qIEV4dGVybmFsLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBFeHRlcm5hbC5pZGw7IHBhdGggPSBNb2R1bGVzL2V4dGVybmFsL0V4dGVybmFs
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4
NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHBhdGggPSBjYW52YXMv
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsg
cGF0aCA9IGNhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkwMDE3NzNGMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2
YXRpdmVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVz
LmlkbDsgcGF0aCA9IGNhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTIzLDYgKzE2OTI2LDE2IEBACiAJCQlwYXRoID0gbGV2
ZWxkYjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCThGQTdCNkM5MTVBMkIx
QzEwMDdDNzY4OCAvKiBleHRlcm5hbCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJOEZBN0I2QzQxNUEyQjFBRTAwN0M3Njg4IC8qIEV4dGVybmFsLmNwcCAq
LywKKwkJCQk4RkE3QjZDNTE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJuYWwuaCAqLywKKwkJCQk4
RkE3QjZDNjE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJuYWwuaWRsICovLAorCQkJKTsKKwkJCW5h
bWUgPSBleHRlcm5hbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTkzMzA5
RDg2MDk5RTY0OTEwMDU2RTU4MSAvKiBlZGl0aW5nICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE3NDkwLDYgKzE3NTAzLDcgQEAKIAkJOTcxMTQ1RkUxNEVG
MDA2RTAwNjc0RkQ5IC8qIE1vZHVsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCThGQTdCNkM5MTVBMkIxQzEwMDdDNzY4OCAvKiBleHRlcm5hbCAqLywK
IAkJCQk5NzExNDVGRjE0RUYwMDc5MDA2NzRGRDkgLyogZ2VvbG9jYXRpb24gKi8sCiAJCQkJOTcx
MkE1NTMxNTAwNEUzQzAwNDhBRjEwIC8qIGluZGV4ZWRkYiAqLywKIAkJCQk4OUY2MEIwODE1N0Y2
ODM1MDA3NUUxNTcgLyogcXVvdGEgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCShyZXZp
c2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU1NCw0ICs1NTQsMTUgQEAgYm9vbCBDaHJvbWU6OnJlcXVpcmVzRnVsbHNjcmVl
bkZvclZpZGVvUAogICAgIHJldHVybiBtX2NsaWVudC0+cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlk
ZW9QbGF5YmFjaygpOwogfQogCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKK3ZvaWQgQ2hy
b21lOjphZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBtX2NsaWVu
dC0+YWRkU2VhcmNoUHJvdmlkZXIodXJsKTsKK30KKwordW5zaWduZWQgbG9uZyBDaHJvbWU6Omlz
U2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgcmV0dXJu
IG1fY2xpZW50LT5pc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKHVybCk7Cit9CisjZW5kaWYKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2aXNpb24gMTIx
ODA1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTcwLDYgKzE3MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBhc3NSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAg
ICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUHJvdmlkZXIoY29uc3QgU3RyaW5nJik7CisgICAg
ICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBpc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNvbnN0
IFN0cmluZyYpOworI2VuZGlmCiAgICAgcHJpdmF0ZToKICAgICAgICAgQ2hyb21lKFBhZ2UqLCBD
aHJvbWVDbGllbnQqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCShyZXZp
c2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNTMsNiArMzUzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgpIHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCisgICAgICAgIHZpcnR1YWwgdm9pZCBh
ZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJpbmcmKSB7IH0KKyAgICAgICAgdmlydHVhbCB1bnNp
Z25lZCBsb25nIGlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgU3RyaW5nJikgeyByZXR1
cm4gMDsgfQorI2VuZGlmCisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfkNocm9t
ZUNsaWVudCgpIHsgfQogICAgIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShy
ZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJFeHRlcm5hbC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgpAQCAtNDIzLDYgKzQyNCw5IEBA
IERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCiAjZW5kaWYKICAgICB9CiAjZW5kaWYKKyNpZiBFTkFC
TEUoV0lORE9XX0VYVEVSTkFMKQorICAgIEFTU0VSVCghbV9leHRlcm5hbCk7CisjZW5kaWYKIAog
ICAgIGlmIChtX3N1c3BlbmRlZEZvclBhZ2VDYWNoZSkKICAgICAgICAgd2lsbERlc3Ryb3lDYWNo
ZWRGcmFtZSgpOwpAQCAtNTkwLDYgKzU5NCw5IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhckRPTVdp
bmRvd1Byb3BlcnRpZXMKICNpZiBFTkFCTEUoQkxPQikKICAgICBtX2RvbVVSTCA9IDA7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAgIG1fZXh0ZXJuYWwgPSAwOworI2Vu
ZGlmCiB9CiAKIGJvb2wgRE9NV2luZG93Ojppc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSBj
b25zdApAQCAtMTkyOCw0ICsxOTM1LDEzIEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFs
b2coY29uc3QgU3QKICAgICBkaWFsb2dGcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS0+cnVuTW9kYWwo
KTsKIH0KIAorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCitFeHRlcm5hbCogRE9NV2luZG93
OjpleHRlcm5hbCgpIGNvbnN0Cit7CisgICAgaWYgKCFtX2V4dGVybmFsICYmIGlzQ3VycmVudGx5
RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICBtX2V4dGVybmFsID0gRXh0ZXJuYWw6OmNyZWF0
ZSh0aGlzKTsKKyAgICByZXR1cm4gbV9leHRlcm5hbC5nZXQoKTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9u
IDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERvY3Vt
ZW50OwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBj
bGFzcyBFeHRlcm5hbDsKICAgICBjbGFzcyBGbG9hdFJlY3Q7CiAgICAgY2xhc3MgRnJhbWU7CiAg
ICAgY2xhc3MgSGlzdG9yeTsKQEAgLTM5MSw2ICszOTIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2b2lkIHdpbGxEZXRhY2hEb2N1bWVudEZyb21GcmFtZSgpOwogICAgICAgICB2
b2lkIHdpbGxEZXN0cm95Q2FjaGVkRnJhbWUoKTsKIAorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJO
QUwpCisgICAgICAgIEV4dGVybmFsKiBleHRlcm5hbCgpIGNvbnN0OworI2VuZGlmCisKICAgICBw
cml2YXRlOgogICAgICAgICBleHBsaWNpdCBET01XaW5kb3coRnJhbWUqKTsKIApAQCAtNDUyLDYg
KzQ1NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKEJMT0IpCiAgICAgICAg
IG11dGFibGUgUmVmUHRyPERPTVVSTD4gbV9kb21VUkw7CiAjZW5kaWYKKworI2lmIEVOQUJMRShX
SU5ET1dfRVhURVJOQUwpCisgICAgICAgIG11dGFibGUgUmVmUHRyPEV4dGVybmFsPiBtX2V4dGVy
bmFsOworI2VuZGlmCiAgICAgfTsKIAogICAgIGlubGluZSBTdHJpbmcgRE9NV2luZG93OjpzdGF0
dXMoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTIx
ODA1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDAsNiArMjAwLDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUg
W1JlcGxhY2VhYmxlXSBQZXJmb3JtYW5jZSBwZXJmb3JtYW5jZTsKICNlbmRpZgogCisjaWYgZGVm
aW5lZChFTkFCTEVfV0lORE9XX0VYVEVSTkFMKSAmJiBFTkFCTEVfV0lORE9XX0VYVEVSTkFMCisg
ICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIEV4dGVybmFsIGV4dGVybmFsOworI2VuZGlm
CisKICAgICAgICAgLy8gVGltZXJzCiAgICAgICAgIFtDdXN0b21dIGxvbmcgc2V0VGltZW91dChp
biBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBUaW1lb3V0SGFuZGxlciBoYW5kbGVyLCAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1EZWZhdWx0SXNV
bmRlZmluZWRdIGxvbmcgdGltZW91dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNy0wMyAgR2VvcmdlIFN0
YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEFkZCBz
dXBwb3J0IGZvciB0aGUgRXh0ZXJuYWwgSW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJs
YWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRCbGFja0JlcnJ5OjphZGRTZWFyY2hQcm92aWRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojppc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAg
IChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwogMjAxMi0wNy0wMyAgR2VvcmdlIFN0YWlrb3Mg
IDxzdGFpa29zQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEVuYWJsZSBDdXN0
b20gU2NoZW1lIEhhbmRsZXJzIGZvciBCbGFja0JlcnJ5LgpJbmRleDogU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5LmNwcAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04MjYsNCArODI2LDE1IEBAIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJy
eTo6cmVnaXN0ZXJQcm8KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkK
K3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6YWRkU2VhcmNoUHJvdmlkZXIoY29uc3QgU3Ry
aW5nJiB1cmwpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6
aXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICByZXR1
cm4gMDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmgJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE0OCw2ICsxNDgsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2Vi
Q29yZTo6UGFnZVBvcHVwKiBvcGVuUGFnZVBvcHVwKFdlYkNvcmU6OlBhZ2VQb3B1cENsaWVudCos
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VQYWdlUG9w
dXAoV2ViQ29yZTo6UGFnZVBvcHVwKik7CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQor
ICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJpbmcmKTsKKyAgICB2
aXJ0dWFsIHVuc2lnbmVkIGxvbmcgaXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJp
bmcmKTsKKyNlbmRpZgorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIq
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlv
bigpOwpJbmRleDogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQkocmV2aXNpb24gMTIx
ODA1KQorKysgU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjksNiArMTY5LDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFXwogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJQlJBVElP
TiBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFTyBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIE9OKQor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dJTkRPV19FWFRFUk5BTCBP
TikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XT1JLRVJTIE9OKQog
CiBJRiAoRU5BQkxFX0dMRVMyKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTIxODA1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDctMDMgIEdlb3JnZSBTdGFpa29z
ICA8c3RhaWtvc0B3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgd2lu
ZG93LWV4dGVybmFsIGZlYXR1cmUgYW5kIGVuYWJsZSBmb3IgQmxhY2tCZXJyeS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTItMDctMDMgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERvbid0IGFyY2hpdmUgYnVpbGQgZmlsZXMg
Z2VuZXJhdGVkIGJ5IFZTMjAxMApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbQkocmV2aXNpb24gMTIxODA1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0Zl
YXR1cmVMaXN0LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDcgQEAgbXkgKAogICAg
ICR3ZWJBdWRpb1N1cHBvcnQsCiAgICAgJHdlYlNvY2tldHNTdXBwb3J0LAogICAgICR3ZWJUaW1p
bmdTdXBwb3J0LAorICAgICR3aW5kb3dFeHRlcm5hbFN1cHBvcnQsCiAgICAgJHdvcmtlcnNTdXBw
b3J0LAogICAgICR4c2x0U3VwcG9ydCwKICk7CkBAIC0zODQsNiArMzg1LDkgQEAgbXkgQGZlYXR1
cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJ3ZWItdGltaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFdl
YiBUaW1pbmcgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfVElNSU5HIiwg
ZGVmYXVsdCA9PiAoaXNCbGFja0JlcnJ5KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUg
PT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0sCiAKKyAgICB7IG9wdGlvbiA9PiAid2luZG93LWV4dGVy
bmFsIiwgZGVzYyA9PiAiVG9nZ2xlIFdpbmRvdyBFeHRlcm5hbCBpbnRlcmZhY2Ugc3VwcG9ydCIs
CisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XSU5ET1dfRVhURVJOQUwiLCBkZWZhdWx0ID0+IGlz
QmxhY2tCZXJyeSgpLCB2YWx1ZSA9PiBcJHdpbmRvd0V4dGVybmFsU3VwcG9ydCB9LAorCiAgICAg
eyBvcHRpb24gPT4gIndvcmtlcnMiLCBkZXNjID0+ICJUb2dnbGUgV29ya2VycyBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dPUktFUlMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2Vi
S2l0KCkgfHwgaXNHdGsoKSB8fCBpc0JsYWNrQmVycnkoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4g
XCR3b3JrZXJzU3VwcG9ydCB9LAogCg==
</data>
<flag name="commit-queue"
          id="158976"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150706</attachid>
            <date>2012-07-03 18:48:54 -0700</date>
            <delta_ts>2012-07-03 19:19:47 -0700</delta_ts>
            <desc>Updated third draft, possibly fixing a few ports.</desc>
            <filename>90501.patch</filename>
            <type>text/plain</type>
            <size>32865</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTgw
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA3
LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQg
Q01ha2Ugc3VwcG9ydCBmb3IgdGhlIHdpbmRvdyBleHRlcm5hbCBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09w
dGlvbnNCbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNt
YWtlOgorCiAyMDEyLTA3LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIG1pY3JvZGF0YSBzdXBwb3J0IGZvciBCbGFj
a0JlcnJ5LgpJbmRleDogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2NtYWtlY29uZmlnLmguY21ha2UJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfV0VCX0lOVEVOVFNfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVf
V0VCX1NPQ0tFVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9XRUJfVElNSU5HCisjY21ha2VkZWZp
bmUwMSBFTkFCTEVfV0lORE9XX0VYVEVSTkFMCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfV09SS0VS
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1hTTFQKICNjbWFrZWRlZmluZTAxIFVTRV9TWVNURU1f
TUFMTE9DCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NiBAQAorMjAxMi0wNy0wMyAg
R2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgSW50ZXJmYWNlIiBhbmQgaXRzIGZ1bmN0aW9ucwor
ICAgICAgICBBZGRTZWFyY2hQcm92aWRlciBhbmQgSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZC4K
KyAgICAgICAgQXR0ZW1wdCB0byBrZWVwIGFsbCBwb3J0cyBzdGlsbCBidWlsZGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9l
eHRlcm5hbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6
RXh0ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZXJuYWw6On5FeHRlcm5hbCk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6YWRkU2VhcmNoUHJvdmlkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZXJuYWw6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQpOgorICAgICAgICAqIE1v
ZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChFeHRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRl
cm5hbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbDog
QWRkZWQuCisgICAgICAgICogV2ViQ29yZS5neXAvV2ViQ29yZS5neXA6CisgICAgICAgICogV2Vi
Q29yZS5wcmk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmVDb21tb24udnNwcm9wczoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJv
ai9jb3B5Rm9yd2FyZGluZ0hlYWRlcnMuY21kOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjphZGRTZWFyY2hQ
cm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmlzU2VhcmNoUHJvdmlkZXJJbnN0
YWxsZWQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgIChDaHJvbWUpOgorICAg
ICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphZGRTZWFyY2hQcm92aWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
fkRPTVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyRE9NV2luZG93
UHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6ZXh0ZXJuYWwpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aWRsOgorCiAyMDEyLTA3LTAzICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUHJvdGVjdCB0aGlzIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBpbiBjYW5jZWwo
KSB0byBoYW5kbGUgcmVlbnRyYW5jeSBwcm9wZXJseS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJ
RVMKICAgICAiJHtXRUJDT1JFX0RJUn0iCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZXh0
ZXJuYWwiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZmlsZXN5c3RlbSIKICAgICAiJHtX
RUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2NhdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9pbmRleGVkZGIiCkBAIC0yNjM4LDYgKzI2MzksMTUgQEAgSUYgKEVOQUJMRV9XRUJfSU5U
RU5UUykKICAgICApCiBFTkRJRiAoKQogCitJRiAoRU5BQkxFX1dJTkRPV19FWFRFUk5BTCkKKyAg
ICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBNb2R1bGVzL2V4dGVybmFs
L0V4dGVybmFsLmlkbAorICAgICkKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAg
ICAgICAgTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHAKKyAgICApCitFTkRJRiAoKQorCiBp
ZiAoRU5BQkxFX1FVT1RBKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAg
ICBNb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLmNwcAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDcgQEAKICNpbmNsdWRlICJK
U0V2ZW50LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJK
U0V2ZW50U291cmNlLmNwcCIKKyNpbmNsdWRlICJKU0V4dGVybmFsLmNwcCIKICNpbmNsdWRlICJK
U0ZpbGUuY3BwIgogI2luY2x1ZGUgIkpTRmlsZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0Zp
bGVFbnRyeS5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTIxODA1KQor
KysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTExLDYg
KzExLDcgQEAgd2ViY29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJk
UGFydHkvQU5HTEUvaW5jbHVkZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9HTFNMQU5HIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZSBcCisJLUkk
KHNyY2RpcikvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbCBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dhbWVwYWQgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24gXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkJKHJldmlzaW9uIDEyMTgwNSkK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw2ICsx
Nyw3IEBAIFdFQkNPUkVfR0VORVJBVEVEX1NPVVJDRVNfRElSID0gJCR7Uk9PVF8KIAogSU5DTFVE
RVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUiBcCisgICAgJCRTT1VSQ0VfRElSL01vZHVsZXMv
ZXh0ZXJuYWwgXAogICAgICQkU09VUkNFX0RJUi9Nb2R1bGVzL2ZpbGVzeXN0ZW0gXAogICAgICQk
U09VUkNFX0RJUi9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKICAgICAkJFNPVVJDRV9ESVIvTW9kdWxl
cy9pbmRleGVkZGIgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRl
cm5hbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9F
eHRlcm5hbC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVy
bmFsL0V4dGVybmFsLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8KKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFeHRlcm5hbC5oIgorCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKKworI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlN0cmluZy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0V4dGVybmFsOjpFeHRlcm5hbChjb25zdCBET01XaW5kb3cgKndpbmRvdykKKzog
bV93aW5kb3cod2luZG93KQoreworfQorCitFeHRlcm5hbDo6fkV4dGVybmFsKCkKK3sKK30KKwor
dm9pZCBFeHRlcm5hbDo6YWRkU2VhcmNoUHJvdmlkZXIoY29uc3QgU3RyaW5nJiB1cmwsIEV4Y2Vw
dGlvbkNvZGUmKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fd2luZG93LT5kb2N1bWVu
dCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBh
Z2UgPSBkb2N1bWVudC0+cGFnZSgpOworICAgIGlmICghcGFnZSB8fCAhcGFnZS0+Y2hyb21lKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5hZGRTZWFyY2hQcm92aWRl
cih1cmwpOworfQorCit1bnNpZ25lZCBsb25nIEV4dGVybmFsOjppc1NlYXJjaFByb3ZpZGVySW5z
dGFsbGVkKGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJikKK3sKKyAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBtX3dpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOwor
ICAgIGlmICghcGFnZSB8fCAhcGFnZS0+Y2hyb21lKCkpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLT5pc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKHVybCk7
Cit9CisKK30KKworI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJu
YWwvRXh0ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVy
bmFsL0V4dGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4
dGVybmFsL0V4dGVybmFsLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKKyNpZm5kZWYgRXh0ZXJuYWxfaAorI2RlZmlu
ZSBFeHRlcm5hbF9oCisKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorCisjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBhc3NSZWZQdHIuaCIKKyNpbmNsdWRlICJSZWZD
b3VudGVkLmgiCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKKworY2xhc3MgRXh0ZXJuYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxFeHRlcm5hbD4geworcHJpdmF0ZToKKyAgICBFeHRlcm5hbChjb25zdCBE
T01XaW5kb3cqKTsKKworICAgIGNvbnN0IERPTVdpbmRvdyogbV93aW5kb3c7CisKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFeHRlcm5hbD4gY3JlYXRlKGNvbnN0IERPTVdpbmRvdyog
d2luZG93KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRXh0ZXJuYWwod2luZG93KSk7IH0KKyAgICB+
RXh0ZXJuYWwoKTsKKworICAgIHZvaWQgYWRkU2VhcmNoUHJvdmlkZXIoY29uc3QgV1RGOjpTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgbG9uZyBpc1NlYXJjaFByb3ZpZGVy
SW5zdGFsbGVkKGNvbnN0IFdURjo6U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworfTsKKworfQor
CisjZW5kaWYKKworI2VuZGlmCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJu
YWwvRXh0ZXJuYWwuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0
ZXJuYWwvRXh0ZXJuYWwuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9leHRlcm5hbC9FeHRlcm5hbC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisKK21vZHVsZSB3aW5kb3cgeworCisg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0lORE9XX0VYVEVSTkFMLAorICAg
ICAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAg
XSBFeHRlcm5hbCB7CisgICAgICAgIHZvaWQgQWRkU2VhcmNoUHJvdmlkZXIoaW4gRE9NU3RyaW5n
IGVuZ2luZVVSTCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHVuc2lnbmVkIGxvbmcg
SXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChpbiBET01TdHJpbmcgZW5naW5lVVJMKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICB9OworCit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXAvV2ViQ29yZS5neXAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDcgQEAKICAgICAg
ICcuLi8nLAogICAgICAgJy4uLy4uJywKICAgICAgICcuLi9Nb2R1bGVzL2JhdHRlcnknLAorICAg
ICAgJy4uL01vZHVsZXMvZXh0ZXJuYWwnLAogICAgICAgJy4uL01vZHVsZXMvZmlsZXN5c3RlbScs
CiAgICAgICAnLi4vTW9kdWxlcy9maWxlc3lzdGVtL2Nocm9taXVtJywKICAgICAgICcuLi9Nb2R1
bGVzL2dhbWVwYWQnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNDkyNyw2ICsyNDkyNywx
OCBAQAogCQkJCTwvRmlsZT4KIAkJCTwvRmlsdGVyPgogCQkJPEZpbHRlcgorCQkJCU5hbWU9ImV4
dGVybmFsIgorCQkJCT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNc
ZXh0ZXJuYWxcRXh0ZXJuYWwuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHRlcm5hbFxFeHRlcm5hbC5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWx0ZXI+CisJCQk8Rmls
dGVyCiAJCQkJTmFtZT0icXVvdGEiCiAJCQkJPgogCQkJCTxGaWxlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCShyZXZp
c2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlQ29t
bW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAJPgogCTxUb29sCiAJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9
IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxl
c1xmaWxlc3lzdGVtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGdlb2xvY2F0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGluZGV4ZWRkYiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xxdW90YSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9k
dWxlc1x3ZWJzb2NrZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlk
Z2VcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxyZW5kZXJpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRo
bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYmluZGluZ3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxiaW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cZG9tJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5caHRtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxodG1sXHNoYWRvdyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGxvYWRlclxhcHBjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hp
dmUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGxvYWRlclxpY29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5ccGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGxhdGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xj
YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
eG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGx1Z2luc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cc3ZnXHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xn
cmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdt
bCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rpcilc
aW5jbHVkZVxzcWxpdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
SmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
emxpYiZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9q
ZWN0RGlyKS4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGZpbGVzeXN0ZW0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcZ2VvbG9jYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcaW5kZXhlZGRiJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxNb2R1bGVzXGV4dGVybmFsJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1
bGVzXHF1b3RhJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXHdlYmRhdGFiYXNl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXHdlYnNvY2tldHMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGFjY2Vzc2liaWxpdHkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXGFjY2Vzc2liaWxpdHlcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxjJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxicmlkZ2VcanNjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxjc3MmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGVkaXRpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGZpbGVhcGkmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccmVuZGVyaW5nXHN0eWxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJp
bmdcc3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5ncyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cYmluZGluZ3NcZ2VuZXJpYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cYmluZGluZ3NcanMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzXHNw
ZWNpYWxpemF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb20mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGRvbVxkZWZhdWx0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxo
aXN0b3J5JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxodG1sXGNhbnZhcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxw
YXJzZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcc2hhZG93JnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxpbnNwZWN0b3ImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxv
YWRlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFwcGNhY2hlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2ZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cbG9hZGVyXGFyY2hpdmVcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRl
clxjYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGljb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXG1hdGhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbm90
aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGFnZVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBhZ2Vcc2Nyb2xsaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdlXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cbW9jayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cc3FsJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHBsYXRmb3JtXG5ldHdvcmsmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XG5ldHdvcmtcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxjZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3MmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpciku
LlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXGFybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5ccGxhdGZvcm1cZ3JhcGhpY3Ncb3BlbnR5cGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXGdyYXBoaWNzXHRyYW5zZm9ybXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXHRleHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXHRleHRc
dHJhbnNjb2RlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx4bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHhtbFxwYXJzZXImcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9i
alxXZWJDb3JlXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVn
aW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbHVnaW5zXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5cc3ZnXGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
c3ZnXGdyYXBoaWNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdccHJvcGVydGllcyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3ZnXGdyYXBoaWNzXGZpbHRlcnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cdGVzdGlu
ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd21sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxzdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx3ZWJzb2NrZXRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcikuLlx3b3JrZXJzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxp
bmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1
ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
Rm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1
ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHNxbGl0ZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVx6bGliJnF1b3Q7IgogCQlQcmVwcm9jZXNz
b3JEZWZpbml0aW9ucz0iX19XSU4zMl9fO0RJU0FCTEVfM0RfUkVOREVSSU5HO1dFQkNPUkVfQ09O
VEVYVF9NRU5VUyIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVh
ZGVyVGhyb3VnaD0iV2ViQ29yZVByZWZpeC5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovY29weUZvcndhcmRpbmdIZWFkZXJzLmNtZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9jb3B5Rm9yd2FyZGluZ0hlYWRlcnMuY21kCShyZXZpc2lv
biAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9jb3B5Rm9yd2FyZGlu
Z0hlYWRlcnMuY21kCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw2ICsxOSw3IEBAIG1rZGlyIDI+TlVM
ICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmMKIAogeGNvcHkgL3kgL2QgIiVQcm9qZWN0RGly
JS4uXGNvbmZpZy5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlIgog
eGNvcHkgL3kgL2QgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXG9ialxXZWJDb3JlXERlcml2ZWRT
b3VyY2VzXCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKK3hj
b3B5IC95IC9kICIlUHJvamVjdERpciUuLlxNb2R1bGVzXGV4dGVybmFsXCouaCIgIiVDT05GSUdV
UkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKIHhjb3B5IC95IC9kICIlUHJvamVjdERp
ciUuLlxNb2R1bGVzXGZpbGVzeXN0ZW1cKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5j
bHVkZVxXZWJDb3JlIgogeGNvcHkgL3kgL2QgIiVQcm9qZWN0RGlyJS4uXE1vZHVsZXNcZ2VvbG9j
YXRpb25cKi5oIiAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlIgogeGNv
cHkgL3kgL2QgIiVQcm9qZWN0RGlyJS4uXE1vZHVsZXNccXVvdGFcKi5oIiAiJUNPTkZJR1VSQVRJ
T05CVUlMRERJUiVcaW5jbHVkZVxXZWJDb3JlIgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTIxODA1KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDE1MSw2ICsxMDE1MSw5IEBACiAJCThGNjc1NjE5MTI4OEIxN0IwMDQ3QUNB
MyAvKiBFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50
UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODMxMTg5RjFFRTAw
NTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01haW5UaHJlYWRFeGVjU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01haW5UaHJlYWRF
eGVjU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RkE3QjZDNDE1QTJC
MUFFMDA3Qzc2ODggLyogRXh0ZXJuYWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gRXh0ZXJuYWwuY3BwOyBwYXRoID0gTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThGQTdCNkM1MTVBMkIxQUUwMDdDNzY4
OCAvKiBFeHRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFeHRlcm5h
bC5oOyBwYXRoID0gTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4RkE3QjZDNjE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJuYWwuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IEV4dGVybmFsLmlkbDsgcGF0aCA9IE1vZHVsZXMvZXh0ZXJu
YWwvRXh0ZXJuYWwuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MDAxNzczRDEy
RTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgcGF0
aCA9IGNhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTAwMTc3M0UxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5oOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTAwMTc3M0YxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IE9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuaWRsOyBwYXRoID0gY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MjMsNiArMTY5MjYsMTYgQEAKIAkJ
CXBhdGggPSBsZXZlbGRiOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOEZB
N0I2QzkxNUEyQjFDMTAwN0M3Njg4IC8qIGV4dGVybmFsICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk4RkE3QjZDNDE1QTJCMUFFMDA3Qzc2ODggLyogRXh0
ZXJuYWwuY3BwICovLAorCQkJCThGQTdCNkM1MTVBMkIxQUUwMDdDNzY4OCAvKiBFeHRlcm5hbC5o
ICovLAorCQkJCThGQTdCNkM2MTVBMkIxQUUwMDdDNzY4OCAvKiBFeHRlcm5hbC5pZGwgKi8sCisJ
CQkpOworCQkJbmFtZSA9IGV4dGVybmFsOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJOTMzMDlEODYwOTlFNjQ5MTAwNTZFNTgxIC8qIGVkaXRpbmcgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTc0OTAsNiArMTc1MDMsNyBAQAogCQk5
NzExNDVGRTE0RUYwMDZFMDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOEZBN0I2QzkxNUEyQjFDMTAwN0M3Njg4IC8qIGV4
dGVybmFsICovLAogCQkJCTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2NhdGlvbiAq
LywKIAkJCQk5NzEyQTU1MzE1MDA0RTNDMDA0OEFGMTAgLyogaW5kZXhlZGRiICovLAogCQkJCTg5
RjYwQjA4MTU3RjY4MzUwMDc1RTE1NyAvKiBxdW90YSAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDQgKzU1NCwxNSBAQCBib29sIENocm9tZTo6cmVxdWly
ZXNGdWxsc2NyZWVuRm9yVmlkZW9QCiAgICAgcmV0dXJuIG1fY2xpZW50LT5yZXF1aXJlc0Z1bGxz
Y3JlZW5Gb3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFM
KQordm9pZCBDaHJvbWU6OmFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsKQorewor
ICAgIG1fY2xpZW50LT5hZGRTZWFyY2hQcm92aWRlcih1cmwpOworfQorCit1bnNpZ25lZCBsb25n
IENocm9tZTo6aXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcmIHVybCkKK3sK
KyAgICByZXR1cm4gbV9jbGllbnQtPmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQodXJsKTsKK30K
KyNlbmRpZgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCShy
ZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzAsNiArMTcwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
UGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAorI2lmIEVOQUJMRShXSU5ET1dfRVhU
RVJOQUwpCisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJp
bmcmKTsKKyAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGlzU2VhcmNoUHJvdmlkZXJJbnN0
YWxsZWQoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKICAgICBwcml2YXRlOgogICAgICAgICBDaHJv
bWUoUGFnZSosIENocm9tZUNsaWVudCopOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1Myw2ICszNTMsMTEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludGVyTG9ja2VkKCkgeyByZXR1cm4gZmFs
c2U7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKKyAgICAgICAgdmly
dHVhbCB2b2lkIGFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmluZyYpIHsgfQorICAgICAgICB2
aXJ0dWFsIHVuc2lnbmVkIGxvbmcgaXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJp
bmcmKSB7IHJldHVybiAwOyB9CisjZW5kaWYKKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgdmly
dHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgIkV2ZW50
TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgorI2luY2x1ZGUgIkV4dGVybmFsLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCkBAIC00MjMs
NiArNDI0LDkgQEAgRE9NV2luZG93Ojp+RE9NV2luZG93KCkKICNlbmRpZgogICAgIH0KICNlbmRp
ZgorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCisgICAgQVNTRVJUKCFtX2V4dGVybmFsKTsK
KyNlbmRpZgogCiAgICAgaWYgKG1fc3VzcGVuZGVkRm9yUGFnZUNhY2hlKQogICAgICAgICB3aWxs
RGVzdHJveUNhY2hlZEZyYW1lKCk7CkBAIC01OTAsNiArNTk0LDkgQEAgdm9pZCBET01XaW5kb3c6
OmNsZWFyRE9NV2luZG93UHJvcGVydGllcwogI2lmIEVOQUJMRShCTE9CKQogICAgIG1fZG9tVVJM
ID0gMDsKICNlbmRpZgorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCisgICAgbV9leHRlcm5h
bCA9IDA7CisjZW5kaWYKIH0KIAogYm9vbCBET01XaW5kb3c6OmlzQ3VycmVudGx5RGlzcGxheWVk
SW5GcmFtZSgpIGNvbnN0CkBAIC0xOTI4LDQgKzE5MzUsMTMgQEAgdm9pZCBET01XaW5kb3c6OnNo
b3dNb2RhbERpYWxvZyhjb25zdCBTdAogICAgIGRpYWxvZ0ZyYW1lLT5wYWdlKCktPmNocm9tZSgp
LT5ydW5Nb2RhbCgpOwogfQogCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKK0V4dGVybmFs
KiBET01XaW5kb3c6OmV4dGVybmFsKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fZXh0ZXJuYWwgJiYg
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIG1fZXh0ZXJuYWwgPSBFeHRl
cm5hbDo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX2V4dGVybmFsLmdldCgpOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAko
d29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3MgRWxlbWVudDsKICAgICBjbGFzcyBFdmVudExpc3Rl
bmVyOworICAgIGNsYXNzIEV4dGVybmFsOwogICAgIGNsYXNzIEZsb2F0UmVjdDsKICAgICBjbGFz
cyBGcmFtZTsKICAgICBjbGFzcyBIaXN0b3J5OwpAQCAtMzkxLDYgKzM5MiwxMCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgd2lsbERldGFjaERvY3VtZW50RnJvbUZyYW1lKCk7
CiAgICAgICAgIHZvaWQgd2lsbERlc3Ryb3lDYWNoZWRGcmFtZSgpOwogCisjaWYgRU5BQkxFKFdJ
TkRPV19FWFRFUk5BTCkKKyAgICAgICAgRXh0ZXJuYWwqIGV4dGVybmFsKCkgY29uc3Q7CisjZW5k
aWYKKwogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IERPTVdpbmRvdyhGcmFtZSopOwog
CkBAIC00NTIsNiArNDU3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoQkxP
QikKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8RE9NVVJMPiBtX2RvbVVSTDsKICNlbmRpZgorCisj
aWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKKyAgICAgICAgbXV0YWJsZSBSZWZQdHI8RXh0ZXJu
YWw+IG1fZXh0ZXJuYWw7CisjZW5kaWYKICAgICB9OwogCiAgICAgaW5saW5lIFN0cmluZyBET01X
aW5kb3c6OnN0YXR1cygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShy
ZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTIwMCw2ICsyMDAsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIFBlcmZvcm1hbmNlIHBlcmZvcm1hbmNlOwogI2VuZGlm
CiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9XSU5ET1dfRVhURVJOQUwpICYmIEVOQUJMRV9XSU5ET1df
RVhURVJOQUwKKyAgICAgICAgYXR0cmlidXRlIFtSZXBsYWNlYWJsZV0gRXh0ZXJuYWwgZXh0ZXJu
YWw7CisjZW5kaWYKKwogICAgICAgICAvLyBUaW1lcnMKICAgICAgICAgW0N1c3RvbV0gbG9uZyBz
ZXRUaW1lb3V0KGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIFRpbWVvdXRIYW5kbGVy
IGhhbmRsZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyB0aW1lb3V0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA3LTAz
ICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBbQmxhY2tC
ZXJyeV0gQWRkIHN1cHBvcnQgZm9yIHRoZSBFeHRlcm5hbCBJbnRlcmZhY2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUwMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmFkZFNlYXJjaFByb3ZpZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEJsYWNrQmVycnk6OmlzU2VhcmNoUHJvdmlkZXJJbnN0
YWxsZWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnku
aDoKKyAgICAgICAgKENocm9tZUNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTA3LTAzICBHZW9y
Z2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
RW5hYmxlIEN1c3RvbSBTY2hlbWUgSGFuZGxlcnMgZm9yIEJsYWNrQmVycnkuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJy
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJy
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyNiw0ICs4MjYsMTUgQEAgdm9pZCBDaHJvbWVDbGll
bnRCbGFja0JlcnJ5OjpyZWdpc3RlclBybwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lORE9X
X0VYVEVSTkFMKQordm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjphZGRTZWFyY2hQcm92aWRl
cihjb25zdCBTdHJpbmcmIHVybCkKK3sKK30KKwordW5zaWduZWQgbG9uZyBDaHJvbWVDbGllbnRC
bGFja0JlcnJ5Ojppc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNvbnN0IFN0cmluZyYgdXJsKQor
eworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAkocmV2aXNpb24gMTIxODA1KQorKysg
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDYgKzE0OCwxMSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpQYWdlUG9wdXAqIG9wZW5QYWdlUG9wdXAoV2ViQ29yZTo6UGFnZVBv
cHVwQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVBhZ2VQb3B1cChXZWJDb3JlOjpQYWdlUG9wdXAqKTsKIAorI2lmIEVOQUJMRShXSU5ET1df
RVhURVJOQUwpCisgICAgdmlydHVhbCB2b2lkIGFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmlu
ZyYpOworICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBpc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVk
KGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJ
TkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3Jh
cGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCk7CkluZGV4OiBTb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21h
a2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCShy
ZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UJ
KHdvcmtpbmcgY29weSkKQEAgLTE2OSw2ICsxNjksNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfVklCUkFUSU9OIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1ZJREVPIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9U
SU1JTkcgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0lORE9X
X0VYVEVSTkFMIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dP
UktFUlMgT04pCiAKIElGIChFTkFCTEVfR0xFUzIpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE4MDUpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wNy0wMyAgR2Vv
cmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHRoZSB3aW5kb3ctZXh0ZXJuYWwgZmVhdHVyZSBhbmQgZW5hYmxlIGZvciBCbGFja0JlcnJ5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbToKKwogMjAxMi0wNy0wMyAgVG9ueSBDaGFuZyAg
PHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRG9uJ3QgYXJjaGl2ZSBi
dWlsZCBmaWxlcyBnZW5lcmF0ZWQgYnkgVlMyMDEwCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvRmVhdHVyZUxpc3QucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL0ZlYXR1cmVMaXN0LnBtCShyZXZpc2lvbiAxMjE4MDUpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHBlcmwvRmVhdHVyZUxpc3QucG0JKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcsNyBA
QCBteSAoCiAgICAgJHdlYkF1ZGlvU3VwcG9ydCwKICAgICAkd2ViU29ja2V0c1N1cHBvcnQsCiAg
ICAgJHdlYlRpbWluZ1N1cHBvcnQsCisgICAgJHdpbmRvd0V4dGVybmFsU3VwcG9ydCwKICAgICAk
d29ya2Vyc1N1cHBvcnQsCiAgICAgJHhzbHRTdXBwb3J0LAogKTsKQEAgLTM4NCw2ICszODUsOSBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIndlYi10aW1pbmciLCBkZXNjID0+
ICJUb2dnbGUgV2ViIFRpbWluZyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dF
Ql9USU1JTkciLCBkZWZhdWx0ID0+IChpc0JsYWNrQmVycnkoKSB8fCBpc0d0aygpIHx8IGlzRWZs
KCkpLCB2YWx1ZSA9PiBcJHdlYlRpbWluZ1N1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJ3
aW5kb3ctZXh0ZXJuYWwiLCBkZXNjID0+ICJUb2dnbGUgV2luZG93IEV4dGVybmFsIGludGVyZmFj
ZSBzdXBwb3J0IiwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dJTkRPV19FWFRFUk5BTCIsIGRl
ZmF1bHQgPT4gaXNCbGFja0JlcnJ5KCksIHZhbHVlID0+IFwkd2luZG93RXh0ZXJuYWxTdXBwb3J0
IH0sCisKICAgICB7IG9wdGlvbiA9PiAid29ya2VycyIsIGRlc2MgPT4gIlRvZ2dsZSBXb3JrZXJz
IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV09SS0VSUyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzQmxhY2tCZXJyeSgpIHx8IGlzRWZsKCkp
LCB2YWx1ZSA9PiBcJHdvcmtlcnNTdXBwb3J0IH0sCiAK
</data>
<flag name="commit-queue"
          id="158997"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150709</attachid>
            <date>2012-07-03 19:19:47 -0700</date>
            <delta_ts>2012-07-04 00:33:00 -0700</delta_ts>
            <desc>Updated fourth draft, trying to fix win32</desc>
            <filename>90501.patch</filename>
            <type>text/plain</type>
            <size>32878</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTgw
NSkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA3
LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQg
Q01ha2Ugc3VwcG9ydCBmb3IgdGhlIHdpbmRvdyBleHRlcm5hbCBpbnRlcmZhY2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09w
dGlvbnNCbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNt
YWtlOgorCiAyMDEyLTA3LTAzICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIG1pY3JvZGF0YSBzdXBwb3J0IGZvciBCbGFj
a0JlcnJ5LgpJbmRleDogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2NtYWtlY29uZmlnLmguY21ha2UJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfV0VCX0lOVEVOVFNfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVf
V0VCX1NPQ0tFVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9XRUJfVElNSU5HCisjY21ha2VkZWZp
bmUwMSBFTkFCTEVfV0lORE9XX0VYVEVSTkFMCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfV09SS0VS
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1hTTFQKICNjbWFrZWRlZmluZTAxIFVTRV9TWVNURU1f
TUFMTE9DCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NiBAQAorMjAxMi0wNy0wMyAg
R2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgSW50ZXJmYWNlIiBhbmQgaXRzIGZ1bmN0aW9ucwor
ICAgICAgICBBZGRTZWFyY2hQcm92aWRlciBhbmQgSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZC4K
KyAgICAgICAgQXR0ZW1wdCB0byBrZWVwIGFsbCBwb3J0cyBzdGlsbCBidWlsZGluZy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAKKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2V4dGVybmFsOiBBZGRlZC4KKyAgICAgICAgKiBN
b2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkV4dGVybmFsOjpFeHRlcm5hbCk6CisgICAgICAgIChXZWJDb3Jl
OjpFeHRlcm5hbDo6fkV4dGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVybmFsOjphZGRT
ZWFyY2hQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6aXNTZWFyY2hQcm92
aWRlckluc3RhbGxlZCk6CisgICAgICAgICogTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV4dGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVybmFsOjpjcmVhdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cDoKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3By
b3BzOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL2NvcHlGb3J3YXJkaW5nSGVhZGVycy5jbWQ6
CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWU6OmFkZFNlYXJjaFByb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZTo6aXNTZWFyY2hQcm92aWRlckluc3RhbGxlZCk6CisgICAgICAgICogcGFnZS9DaHJv
bWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoK
KyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6
OmFkZFNlYXJjaFByb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNT
ZWFyY2hQcm92aWRlckluc3RhbGxlZCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+RE9NV2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6Y2xlYXJET01XaW5kb3dQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpleHRlcm5hbCk6CisgICAgICAgICog
cGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93
KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDctMDMgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBQcm90ZWN0IHRoaXMgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyIGluIGNhbmNlbCgpIHRvIGhhbmRsZSByZWVudHJhbmN5IHByb3Bl
cmx5LgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAog
U0VUKFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfSIKKyAg
ICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9leHRlcm5hbCIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9maWxlc3lzdGVtIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0
aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2luZGV4ZWRkYiIKQEAgLTI2MzgsNiAr
MjYzOSwxNSBAQCBJRiAoRU5BQkxFX1dFQl9JTlRFTlRTKQogICAgICkKIEVORElGICgpCiAKK0lG
IChFTkFCTEVfV0lORE9XX0VYVEVSTkFMKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJ
TEVTCisgICAgICAgIE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaWRsCisgICAgKQorICAgIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBNb2R1bGVzL2V4dGVybmFsL0V4dGVy
bmFsLmNwcAorICAgICkKK0VORElGICgpCisKIGlmIChFTkFCTEVfUVVPVEEpCiAgICAgTElTVChB
UFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgIE1vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVv
dGEuY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiAxMjE4MDUp
CisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNSw2ICsxMTUsOSBAQAogI2luY2x1ZGUgIkpTRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTRXZl
bnRFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkpTRXZlbnRTb3VyY2UuY3BwIgorI2lmIEVOQUJM
RShXSU5ET1dfRVhURVJOQUwpICAgIAorI2luY2x1ZGUgIkpTRXh0ZXJuYWwuY3BwIgorI2VuZGlm
CiAjaW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVDYWxsYmFjay5jcHAiCiAj
aW5jbHVkZSAiSlNGaWxlRW50cnkuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0xMSw2ICsxMSw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIp
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9U
aGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvR0xTTEFORyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dl
YkNvcmUgXAorCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwgXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbSBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nYW1lcGFkIFwKIAktSSQoc3JjZGlyKS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCShyZXZp
c2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQkod29ya2luZyBjb3B5
KQpAQCAtMTcsNiArMTcsNyBAQCBXRUJDT1JFX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUiA9ICQke1JP
T1RfCiAKIElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIgXAorICAgICQkU09VUkNF
X0RJUi9Nb2R1bGVzL2V4dGVybmFsIFwKICAgICAkJFNPVVJDRV9ESVIvTW9kdWxlcy9maWxlc3lz
dGVtIFwKICAgICAkJFNPVVJDRV9ESVIvTW9kdWxlcy9nZW9sb2NhdGlvbiBcCiAgICAgJCRTT1VS
Q0VfRElSL01vZHVsZXMvaW5kZXhlZGRiIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZXh0ZXJuYWwvRXh0ZXJuYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICovCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRXh0ZXJuYWwuaCIKKworI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwp
CisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTdHJpbmcuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitFeHRlcm5hbDo6RXh0ZXJuYWwoY29uc3QgRE9NV2luZG93
ICp3aW5kb3cpCis6IG1fd2luZG93KHdpbmRvdykKK3sKK30KKworRXh0ZXJuYWw6On5FeHRlcm5h
bCgpCit7Cit9CisKK3ZvaWQgRXh0ZXJuYWw6OmFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmlu
ZyYgdXJsLCBFeGNlcHRpb25Db2RlJikKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX3dp
bmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwgIXBh
Z2UtPmNocm9tZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+YWRk
U2VhcmNoUHJvdmlkZXIodXJsKTsKK30KKwordW5zaWduZWQgbG9uZyBFeHRlcm5hbDo6aXNTZWFy
Y2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcmIHVybCwgRXhjZXB0aW9uQ29kZSYpCit7
CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV93aW5kb3ctPmRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1l
bnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmNocm9tZSgpKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS0+aXNTZWFyY2hQcm92aWRlcklu
c3RhbGxlZCh1cmwpOworfQorCit9CisKKyNlbmRpZgorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZuZGVmIEV4dGVy
bmFsX2gKKyNkZWZpbmUgRXh0ZXJuYWxfaAorCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkK
KworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJQYXNzUmVmUHRyLmgiCisj
aW5jbHVkZSAiUmVmQ291bnRlZC5oIgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIFN0cmluZzsK
K30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CisKK2NsYXNzIEV4
dGVybmFsIDogcHVibGljIFJlZkNvdW50ZWQ8RXh0ZXJuYWw+IHsKK3ByaXZhdGU6CisgICAgRXh0
ZXJuYWwoY29uc3QgRE9NV2luZG93Kik7CisKKyAgICBjb25zdCBET01XaW5kb3cqIG1fd2luZG93
OworCitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXh0ZXJuYWw+IGNyZWF0ZShjb25z
dCBET01XaW5kb3cqIHdpbmRvdykgeyByZXR1cm4gYWRvcHRSZWYobmV3IEV4dGVybmFsKHdpbmRv
dykpOyB9CisgICAgfkV4dGVybmFsKCk7CisKKyAgICB2b2lkIGFkZFNlYXJjaFByb3ZpZGVyKGNv
bnN0IFdURjo6U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIGxvbmcgaXNT
ZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBXVEY6OlN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KTsKK307CisKK30KKworI2VuZGlmCisKKyNlbmRpZgorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCittb2R1bGUg
d2luZG93IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVdJTkRPV19F
WFRFUk5BTCwKKyAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCisgICAgICAgIE9taXRDb25z
dHJ1Y3RvcgorICAgIF0gRXh0ZXJuYWwgeworICAgICAgICB2b2lkIEFkZFNlYXJjaFByb3ZpZGVy
KGluIERPTVN0cmluZyBlbmdpbmVVUkwpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB1
bnNpZ25lZCBsb25nIElzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoaW4gRE9NU3RyaW5nIGVuZ2lu
ZVVSTCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKKworfQpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2ICs1
Miw3IEBACiAgICAgICAnLi4vJywKICAgICAgICcuLi8uLicsCiAgICAgICAnLi4vTW9kdWxlcy9i
YXR0ZXJ5JywKKyAgICAgICcuLi9Nb2R1bGVzL2V4dGVybmFsJywKICAgICAgICcuLi9Nb2R1bGVz
L2ZpbGVzeXN0ZW0nLAogICAgICAgJy4uL01vZHVsZXMvZmlsZXN5c3RlbS9jaHJvbWl1bScsCiAg
ICAgICAnLi4vTW9kdWxlcy9nYW1lcGFkJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjQ5
MjcsNiArMjQ5MjcsMTggQEAKIAkJCQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4KIAkJCTxGaWx0ZXIK
KwkJCQlOYW1lPSJleHRlcm5hbCIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxNb2R1bGVzXGV4dGVybmFsXEV4dGVybmFsLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXh0ZXJuYWxcRXh0ZXJu
YWwuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDwvRmls
dGVyPgorCQkJPEZpbHRlcgogCQkJCU5hbWU9InF1b3RhIgogCQkJCT4KIAkJCQk8RmlsZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmVDb21tb24u
dnNwcm9wcwkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZUNvbW1vbi52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAog
CT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlBZGRpdGlvbmFsSW5jbHVk
ZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXE1vZHVsZXNcZmlsZXN5c3RlbSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9k
dWxlc1xnZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xpbmRl
eGVkZGImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNccXVvdGEmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXE1vZHVsZXNcd2ViZGF0YWJhc2UmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXE1vZHVsZXNcd2Vic29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
YWNjZXNzaWJpbGl0eSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYWNjZXNzaWJpbGl0eVx3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZSZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cYnJpZGdlXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJyaWRnZVxqc2Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGNzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cZWRpdGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZmlsZWFwaSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccmVuZGVyaW5nJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxy
ZW5kZXJpbmdcbWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJpbmdcc3R5
bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdmcmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5k
aW5nc1xnZW5lcmljJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxiaW5kaW5nc1xqcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3NcanNcc3BlY2lhbGl6YXRpb24mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGRvbSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9t
XGRlZmF1bHQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGhpc3RvcnkmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGh0bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGh0bWxcY2Fu
dmFzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHBhcnNlciZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5caHRtbFxzaGFkb3cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGlu
c3BlY3RvciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxsb2FkZXJcYXBwY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XGxvYWRlclxhcmNoaXZlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxsb2FkZXJcYXJjaGl2
ZVxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGNhY2hlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxsb2FkZXJcaWNvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
bWF0aG1sJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxub3RpZmljYXRpb25zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwYWdl
XGFuaW1hdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGFnZVxzY3JvbGxpbmcmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cYW5pbWF0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxtb2NrJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxzcWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4u
XHBsYXRmb3JtXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29y
ayZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cbmV0d29ya1x3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcY2EmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBo
aWNzXGZpbHRlcnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNz
XGZpbHRlcnNcYXJtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGlj
c1xvcGVudHlwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
dHJhbnNmb3JtcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cdGV4dFx0cmFuc2NvZGVyJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x3aW4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHhtbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sXHBhcnNlciZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXFdlYkNvcmVcRGVyaXZlZFNv
dXJjZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHBsdWdpbnNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdc
YW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmdcZ3JhcGhpY3MmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xwcm9wZXJ0aWVzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxzdmdcZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
c3ZnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlx0ZXN0aW5nJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlx3bWwmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN0b3JhZ2UmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdlYnNvY2tldHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KS4uXHdvcmtlcnMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFT
Y3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxGb3J3YXJkaW5nSGVhZGVycyZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXGluY2x1ZGVcc3FsaXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxpbmNsdWRlXHpsaWImcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9
IiZxdW90OyQoUHJvamVjdERpcikuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxl
c1xmaWxlc3lzdGVtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGdlb2xvY2F0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxNb2R1bGVzXGluZGV4ZWRkYiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1xleHRlcm5hbCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5cTW9kdWxlc1xxdW90YSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxl
c1x3ZWJkYXRhYmFzZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cTW9kdWxlc1x3ZWJzb2Nr
ZXRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5JnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxhY2Nlc3NpYmlsaXR5XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5cYnJpZGdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxicmlkZ2VcYyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpLi5cYnJpZGdlXGpzYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
Li5cY3NzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxlZGl0aW5nJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxmaWxlYXBpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxyZW5kZXJp
bmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xtYXRobWwmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXHJlbmRlcmluZ1xzdHlsZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpLi5ccmVuZGVyaW5nXHN2ZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cYmluZGluZ3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGdlbmVyaWMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXGJpbmRpbmdzXGpzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxi
aW5kaW5nc1xqc1xzcGVjaWFsaXphdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cZG9t
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxkb21cZGVmYXVsdCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpLi5caGlzdG9yeSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpLi5caHRtbFxjYW52YXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXGh0bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxodG1sXHNoYWRv
dyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5caW5zcGVjdG9yJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcikuLlxsb2FkZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcHBj
YWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cbG9hZGVyXGFyY2hpdmUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxhcmNoaXZlXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcikuLlxsb2FkZXJcY2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXGxvYWRlclxp
Y29uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxtYXRobWwmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKS4uXG5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBhZ2VcYW5pbWF0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwYWdlXHNjcm9sbGluZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5c
cGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHBsYXRmb3JtXG1vY2smcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3Jt
XHNxbCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxuZXR3b3JrJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cikuLlxwbGF0Zm9ybVxuZXR3b3JrXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGxh
dGZvcm1cY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1xjYSZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVycyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xhcm0mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKS4uXHBsYXRmb3JtXGdyYXBoaWNzXG9wZW50eXBlJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVxncmFwaGljc1x0cmFuc2Zvcm1zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcikuLlxwbGF0Zm9ybVx0ZXh0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxw
bGF0Zm9ybVx0ZXh0XHRyYW5zY29kZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHBsYXRm
b3JtXGdyYXBoaWNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ceG1sJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcikuLlx4bWxccGFyc2VyJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcV2ViQ29yZVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpLi5ccGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5ccGx1Z2luc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xhbmltYXRpb24mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cc3Zn
XHByb3BlcnRpZXMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHN2Z1xncmFwaGljc1xmaWx0
ZXJzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcikuLlxzdmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKS4uXHRlc3RpbmcmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKS4uXHdtbCZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpLi5cc3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd2Vi
c29ja2V0cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpLi5cd29ya2VycyZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKS4uXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
XHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVk
ZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxzcWxp
dGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVcemxpYiZxdW90OyIK
IAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fV0lOMzJfXztESVNBQkxFXzNEX1JFTkRFUklO
RztXRUJDT1JFX0NPTlRFWFRfTUVOVVMiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQ
cmVjb21waWxlZEhlYWRlclRocm91Z2g9IldlYkNvcmVQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL2NvcHlGb3J3YXJkaW5nSGVhZGVycy5jbWQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovY29weUZvcndhcmRpbmdIZWFkZXJz
LmNtZAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
Y29weUZvcndhcmRpbmdIZWFkZXJzLmNtZAkod29ya2luZyBjb3B5KQpAQCAtMTksNiArMTksNyBA
QCBta2RpciAyPk5VTCAiJUNPTkZJR1VSQVRJT05CVUlMRERJUiVcaW5jCiAKIHhjb3B5IC95IC9k
ICIlUHJvamVjdERpciUuLlxjb25maWcuaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1
ZGVcV2ViQ29yZSIKIHhjb3B5IC95IC9kICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxvYmpcV2Vi
Q29yZVxEZXJpdmVkU291cmNlc1wqLmgiICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRl
XFdlYkNvcmUiCit4Y29weSAveSAvZCAiJVByb2plY3REaXIlLi5cTW9kdWxlc1xleHRlcm5hbFwq
LmgiICIlQ09ORklHVVJBVElPTkJVSUxERElSJVxpbmNsdWRlXFdlYkNvcmUiCiB4Y29weSAveSAv
ZCAiJVByb2plY3REaXIlLi5cTW9kdWxlc1xmaWxlc3lzdGVtXCouaCIgIiVDT05GSUdVUkFUSU9O
QlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxN
b2R1bGVzXGdlb2xvY2F0aW9uXCouaCIgIiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVc
V2ViQ29yZSIKIHhjb3B5IC95IC9kICIlUHJvamVjdERpciUuLlxNb2R1bGVzXHF1b3RhXCouaCIg
IiVDT05GSUdVUkFUSU9OQlVJTERESVIlXGluY2x1ZGVcV2ViQ29yZSIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTAxNTEsNiArMTAxNTEsOSBAQAogCQk4RjY3NTYxOTEy
ODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0
RDgzMTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5U
aHJlYWRFeGVjU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OEZBN0I2QzQxNUEyQjFBRTAwN0M3Njg4IC8qIEV4dGVybmFsLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEV4dGVybmFsLmNwcDsgcGF0aCA9IE1vZHVsZXMvZXh0ZXJu
YWwvRXh0ZXJuYWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RkE3QjZDNTE1
QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gRXh0ZXJuYWwuaDsgcGF0aCA9IE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEZBN0I2QzYxNUEyQjFBRTAwN0M3Njg4IC8qIEV4
dGVybmFsLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBFeHRlcm5hbC5pZGw7IHBhdGggPSBN
b2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTAwMTc3M0QxMkUwMzQ3ODAwNjQ4NDYyIC8qIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5jcHA7IHBhdGggPSBjYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3NzNFMTJFMDM0NzgwMDY0ODQ2MiAvKiBPRVNT
dGFuZGFyZERlcml2YXRpdmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgcGF0aCA9IGNhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRp
dmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwMDE3NzNGMTJFMDM0NzgwMDY0
ODQ2MiAvKiBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBPRVNTdGFuZGFyZERlcml2YXRpdmVzLmlkbDsgcGF0aCA9IGNhbnZhcy9PRVNTdGFuZGFyZERl
cml2YXRpdmVzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2OTIzLDYgKzE2
OTI2LDE2IEBACiAJCQlwYXRoID0gbGV2ZWxkYjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CiAJCX07CisJCThGQTdCNkM5MTVBMkIxQzEwMDdDNzY4OCAvKiBleHRlcm5hbCAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOEZBN0I2QzQxNUEyQjFBRTAw
N0M3Njg4IC8qIEV4dGVybmFsLmNwcCAqLywKKwkJCQk4RkE3QjZDNTE1QTJCMUFFMDA3Qzc2ODgg
LyogRXh0ZXJuYWwuaCAqLywKKwkJCQk4RkE3QjZDNjE1QTJCMUFFMDA3Qzc2ODggLyogRXh0ZXJu
YWwuaWRsICovLAorCQkJKTsKKwkJCW5hbWUgPSBleHRlcm5hbDsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTkzMzA5RDg2MDk5RTY0OTEwMDU2RTU4MSAvKiBlZGl0aW5nICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE3NDkwLDYgKzE3
NTAzLDcgQEAKIAkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5IC8qIE1vZHVsZXMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCThGQTdCNkM5MTVBMkIxQzEw
MDdDNzY4OCAvKiBleHRlcm5hbCAqLywKIAkJCQk5NzExNDVGRjE0RUYwMDc5MDA2NzRGRDkgLyog
Z2VvbG9jYXRpb24gKi8sCiAJCQkJOTcxMkE1NTMxNTAwNEUzQzAwNDhBRjEwIC8qIGluZGV4ZWRk
YiAqLywKIAkJCQk4OUY2MEIwODE1N0Y2ODM1MDA3NUUxNTcgLyogcXVvdGEgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw0ICs1NTQsMTUgQEAgYm9vbCBD
aHJvbWU6OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUAogICAgIHJldHVybiBtX2NsaWVudC0+
cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpOwogfQogCisjaWYgRU5BQkxFKFdJ
TkRPV19FWFRFUk5BTCkKK3ZvaWQgQ2hyb21lOjphZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJp
bmcmIHVybCkKK3sKKyAgICBtX2NsaWVudC0+YWRkU2VhcmNoUHJvdmlkZXIodXJsKTsKK30KKwor
dW5zaWduZWQgbG9uZyBDaHJvbWU6OmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgU3Ry
aW5nJiB1cmwpCit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5pc1NlYXJjaFByb3ZpZGVySW5zdGFs
bGVkKHVybCk7Cit9CisjZW5kaWYKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50KikgY29uc3Q7CiAgICAgICAgIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAKKyNpZiBFTkFC
TEUoV0lORE9XX0VYVEVSTkFMKQorICAgICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUHJvdmlk
ZXIoY29uc3QgU3RyaW5nJik7CisgICAgICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBpc1NlYXJj
aFByb3ZpZGVySW5zdGFsbGVkKGNvbnN0IFN0cmluZyYpOworI2VuZGlmCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgQ2hyb21lKFBhZ2UqLCBDaHJvbWVDbGllbnQqKTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMsNiArMzUzLDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGlzUG9pbnRlckxvY2tlZCgp
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwp
CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJpbmcmKSB7
IH0KKyAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGlzU2VhcmNoUHJvdmlkZXJJbnN0YWxs
ZWQoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gMDsgfQorI2VuZGlmCisKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgpIHsgfQogICAgIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAxMjE4MDUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAKICNp
bmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJFeHRlcm5hbC5oIgogI2luY2x1ZGUgIkZs
b2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVz
dC5oIgpAQCAtNDIzLDYgKzQyNCw5IEBAIERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCiAjZW5kaWYK
ICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAgIEFTU0VSVCgh
bV9leHRlcm5hbCk7CisjZW5kaWYKIAogICAgIGlmIChtX3N1c3BlbmRlZEZvclBhZ2VDYWNoZSkK
ICAgICAgICAgd2lsbERlc3Ryb3lDYWNoZWRGcmFtZSgpOwpAQCAtNTkwLDYgKzU5NCw5IEBAIHZv
aWQgRE9NV2luZG93OjpjbGVhckRPTVdpbmRvd1Byb3BlcnRpZXMKICNpZiBFTkFCTEUoQkxPQikK
ICAgICBtX2RvbVVSTCA9IDA7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQor
ICAgIG1fZXh0ZXJuYWwgPSAwOworI2VuZGlmCiB9CiAKIGJvb2wgRE9NV2luZG93Ojppc0N1cnJl
bnRseURpc3BsYXllZEluRnJhbWUoKSBjb25zdApAQCAtMTkyOCw0ICsxOTM1LDEzIEBAIHZvaWQg
RE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3QKICAgICBkaWFsb2dGcmFtZS0+cGFn
ZSgpLT5jaHJvbWUoKS0+cnVuTW9kYWwoKTsKIH0KIAorI2lmIEVOQUJMRShXSU5ET1dfRVhURVJO
QUwpCitFeHRlcm5hbCogRE9NV2luZG93OjpleHRlcm5hbCgpIGNvbnN0Cit7CisgICAgaWYgKCFt
X2V4dGVybmFsICYmIGlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICBtX2V4
dGVybmFsID0gRXh0ZXJuYWw6OmNyZWF0ZSh0aGlzKTsKKyAgICByZXR1cm4gbV9leHRlcm5hbC5n
ZXQoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xh
c3MgRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBFeHRlcm5hbDsKICAgICBjbGFzcyBGbG9hdFJl
Y3Q7CiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgSGlzdG9yeTsKQEAgLTM5MSw2ICszOTIs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHdpbGxEZXRhY2hEb2N1bWVu
dEZyb21GcmFtZSgpOwogICAgICAgICB2b2lkIHdpbGxEZXN0cm95Q2FjaGVkRnJhbWUoKTsKIAor
I2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCisgICAgICAgIEV4dGVybmFsKiBleHRlcm5hbCgp
IGNvbnN0OworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICBleHBsaWNpdCBET01XaW5k
b3coRnJhbWUqKTsKIApAQCAtNDUyLDYgKzQ1NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
aWYgRU5BQkxFKEJMT0IpCiAgICAgICAgIG11dGFibGUgUmVmUHRyPERPTVVSTD4gbV9kb21VUkw7
CiAjZW5kaWYKKworI2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCisgICAgICAgIG11dGFibGUg
UmVmUHRyPEV4dGVybmFsPiBtX2V4dGVybmFsOworI2VuZGlmCiAgICAgfTsKIAogICAgIGlubGlu
ZSBTdHJpbmcgRE9NV2luZG93OjpzdGF0dXMoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmlkbAkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDEwIEBAIG1vZHVsZSB3aW5k
b3cgewogICAgICAgICBhdHRyaWJ1dGUgW1JlcGxhY2VhYmxlXSBQZXJmb3JtYW5jZSBwZXJmb3Jt
YW5jZTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfV0lORE9XX0VYVEVSTkFMKSAmJiBF
TkFCTEVfV0lORE9XX0VYVEVSTkFMCisgICAgICAgIGF0dHJpYnV0ZSBbUmVwbGFjZWFibGVdIEV4
dGVybmFsIGV4dGVybmFsOworI2VuZGlmCisKICAgICAgICAgLy8gVGltZXJzCiAgICAgICAgIFtD
dXN0b21dIGxvbmcgc2V0VGltZW91dChpbiBbT3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBU
aW1lb3V0SGFuZGxlciBoYW5kbGVyLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgdGltZW91dCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTgwNSkKKysrIFNvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0wNy0wMyAgR2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgW0JsYWNrQmVycnldIEFkZCBzdXBwb3J0IGZvciB0aGUgRXh0ZXJuYWwgSW50ZXJmYWNl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjphZGRTZWFyY2hQcm92
aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojppc1NlYXJj
aFByb3ZpZGVySW5zdGFsbGVkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwogMjAx
Mi0wNy0wMyAgR2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W0JsYWNrQmVycnldIEVuYWJsZSBDdXN0b20gU2NoZW1lIEhhbmRsZXJzIGZvciBCbGFja0JlcnJ5
LgpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcAkocmV2aXNpb24gMTIx
ODA1KQorKysgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjYsNCArODI2LDE1IEBAIHZv
aWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cmVnaXN0ZXJQcm8KIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKK3ZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6YWRk
U2VhcmNoUHJvdmlkZXIoY29uc3QgU3RyaW5nJiB1cmwpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChjb25zdCBT
dHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgJKHJldmlzaW9u
IDEyMTgwNSkKKysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw2ICsxNDgsMTEgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFnZVBvcHVwKiBvcGVuUGFnZVBvcHVwKFdl
YkNvcmU6OlBhZ2VQb3B1cENsaWVudCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2xvc2VQYWdlUG9wdXAoV2ViQ29yZTo6UGFnZVBvcHVwKik7CiAKKyNpZiBF
TkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hQcm92aWRl
cihjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgaXNTZWFyY2hQcm92
aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXll
cihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVT
aG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpOwpJbmRleDogU291cmNlL2NtYWtlL09wdGlvbnNC
bGFja0JlcnJ5LmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tC
ZXJyeS5jbWFrZQkocmV2aXNpb24gMTIxODA1KQorKysgU291cmNlL2NtYWtlL09wdGlvbnNCbGFj
a0JlcnJ5LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDcgQEAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXwogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX1ZJQlJBVElPTiBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9WSURFTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9XRUJfVElNSU5HIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX1dJTkRPV19FWFRFUk5BTCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9XT1JLRVJTIE9OKQogCiBJRiAoRU5BQkxFX0dMRVMyKQpJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTIxODA1
KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTItMDctMDMgIEdlb3JnZSBTdGFpa29zICA8c3RhaWtvc0B3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciB0aGUgd2luZG93LWV4dGVybmFsIGZlYXR1cmUgYW5kIGVuYWJsZSBm
b3IgQmxhY2tCZXJyeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkwNTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTItMDctMDMg
IFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERv
bid0IGFyY2hpdmUgYnVpbGQgZmlsZXMgZ2VuZXJhdGVkIGJ5IFZTMjAxMApJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQkocmV2aXNpb24gMTIxODA1KQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjcsNiArMTI3LDcgQEAgbXkgKAogICAgICR3ZWJBdWRpb1N1cHBvcnQsCiAgICAgJHdlYlNvY2tl
dHNTdXBwb3J0LAogICAgICR3ZWJUaW1pbmdTdXBwb3J0LAorICAgICR3aW5kb3dFeHRlcm5hbFN1
cHBvcnQsCiAgICAgJHdvcmtlcnNTdXBwb3J0LAogICAgICR4c2x0U3VwcG9ydCwKICk7CkBAIC0z
ODQsNiArMzg1LDkgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJ3ZWItdGlt
aW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBUaW1pbmcgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9XRUJfVElNSU5HIiwgZGVmYXVsdCA9PiAoaXNCbGFja0JlcnJ5KCkgfHwgaXNH
dGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0sCiAKKyAgICB7
IG9wdGlvbiA9PiAid2luZG93LWV4dGVybmFsIiwgZGVzYyA9PiAiVG9nZ2xlIFdpbmRvdyBFeHRl
cm5hbCBpbnRlcmZhY2Ugc3VwcG9ydCIsCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XSU5ET1df
RVhURVJOQUwiLCBkZWZhdWx0ID0+IGlzQmxhY2tCZXJyeSgpLCB2YWx1ZSA9PiBcJHdpbmRvd0V4
dGVybmFsU3VwcG9ydCB9LAorCiAgICAgeyBvcHRpb24gPT4gIndvcmtlcnMiLCBkZXNjID0+ICJU
b2dnbGUgV29ya2VycyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dPUktFUlMi
LCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0JsYWNrQmVycnko
KSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR3b3JrZXJzU3VwcG9ydCB9LAogCg==
</data>
<flag name="review"
          id="159004"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170740</attachid>
            <date>2012-10-25 15:11:54 -0700</date>
            <delta_ts>2012-10-25 15:31:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90501-20121025181027.patch</filename>
            <type>text/plain</type>
            <size>29903</size>
            <attacher>otcheung</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM3MGUzYmE4M2EyMjgz
MDQ4ODlmMTQ1NGM4ZTQwNjE1ODI5NDE3Yi4uMWFmZjc2ZjZkOGY5MjdhZTVhMTc1ZDc2YzBmYTNk
OWU3YjdlNjhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTEwLTI1ICBHZW9y
Z2UgU3RhaWtvcyA8c3RhaWtvc0B3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBIVE1M
NSA2LjUuMiAiVGhlIEV4dGVybmFsIGludGVyZmFjZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJu
YWwgSW50ZXJmYWNlIiBhbmQgaXRzIGZ1bmN0aW9ucworICAgICAgICBBZGRTZWFyY2hQcm92aWRl
ciBhbmQgSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZC4KKworICAgICAgICBUZXN0czogZXh0ZXJu
YWwvc2VhcmNoLXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlkZXItYW5kLWNoZWNrLWluc3RhbGxl
ZC5odG1sCisgICAgICAgICAgICAgICBleHRlcm5hbC9zZWFyY2gtcHJvdmlkZXIvYWRkLXNlYXJj
aC1wcm92aWRlci5odG1sCisgICAgICAgICAgICAgICBleHRlcm5hbC9zZWFyY2gtcHJvdmlkZXIv
aXMtc2VhcmNoLXByb3ZpZGVyLWluc3RhbGxlZC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogTW9kdWxlcy9l
eHRlcm5hbC9FeHRlcm5hbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpFeHRlcm5hbDo6RXh0ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZXJu
YWw6On5FeHRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6YWRkU2VhcmNoUHJv
dmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZXJuYWw6OmlzU2VhcmNoUHJvdmlkZXJJbnN0
YWxsZWQpOgorICAgICAgICAqIE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaDogQWRkZWQuCisg
ICAgICAgIChXVEYpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFeHRlcm5hbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFeHRlcm5hbDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2V4
dGVybmFsL0V4dGVybmFsLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmFkZFNlYXJjaFBy
b3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6aXNTZWFyY2hQcm92aWRlckluc3Rh
bGxlZCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKENocm9tZSk6CisgICAg
ICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFkZFNlYXJjaFByb3ZpZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aXNTZWFyY2hQcm92aWRlckluc3RhbGxlZCk6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojp+
RE9NV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVzZXRET01XaW5kb3dQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpleHRlcm5hbCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoRE9NV2luZG93KToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisKIDIwMTItMTAtMjUgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBHZXQgcmlkIG9mIFNjcmlwdENvbnRyb2xsZXI6OmNsZWFyRm9yTmF2aWdhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZDEzZThiYThkZjFhYTk3YTVhMTJiODQ3MTNi
MWNlMTZjNjRiNzc3OS4uYjJiMjI0NTU5ZTRhN2EwMDBmMDk4MWNiNjhmNzNhYzNlOWM5OTkyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMTAt
MjUgR2VvcmdlIFN0YWlrb3MgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1l
bnQgSFRNTDUgNi41LjIgIlRoZSBFeHRlcm5hbCBpbnRlcmZhY2UiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDUwMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyBzdXBwb3J0IGZvciB3aW5kb3cu
ZXh0ZXJuYWwgaW4gQmxhY2tiZXJyeSBzcGVjaWZpYyBmaWxlcy4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjphZGRTZWFyY2hQcm92
aWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojppc1NlYXJj
aFByb3ZpZGVySW5zdGFsbGVkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKwogMjAx
Mi0xMC0yNCAgU2VhbiBXYW5nICA8WHVld2VuLldhbmdAdG9yY2htb2JpbGUuY29tLmNuPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBBU1NFUlQoIW5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6
YXRpb24oKSkgZmFpbGVkIGluIGNvbW1pdFJvb3RMYXllcklmTmVlZGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggMTY3Nzk4NjhjZjljZTA3ZGY1ZTJkOWM0OTY3MDhhOTNkMmQ2ZGM0Ni4uNDc4
Yjk1NzM4ZWQzZDFkM2ZhMWVjYmEwYTZmZjYyMDIwYzg2YjllMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTI3MjMsNiArMjcyMywxOCBAQCBTRVQoV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMK
ICAgICB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCiApCiAKK0lGIChFTkFCTEVfV0lORE9X
X0VYVEVSTkFMKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9leHRlcm5hbCIKKyAgICApCisgICAgTElT
VChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKKyAgICAgICAgTW9kdWxlcy9leHRlcm5hbC9FeHRl
cm5hbC5pZGwKKyAgICApCisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAg
IE1vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuY3BwCisgICAgKQorRU5ESUYgKCkKKwogIyBNb2R1
bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRvciBzY3JpcHRzIG1heSB1c2UKIFNFVChTQ1JJ
UFRTX1JFU09MVkVfU1VQUExFTUVOVEFMCiAgICAgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA4OTFkMTdl
NWZkYzY2YzdmOGZhYzJhZWU2M2Q0ZmI2NWU0ZjY4Yjc3Li41NTUwN2Q4YmUzYjhlYjI1NWM1Mjk3
NGY0ZGQ1MTRhMDE5OWZmNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0xMjEs
NiArMTIxLDkgQEAKICNpbmNsdWRlICJKU0V2ZW50RXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJK
U0V2ZW50U291cmNlLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50VGFyZ2V0LmNwcCIKKyNpZiBFTkFC
TEUoV0lORE9XX0VYVEVSTkFMKQorI2luY2x1ZGUgIkpTRXh0ZXJuYWwuY3BwIgorI2VuZGlmCiAj
aW5jbHVkZSAiSlNGaWxlLmNwcCIKICNpbmNsdWRlICJKU0ZpbGVDYWxsYmFjay5jcHAiCiAjaW5j
bHVkZSAiSlNGaWxlRW50cnkuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9leHRlcm5hbC9FeHRlcm5hbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFs
L0V4dGVybmFsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDE0Nzk0NjRjOGFlNjcwMjkzOWU0ZDliYTZjZjQ3
MTJiNmM3YTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRl
cm5hbC9FeHRlcm5hbC5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEw
LTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV4dGVybmFs
LmgiCisKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitFeHRlcm5hbDo6RXh0ZXJuYWwoRnJhbWUqIGZyYW1lKQorOiBET01XaW5kb3dQcm9w
ZXJ0eShmcmFtZSkKK3sKK30KKworRXh0ZXJuYWw6On5FeHRlcm5hbCgpCit7Cit9CisKK3ZvaWQg
RXh0ZXJuYWw6OmFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25D
b2RlJikKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFn
ZSB8fCAhcGFnZS0+Y2hyb21lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9t
ZSgpLT5hZGRTZWFyY2hQcm92aWRlcih1cmwpOworfQorCit1bnNpZ25lZCBsb25nIEV4dGVybmFs
Ojppc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNvbnN0IFN0cmluZyYgdXJsLCBFeGNlcHRpb25D
b2RlJikKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFn
ZSB8fCAhcGFnZS0+Y2hyb21lKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHBh
Z2UtPmNocm9tZSgpLT5pc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKHVybCk7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVy
bmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWRmMTYzZWQyYTdiYjI0NzhlMmM3OTJiOTI3Zjk1YWQzZjkwZWIyMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZXh0ZXJuYWwvRXh0ZXJuYWwuaApAQCAt
MCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlv
biBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBVU0EKKyAqLworCisjaWZu
ZGVmIEV4dGVybmFsX2gKKyNkZWZpbmUgRXh0ZXJuYWxfaAorCisjaWYgRU5BQkxFKFdJTkRPV19F
WFRFUk5BTCkKKworI2luY2x1ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBhc3NSZWZQdHIuaCIKKyNpbmNsdWRlICJSZWZDb3Vu
dGVkLmgiCisKK25hbWVzcGFjZSBXVEYgeworY2xhc3MgU3RyaW5nOworfQorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIEZyYW1lOworCitjbGFzcyBFeHRl
cm5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPEV4dGVybmFsPiwgcHVibGljIERPTVdpbmRvd1Byb3Bl
cnR5ICB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXh0ZXJuYWw+IGNyZWF0ZShG
cmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBFeHRlcm5hbChmcmFtZSkpOyB9Cisg
ICAgfkV4dGVybmFsKCk7CisKKyAgICB2b2lkIGFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFdURjo6
U3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIGxvbmcgaXNTZWFyY2hQcm92
aWRlckluc3RhbGxlZChjb25zdCBXVEY6OlN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBFeHRlcm5hbChGcmFtZSopOworfTsKKworfQorCisjZW5kaWYK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRl
cm5hbC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2V4dGVybmFsL0V4dGVybmFsLmlkbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NDE3YzcwNmQyNTA2OWQwZTY3MzBhYWZmODc1NTkwYzY1YzI3Njk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9leHRlcm5hbC9FeHRlcm5hbC5p
ZGwKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEgVVNBCisgKi8K
KworbW9kdWxlIHdpbmRvdyB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25h
bD1XSU5ET1dfRVhURVJOQUwsCisgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorICAgICAg
ICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIEV4dGVybmFsIHsKKyAgICAgICAgdm9pZCBBZGRTZWFy
Y2hQcm92aWRlcihpbiBET01TdHJpbmcgZW5naW5lVVJMKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgdW5zaWduZWQgbG9uZyBJc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGluIERPTVN0
cmluZyBlbmdpbmVVUkwpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIH07CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcAppbmRleCBmY2UwYzExNjY4ZWJiM2VjMzVlN2I5ZjVmMThlMzg1MjkwOTFj
MWU3Li43ZWU4ZjU3NjVlN2VlZTA0YmE1MTI5NTcwMTE4MmI3MmRmMjdjODFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqIENvcHlyaWdodCAoQykgMjAxMiwgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTU1
LDQgKzU1NiwxNSBAQCBib29sIENocm9tZTo6cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5
YmFjaygpCiAgICAgcmV0dXJuIG1fY2xpZW50LT5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1Bs
YXliYWNrKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQordm9pZCBDaHJvbWU6
OmFkZFNlYXJjaFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIG1fY2xpZW50LT5h
ZGRTZWFyY2hQcm92aWRlcih1cmwpOworfQorCit1bnNpZ25lZCBsb25nIENocm9tZTo6aXNTZWFy
Y2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4gbV9j
bGllbnQtPmlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQodXJsKTsKK30KKyNlbmRpZgogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNTYzOGYzYTQ4YWRkODk1OWUz
MGFlYjBkMjA1YWQzZTcwYjhjYWMxOS4uMTliZDk3MmRlNGQ5MTU0YjA5OGMyZjUzYzdkNzUwNmM3
N2YyOTJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNzAsNiArMTcwLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAor
I2lmIEVOQUJMRShXSU5ET1dfRVhURVJOQUwpCisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFy
Y2hQcm92aWRlcihjb25zdCBTdHJpbmcmKTsKKyAgICAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25n
IGlzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQoY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAg
IHByaXZhdGU6CiAgICAgICAgIENocm9tZShQYWdlKiwgQ2hyb21lQ2xpZW50Kik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDdhNTA1ZGUyYWEyZDZjYTM3MGQ5ZTk0NjkzYTdh
Mzc4OWU2MjYwODUuLmQ0ZTU1NDVjMzNkMDMwNWVkMTJkNTliZDVlYmY4MjkwZDYzZmIyZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzYwLDYgKzM2MCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1BvaW50ZXJMb2NrZWQoKSB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAg
ICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VhcmNoUHJvdmlkZXIoY29uc3QgU3RyaW5nJikgeyB9Cisg
ICAgICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBpc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKGNv
bnN0IFN0cmluZyYpIHsgcmV0dXJuIDA7IH0KKyNlbmRpZgorCiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgc3RhdHVzKSB7IFVOVVNFRF9QQVJBTShtZXNz
YWdlKTsgVU5VU0VEX1BBUkFNKGRlc2NyaXB0aW9uKTsgVU5VU0VEX1BBUkFNKHN0YXR1cyk7IH0K
IAogICAgICAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBtaW5pbXVtV2luZG93U2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIEZsb2F0U2l6ZSgxMDAsIDEwMCk7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
aW5kZXggYTg0ZmVjNTljOTVlYjg1MWM0YmEzNzlkZmMxOGEyNzVlM2YyZmRiMC4uMDYzZjQ0MDAy
YmY1ZjEyOWNkOGNlN2IwMTE4MWI0NjRhZGQ5OGY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICog
Q29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Nyw2ICs1OCw5
IEBACiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkK
KyNpbmNsdWRlICJFeHRlcm5hbC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCkBAIC00Mjks
NiArNDMzLDkgQEAgRE9NV2luZG93Ojp+RE9NV2luZG93KCkKICAgICAgICAgQVNTRVJUKCFtX3Nl
c3Npb25TdG9yYWdlKTsKICAgICAgICAgQVNTRVJUKCFtX2xvY2FsU3RvcmFnZSk7CiAgICAgICAg
IEFTU0VSVCghbV9hcHBsaWNhdGlvbkNhY2hlKTsKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFM
KQorICAgICAgICBBU1NFUlQoIW1fZXh0ZXJuYWwpOworI2VuZGlmCiAgICAgfQogI2VuZGlmCiAK
QEAgLTU4Niw2ICs1OTMsOSBAQCB2b2lkIERPTVdpbmRvdzo6cmVzZXRET01XaW5kb3dQcm9wZXJ0
aWVzKCkKICAgICBtX3Nlc3Npb25TdG9yYWdlID0gMDsKICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7
CiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFM
KQorICAgIG1fZXh0ZXJuYWwgPSAwOworI2VuZGlmCiB9CiAKIGJvb2wgRE9NV2luZG93Ojppc0N1
cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSBjb25zdApAQCAtMTk2Niw0ICsxOTc2LDE1IEBAIHZv
aWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGlhbG9nRmVhCiAgICAgZGlhbG9nRnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkt
PnJ1bk1vZGFsKCk7CiB9CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorRXh0ZXJuYWwq
IERPTVdpbmRvdzo6ZXh0ZXJuYWwoKSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlEaXNw
bGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworICAgIGlmICghbV9leHRlcm5hbCkK
KyAgICAgICAgbV9leHRlcm5hbCA9IEV4dGVybmFsOjpjcmVhdGUobV9mcmFtZSk7CisgICAgcmV0
dXJuIG1fZXh0ZXJuYWwuZ2V0KCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggOTVmNmVmMWVlZGVjZTkzYmNmZDFkMGM2NjNh
YjY2NmFjNWZlZmE2NS4uZjI1NmI2NDhlNzFhYzhmZDhmNDZmYTU1MjNiYTU1ZTZlOWY2MGY3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNz
IEV2ZW50TGlzdGVuZXI7CisgICAgY2xhc3MgRXh0ZXJuYWw7CiAgICAgY2xhc3MgRmxvYXRSZWN0
OwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNsYXNzIEhpc3Rvcnk7CkBAIC00MDMsNiArNDA0LDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB3aWxsRGV0YWNoRG9jdW1lbnRG
cm9tRnJhbWUoKTsKICAgICAgICAgdm9pZCB3aWxsRGVzdHJveUNhY2hlZEZyYW1lKCk7CiAKKyNp
ZiBFTkFCTEUoV0lORE9XX0VYVEVSTkFMKQorICAgICAgICBFeHRlcm5hbCogZXh0ZXJuYWwoKSBj
b25zdDsKKyNlbmRpZgorCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgRE9NV2luZG93
KERvY3VtZW50Kik7CiAKQEAgLTQ1Nyw2ICs0NjIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
I2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxQZXJmb3JtYW5j
ZT4gbV9wZXJmb3JtYW5jZTsKICNlbmRpZgorCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkK
KyAgICAgICAgbXV0YWJsZSBSZWZQdHI8RXh0ZXJuYWw+IG1fZXh0ZXJuYWw7CisjZW5kaWYKICAg
ICB9OwogCiAgICAgaW5saW5lIFN0cmluZyBET01XaW5kb3c6OnN0YXR1cygpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5pZGwKaW5kZXggNWIzYWIyYWY0MWI5MDQwMDk4MjkzZjFjNTMzMWM0
YTZhMzU3NzJjNy4uM2I0ZTViZjlkZTY2M2NmNDAwMmI4YjhjOGE4MzQzNjU1NjRkMWQ2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbApAQCAtMjIwLDYgKzIyMCwxMCBAQAogICAgIFtJbXBs
ZW1lbnRlZEFzPWNhbmNlbEFuaW1hdGlvbkZyYW1lXSB2b2lkIHdlYmtpdENhbmNlbFJlcXVlc3RB
bmltYXRpb25GcmFtZShpbiBsb25nIGlkKTsgLy8gVGhpcyBpcyBhIGRlcHJlY2F0ZWQgYWxpYXMg
Zm9yIHdlYmtpdENhbmNlbEFuaW1hdGlvbkZyYW1lKCkuIFJlbW92ZSB0aGlzIHdoZW4gcmVtb3Zp
bmcgdmVuZG9yIHByZWZpeC4KICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfV0lORE9XX0VY
VEVSTkFMKSAmJiBFTkFCTEVfV0lORE9XX0VYVEVSTkFMCisgICAgYXR0cmlidXRlIFtSZXBsYWNl
YWJsZV0gRXh0ZXJuYWwgZXh0ZXJuYWw7CisjZW5kaWYKKwogICAgIC8vIEJhc2U2NAogICAgIERP
TVN0cmluZyBhdG9iKGluIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nLE9wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIHN0cmluZykKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggOTljYjVlYTc5Yjlh
MmI5NmY1ODA3NDg1ODQzZDhhNmExZGUzZjM5NC4uNGQ2MzdiYjdmZDhiNjFjOWJiNWNjMDgyNjAy
NTAyOGQ2ZTQ5M2I5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
ODM0LDYgKzgzNCwxNiBAQCB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnVucmVnaXN0ZXJQ
cm90b2NvbEhhbmRsZXIoY29uc3QgU3RyaW5nJiBzY2hlbWUsIGNvbgogICAgIG1fd2ViUGFnZVBy
aXZhdGUtPm1fY2xpZW50LT51bnJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyKHNjaGVtZSwgYmFzZVVS
TCwgdXJsKTsKIH0KICNlbmRpZgorCisjaWYgRU5BQkxFKFdJTkRPV19FWFRFUk5BTCkKK3ZvaWQg
Q2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6YWRkU2VhcmNoUHJvdmlkZXIoY29uc3QgU3RyaW5nJiB1
cmwpCit7Cit9CisKK3Vuc2lnbmVkIGxvbmcgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWFy
Y2hQcm92aWRlckluc3RhbGxlZChjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4gMDsK
K30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5o
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJs
YWNrQmVycnkuaAppbmRleCBmMzVkZmU0MGI4MTc4YzRmNWM4ZjNjYWI5NWU5NDkxMjExM2U5ZmYy
Li5mNTBjMTdhNzM0ZWRjMzA1YzQ2YmEzOWE3ZjljZTMxYmY2MjE4NzQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTE0NCw2ICsxNDQsMTEgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGFnZVBvcHVwKiBvcGVuUGFnZVBvcHVwKFdlYkNvcmU6OlBhZ2VQb3B1
cENsaWVudCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VQYWdlUG9wdXAoV2ViQ29yZTo6UGFnZVBvcHVwKik7CiAKKyNpZiBFTkFCTEUoV0lORE9XX0VY
VEVSTkFMKQorICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hQcm92aWRlcihjb25zdCBTdHJpbmcm
KTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgaXNTZWFyY2hQcm92aWRlckluc3RhbGxlZChj
b25zdCBTdHJpbmcmKTsKKyNlbmRpZgorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBo
aWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNo
cm9uaXphdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5
LmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCmluZGV4IDZhM2Jk
MjllMDY3MjU4ZjA2ZjEzYTdhYTUyODVkN2QyNTgyNWMzYzQuLjdkYWE4MWE5ZTM2YTM3YmU3ZWQ3
NTZlNTk3MzM5Mjc2NDliOWU1MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxh
Y2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UK
QEAgLTE4OCw2ICsxODgsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfVklCUkFUSU9OIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1ZJREVPIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVP
X1RSQUNLIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9U
SU1JTkcgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0lORE9X
X0VYVEVSTkFMIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dP
UktFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfWEhSX1JF
U1BPTlNFX0JMT0IgT04pCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJl
cy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQppbmRleCA5OTg0Njgx
MDg4MjkwNmVjYzM3NmI5ODVmNmZhMjVhY2RhNDE4ZDk0Li4wMDNkNTA5NGFhZWU2OGI0YWRjYmU3
M2E4Zjk0NWUxNDg4MzY2ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVy
ZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCkBAIC0xMjAs
NiArMTIwLDcgQEAgTUFDUk8gKFdFQktJVF9PUFRJT05fQkVHSU4pCiAgICAgV0VCS0lUX09QVElP
Tl9ERUZJTkUoRU5BQkxFX1dFQl9TT0NLRVRTICJUb2dnbGUgV2ViIFNvY2tldHMgc3VwcG9ydCIg
T04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1dFQl9USU1JTkcgIlRvZ2dsZSBX
ZWIgVGltaW5nIHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVf
V09SS0VSUyAiVG9nZ2xlIFdlYiBXb3JrZXJzIHN1cHBvcnQiIE9GRikKKyAgICBXRUJLSVRfT1BU
SU9OX0RFRklORShFTkFCTEVfV0lORE9XX0VYVEVSTkFMICJUb2dnbGUgV2luZG93IGV4dGVybmFs
IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfWFNMVCAiVG9n
Z2xlIFhTTFQgc3VwcG9ydCIgT04pCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX1NZU1RF
TV9NQUxMT0MgIlRvZ2dsZSBzeXN0ZW0gYWxsb2NhdG9yIGluc3RlYWQgb2YgVENtYWxsb2MiIE9G
RikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShXVEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUg
IlRvZ2dsZSBUaWxlZCBCYWNraW5nIFN0b3JlIHN1cHBvcnQiIE9GRikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5k
ZXggNDRiZTRkMmYzNTE5ZTUwZjM4ZDFhYWIyMWMxNDQ2YmIyM2UzYTM3ZC4uZTMxMWRmNDMyMjkx
NGU2MGFmMTUwNzYzOGY4OGIwYWQ1YmI4NGQwMSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29u
ZmlnLmguY21ha2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTExNiw2ICsx
MTYsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1dFQl9JTlRFTlRTX1RBRwogI2NtYWtlZGVm
aW5lMDEgRU5BQkxFX1dFQl9TT0NLRVRTCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfV0VCX1RJTUlO
RworI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1dJTkRPV19FWFRFUk5BTAogI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX1dPUktFUlMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9YSFJfUkVTUE9OU0VfQkxPQgog
I2NtYWtlZGVmaW5lMDEgRU5BQkxFX1hTTFQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2MTEwMTI4YjI5MTFlMjE0MjgwOWMyMjNmYzAwOTUwMjdh
MGQ2NWRkLi44ZWQyYTFlODdhOTFiMzFjMzNmNzhjZTlkZWE5NzllMzYzOTk0YjUwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMTAtMjUgIEdlb3JnZSBTdGFpa29zIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgSW1wbGVtZW50IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgaW50ZXJmYWNlIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgdGhlIHdpbmRvdy1leHRlcm5hbCBmZWF0dXJlIGFuZCBlbmFibGUgZm9yIEJsYWNrQmVycnku
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTIt
MTAtMjUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBteSBjb250YWN0IGluZm8uCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggYWY0YzQ5YTMyN2M1M2VhZTYwMGFmOTNk
NWQ5ZWNmOTdmMTZmNmMzZi4uNzIzNTEyMmM5NzYxOWVmMjkwNTVmZjMwYzFjYjNjZjAxZWQ1MmQ0
YiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTM3LDYgKzEz
Nyw3IEBAIG15ICgKICAgICAkd2ViSW50ZW50c1RhZ1N1cHBvcnQsCiAgICAgJHdlYlNvY2tldHNT
dXBwb3J0LAogICAgICR3ZWJUaW1pbmdTdXBwb3J0LAorICAgICR3aW5kb3dFeHRlcm5hbFN1cHBv
cnQsCiAgICAgJHdvcmtlcnNTdXBwb3J0LAogICAgICR4aHJSZXNwb25zZUJsb2JTdXBwb3J0LAog
ICAgICR4c2x0U3VwcG9ydCwKQEAgLTQyNSw2ICs0MjYsOSBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgeyBvcHRpb24gPT4gIndlYi10aW1pbmciLCBkZXNjID0+ICJUb2dnbGUgV2ViIFRpbWluZyBz
dXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9USU1JTkciLCBkZWZhdWx0ID0+
IChpc0JsYWNrQmVycnkoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJHdlYlRp
bWluZ1N1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJ3aW5kb3ctZXh0ZXJuYWwiLCBkZXNj
ID0+ICJUb2dnbGUgV2luZG93IEV4dGVybmFsIGludGVyZmFjZSBzdXBwb3J0IiwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1dJTkRPV19FWFRFUk5BTCIsIGRlZmF1bHQgPT4gaXNCbGFja0JlcnJ5
KCksIHZhbHVlID0+IFwkd2luZG93RXh0ZXJuYWxTdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9
PiAid29ya2VycyIsIGRlc2MgPT4gIlRvZ2dsZSBXb3JrZXJzIHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfV09SS0VSUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBp
c0d0aygpIHx8IGlzQmxhY2tCZXJyeSgpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJHdvcmtlcnNT
dXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA1MzMzYWI0MmZkOGViYTE4NGQ3NTlkYWUwMjY1OThlMTY1ZjRh
NDI4Li5iYWNhMzQ1MjM0YzgwM2NiNjEzZjk5NjMwNTU5NmI4NTAyZjA5MzNjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTItMTAtMjUgIEdlb3JnZSBTdGFpa29zIDxzdGFpa29zQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgSW1wbGVtZW50IEhUTUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgaW50ZXJm
YWNlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1
MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRp
bmcgRFJUIHRlc3RzIGZvciB0aGUgZXh0ZXJuYWwgaW50ZXJmYWNlLgorCisgICAgICAgICogZXh0
ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlkZXItYW5kLWNoZWNrLWluc3Rh
bGxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGV4dGVybmFsL3NlYXJjaC1wcm92
aWRlci9hZGQtc2VhcmNoLXByb3ZpZGVyLWFuZC1jaGVjay1pbnN0YWxsZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZXh0ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlkZXIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBleHRlcm5hbC9zZWFyY2gtcHJvdmlkZXIv
YWRkLXNlYXJjaC1wcm92aWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBleHRlcm5hbC9zZWFy
Y2gtcHJvdmlkZXIvaXMtc2VhcmNoLXByb3ZpZGVyLWluc3RhbGxlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGV4dGVybmFsL3NlYXJjaC1wcm92aWRlci9pcy1zZWFyY2gtcHJvdmlk
ZXItaW5zdGFsbGVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTI1ICBDc2FiYSBPc3p0cm9nb27D
oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmlu
Zywgc2tpcCBmYWlsaW5nIHRlc3RzIHRvIHNwZWVkdXAgdGVzdGluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2V4dGVybmFsL3NlYXJjaC1wcm92aWRlci9hZGQtc2VhcmNoLXByb3ZpZGVyLWFu
ZC1jaGVjay1pbnN0YWxsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZXh0ZXJuYWwvc2Vh
cmNoLXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlkZXItYW5kLWNoZWNrLWluc3RhbGxlZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODEzZDk0MDkyNDcwNWUxZTE5MWNhYzVkMjhkMzY0NDhlOWM4
NzUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2V4dGVybmFsL3NlYXJjaC1wcm92
aWRlci9hZGQtc2VhcmNoLXByb3ZpZGVyLWFuZC1jaGVjay1pbnN0YWxsZWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorQWRkIGEgc2VhcmNoIHByb3ZpZGVyLCB0aGVuIGNoZWNrIGlmIGl0
IGlzIGluc3RhbGxlZCBwcm9wZXJseS4KK1BBU1MgJ3dpbmRvdy5leHRlcm5hbC5Jc1NlYXJjaFBy
b3ZpZGVySW5zdGFsbGVkJyB3b3JrcyB3ZWxsIGJlZm9yZSBhZGRpbmcgc2VhcmNoIHByb3ZpZGVy
LgorUEFTUyAnd2luZG93LmV4dGVybmFsLklzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQnIHJldHVy
bnMgMS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2V4dGVybmFsL3NlYXJjaC1wcm92aWRlci9h
ZGQtc2VhcmNoLXByb3ZpZGVyLWFuZC1jaGVjay1pbnN0YWxsZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2V4dGVybmFsL3NlYXJjaC1wcm92aWRlci9hZGQtc2VhcmNoLXByb3ZpZGVyLWFuZC1jaGVjay1p
bnN0YWxsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTA5ZTU2MGUwMDQ0ZjRkYWIyMGQ3OWU3YWY1NTRm
Yzc1NWQzYWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZXh0ZXJuYWwvc2VhcmNo
LXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlkZXItYW5kLWNoZWNrLWluc3RhbGxlZC5odG1sCkBA
IC0wLDAgKzEsNDQgQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50
LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cis8dGl0bGU+aXMtc2Vh
cmNoLXByb3ZpZGVyLWluc3RhbGxlZDwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPgorPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBp
ZiAoIXdpbmRvdy5leHRlcm5hbCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJ3aW5kb3cuZXh0ZXJu
YWwgbm90IHN1cHBvcnRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIXdp
bmRvdy5leHRlcm5hbC5Jc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoIndpbmRvdy5leHRlcm5hbC5BZGRTZWFyY2hQcm92aWRlciBub3QgaW1wbGVtZW50ZWQh
Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIGNvZGUg
PSB3aW5kb3cuZXh0ZXJuYWwuSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZCgpOworICAgICAgICB0
ZXN0UGFzc2VkKCInd2luZG93LmV4dGVybmFsLklzU2VhcmNoUHJvdmlkZXJJbnN0YWxsZWQnIHdv
cmtzIHdlbGwgYmVmb3JlIGFkZGluZyBzZWFyY2ggcHJvdmlkZXIuIik7CisgICAgICAgIHdpbmRv
dy5leHRlcm5hbC5BZGRTZWFyY2hQcm92aWRlcigiaHR0cDovL3d3dy5zZWFyY2guY29tIik7Cisg
ICAgICAgIGNvZGUgPSB3aW5kb3cuZXh0ZXJuYWwuSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZCgi
aHR0cDovL3d3dy5zZWFyY2guY29tIik7CisgICAgICAgIGlmIChjb2RlKQorICAgICAgICAgICAg
dGVzdFBhc3NlZCgiJ3dpbmRvdy5leHRlcm5hbC5Jc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkJyBy
ZXR1cm5zICIgKyBjb2RlICsgIi4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZh
aWxlZCgiJ3dpbmRvdy5leHRlcm5hbC5Jc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkJyByZXR1cm5z
ICIgKyBjb2RlICsgIi4iKTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICB0ZXN0RmFpbGVk
KCJHb3QgYW4gZXhjZXB0aW9uIGR1cmluZyB0ZXN0OiAiICsgZXgpOworICAgIH0KK30KKworZnVu
Y3Rpb24gbG9hZENvbXBsZXRlKCkgeyBzdGFydFRlc3QoKTsgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpO30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkQ29t
cGxldGUoKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+QWRkIGEgc2VhcmNoIHByb3ZpZGVyLCB0
aGVuIGNoZWNrIGlmIGl0IGlzIGluc3RhbGxlZCBwcm9wZXJseS48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZXh0ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlkZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZXh0ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2FkZC1zZWFyY2gtcHJvdmlk
ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0ZTcwZDA0ODY5ZjY0MjRkZjI5Y2UwMDZjOTE4
YzBiODIwYzdiZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9leHRlcm5hbC9zZWFy
Y2gtcHJvdmlkZXIvYWRkLXNlYXJjaC1wcm92aWRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
IEBACitUZXN0IGlmIHdpbmRvdy5leHRlcm5hbC5BZGRTZWFyY2hQcm92aWRlciBpcyBzdXBwb3J0
ZWQsIGFuZCBpZiBpdCB3b3Jrcy4KK1BBU1MgJ3dpbmRvdy5leHRlcm5hbC5BZGRTZWFyY2hQcm92
aWRlcicgd29ya3Mgd2VsbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2V4dGVybmFsL3NlYXJj
aC1wcm92aWRlci9hZGQtc2VhcmNoLXByb3ZpZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9leHRlcm5h
bC9zZWFyY2gtcHJvdmlkZXIvYWRkLXNlYXJjaC1wcm92aWRlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1
ZmIyNGQwYWFjYjk3OTc5MDMwMjIwNjVlOWU5NjFlOGViYzZlY2QKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9leHRlcm5hbC9zZWFyY2gtcHJvdmlkZXIvYWRkLXNlYXJjaC1wcm92aWRl
ci5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2
PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+Cis8dGl0
bGU+YWRkLXNlYXJjaC1wcm92aWRlcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPgorPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9J3Rl
eHQvamF2YXNjcmlwdCc+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBp
ZiAoIXdpbmRvdy5leHRlcm5hbCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJ3aW5kb3cuZXh0ZXJu
YWwgbm90IHN1cHBvcnRlZCEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIXdp
bmRvdy5leHRlcm5hbC5BZGRTZWFyY2hQcm92aWRlcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJ3
aW5kb3cuZXh0ZXJuYWwuQWRkU2VhcmNoUHJvdmlkZXIgbm90IGltcGxlbWVudGVkISIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHRyeSB7CisgICAgICAgIHdpbmRvdy5leHRlcm5hbC5B
ZGRTZWFyY2hQcm92aWRlcigiaHR0cDovL3d3dy5zZWFyY2guY29tIik7CisgICAgICAgIHRlc3RQ
YXNzZWQoIid3aW5kb3cuZXh0ZXJuYWwuQWRkU2VhcmNoUHJvdmlkZXInIHdvcmtzIHdlbGwuIik7
CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiR290IGFuIGV4Y2VwdGlv
biB3aGVuIGNhbGxpbmcgQWRkU2VhcmNoUHJvdmlkZXI6ICIgKyBleCk7CisgICAgfQorfQorCitm
dW5jdGlvbiBsb2FkQ29tcGxldGUoKSB7IHN0YXJ0VGVzdCgpOyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRD
b21wbGV0ZSgpIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0IGlmIHdpbmRvdy5leHRlcm5h
bC5BZGRTZWFyY2hQcm92aWRlciBpcyBzdXBwb3J0ZWQsIGFuZCBpZiBpdCB3b3Jrcy48L2Rpdj4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZXh0ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2lzLXNlYXJjaC1wcm92aWRlci1p
bnN0YWxsZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZXh0ZXJuYWwvc2VhcmNoLXByb3Zp
ZGVyL2lzLXNlYXJjaC1wcm92aWRlci1pbnN0YWxsZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY4Zjc4OGIzYjY5M2E0OWFmNGJmYWNmZjc4ZjcwMmFhMmUyMjdjNWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9leHRlcm5hbC9zZWFyY2gtcHJvdmlkZXIvaXMtc2VhcmNoLXByb3Zp
ZGVyLWluc3RhbGxlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitUZXN0IGlmIHdpbmRv
dy5leHRlcm5hbC5Jc1NlYXJjaFByb3ZpZGVySW5zdGFsbGVkIGlzIHN1cHBvcnRlZCwgYW5kIGlm
IGl0IHdvcmtzLgorUEFTUyAnd2luZG93LmV4dGVybmFsLklzU2VhcmNoUHJvdmlkZXJJbnN0YWxs
ZWQnIHdvcmtzIHdlbGwgYmVmb3JlIGFkZGluZyBzZWFyY2ggcHJvdmlkZXIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9leHRlcm5hbC9zZWFyY2gtcHJvdmlkZXIvaXMtc2VhcmNoLXByb3ZpZGVy
LWluc3RhbGxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZXh0ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2lz
LXNlYXJjaC1wcm92aWRlci1pbnN0YWxsZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTlkNzk1MWE4NGQ4
YzIzYmZkN2VjYzYwYTllNTRhNTNhODZjNDZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZXh0ZXJuYWwvc2VhcmNoLXByb3ZpZGVyL2lzLXNlYXJjaC1wcm92aWRlci1pbnN0YWxsZWQu
aHRtbApAQCAtMCwwICsxLDM4IEBACis8aHRtbD4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0i
Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorPHRpdGxl
PmlzLXNlYXJjaC1wcm92aWRlci1pbnN0YWxsZWQ8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj4KKzwvc2NyaXB0PgorPHNjcmlwdCB0
eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7
CisgICAgaWYgKCF3aW5kb3cuZXh0ZXJuYWwpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgid2luZG93
LmV4dGVybmFsIG5vdCBzdXBwb3J0ZWQhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aWYgKCF3aW5kb3cuZXh0ZXJuYWwuSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZCkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCJ3aW5kb3cuZXh0ZXJuYWwuSXNTZWFyY2hQcm92aWRlckluc3RhbGxlZCBu
b3QgaW1wbGVtZW50ZWQhIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdHJ5IHsKKyAg
ICAgICAgdmFyIGNvZGUgPSB3aW5kb3cuZXh0ZXJuYWwuSXNTZWFyY2hQcm92aWRlckluc3RhbGxl
ZCgpOworICAgICAgICB0ZXN0UGFzc2VkKCInd2luZG93LmV4dGVybmFsLklzU2VhcmNoUHJvdmlk
ZXJJbnN0YWxsZWQnIHdvcmtzIHdlbGwgYmVmb3JlIGFkZGluZyBzZWFyY2ggcHJvdmlkZXIuIik7
CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiR290IGFuIGV4Y2VwdGlv
biBkdXJpbmcgdGVzdDogIiArIGV4KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGxvYWRDb21wbGV0
ZSgpIHsgc3RhcnRUZXN0KCk7IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTt9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZENvbXBsZXRlKCkiPgorPGRpdiBp
ZD0iZGVzY3JpcHRpb24iPlRlc3QgaWYgd2luZG93LmV4dGVybmFsLklzU2VhcmNoUHJvdmlkZXJJ
bnN0YWxsZWQgaXMgc3VwcG9ydGVkLCBhbmQgaWYgaXQgd29ya3MuPC9kaXY+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCAyNTE0ZjUyYTEwNDllYTkwY2I2YTZjZWU2MDNjZWM1OWQyYTUzZjk4
Li4xYWZjNjljMWIxYjQzNGJlZDYyNDJlMWUyZTk2NDdhOGYyZGE1MDc1IDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMjUgIEdl
b3JnZSBTdGFpa29zIDxzdGFpa29zQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IEhU
TUw1IDYuNS4yICJUaGUgRXh0ZXJuYWwgaW50ZXJmYWNlIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQ01ha2Ugc3VwcG9ydCBmb3IgdGhlIHdpbmRv
dyBleHRlcm5hbCBpbnRlcmZhY2UgYW5kIGVuYWJsZSBmb3IgQmxhY2tCZXJyeSBwb3J0LgorCisg
ICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZToKKwogMjAxMi0xMC0yNSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlr
aGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBBZGQgc2V0TWVkaWFUeXBlT3Zl
cnJpZGUgdG8gd2luZG93LmludGVybmFscy5zZXR0aW5ncwo=
</data>
<flag name="review"
          id="184433"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>