<?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>42426</bug_id>
          
          <creation_ts>2010-07-15 17:12:25 -0700</creation_ts>
          <short_desc>Implement remaining Inspector support for chrome&apos;s appcache</short_desc>
          <delta_ts>2010-07-24 08:09:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kavita Kanetkar">kkanetkar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>michaeln</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>252236</commentid>
    <comment_count>0</comment_count>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-15 17:12:25 -0700</bug_when>
    <thetext>Related to Bug 24529</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252241</commentid>
    <comment_count>1</comment_count>
      <attachid>61750</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-15 17:25:38 -0700</bug_when>
    <thetext>Created attachment 61750
patch 

Final pieces to make things work with chrome&apos;s appcache.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252245</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-15 17:32:21 -0700</bug_when>
    <thetext>Attachment 61750 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3583032</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252255</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 17:49:53 -0700</bug_when>
    <thetext>Attachment 61750 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3395448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252276</commentid>
    <comment_count>4</comment_count>
      <attachid>61756</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-15 18:47:51 -0700</bug_when>
    <thetext>Created attachment 61756
patch2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252281</commentid>
    <comment_count>5</comment_count>
      <attachid>61756</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-07-15 19:20:36 -0700</bug_when>
    <thetext>Comment on attachment 61756
patch2

WebCore/inspector/InspectorController.cpp:529
 +      
looks like some stray whitespace got introduced here

WebCore/inspector/InspectorApplicationCacheAgent.h:87
 +      void updateApplicationCacheStatus(int status);
makes me sad that we can&apos;t find a way to use the more semantically rich data type here :(

WebCore/loader/appcache/ApplicationCacheHost.h:119
 +          InspectorApplicationCacheAgent::ApplicationCacheInfo applicationCacheInfo();
Would associatedCacheInfo() be more descriptive? Maybe not?


What about WebKit\chromium\src\ApplicationCacheHost.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252283</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-15 19:38:45 -0700</bug_when>
    <thetext>&gt; WebCore/loader/appcache/ApplicationCacheHost.h:119
&gt;  +          InspectorApplicationCacheAgent::ApplicationCacheInfo applicationCacheInfo();
&gt; Would associatedCacheInfo() be more descriptive? Maybe not?

I think if we go with &quot;obsoleteAssociatedCache&quot; (or delete/destory) for the delete button
semantics, then &quot;associatedCacheInfo&quot; absolutely makes the most sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252291</commentid>
    <comment_count>7</comment_count>
      <attachid>61759</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-15 20:20:55 -0700</bug_when>
    <thetext>Created attachment 61759
patch3

I thought I&apos;d add it to WebKit API bug. Added it here now.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252292</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-07-15 20:28:54 -0700</bug_when>
    <thetext>Attachment 61759 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/3575044</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252294</commentid>
    <comment_count>9</comment_count>
      <attachid>61760</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-15 20:33:57 -0700</bug_when>
    <thetext>Created attachment 61760
correct patch3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252296</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 20:35:36 -0700</bug_when>
    <thetext>Attachment 61759 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/3573043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252303</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-15 21:02:33 -0700</bug_when>
    <thetext>Attachment 61760 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3567047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252646</commentid>
    <comment_count>12</comment_count>
      <attachid>61760</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-07-16 12:26:33 -0700</bug_when>
    <thetext>Comment on attachment 61760
correct patch3



WebKit/chromium/src/ApplicationCacheHost.cpp:213
 +  InspectorApplicationCacheAgent::ApplicationCacheInfo ApplicationCacheHost::applicationCacheInfo()
this outgoing call needs a check for m_internal

WebKit/chromium/src/ApplicationCacheHost.cpp:217
 +      // Convert to webcore.
i think the comment about converting here (and below) state the obvious and aren&apos;t really needed

WebKit/chromium/src/ApplicationCacheHost.cpp:229
 +              KURL(webResources[i].url), webResources[i].isMaster, webResources[i].isManifest, webResources[i].isFallback, webResources[i].isForeign,
indent is off here

class WebURL has a KURL() operator so i don&apos;t think we need to explicitly invoke the KURL ctor

WebKit/chromium/src/ApplicationCacheHostInternal.h:58
 +          // FIXME: Prod the inspector to update it&apos;s notion of what cache the page is using.
compile bustage... duplicate method


WebKit/chromium/src/ApplicationCacheHostInternal.h: 
 +  
any reason to remove this blank line?

WebCore/inspector/InspectorApplicationCacheAgent.cpp:55
 +  void InspectorApplicationCacheAgent::updateApplicationCacheStatus(int status)
If it&apos;s technically impossible to use the enum, maybe a comment to make it clear what values are expected here.
 // Status is of type ApplicationCacheHost::Status

Although for the life of me I can&apos;t see where its technically impossible to use the more descriptive type. I don&apos;t see what the issue is with defining the ResourceInfo and CacheInfo structs in the ApplicationCacheHost.h file. They are part of the interface (not the implementation) and just belong there. 

Here&apos;s how this same thing looks on the class that represents ApplicationCacheHost in chromium&apos;s WebKitAPI.
http://trac.webkit.org/browser/trunk/WebKit/chromium/public/WebApplicationCacheHost.h

95	    // Structures and methods to support inspecting Application Caches.
96	    struct CacheInfo {
97	        WebURL manifestURL; // Empty if there is no associated cache.
98	        double creationTime;
99	        double updateTime;
100	        long long totalSize;
101	        CacheInfo() : creationTime(0), updateTime(0), totalSize(0) { }
102	    };
103	    struct ResourceInfo {
104	        WebURL url;
105	        long long size;
106	        bool isMaster;
107	        bool isManifest;
108	        bool isExplicit;
109	        bool isForeign;
110	        bool isFallback;
111	        ResourceInfo() : size(0), isMaster(false), isManifest(false), isExplicit(false), isForeign(false), isFallback(false) { }
112	    };
113	    virtual void getAssociatedCacheInfo(CacheInfo*) { }
114	    virtual void getResourceList(WebVector&lt;ResourceInfo&gt;*) { }
115	    virtual void deleteAssociatedCacheGroup() { }

I&apos;d like to see us that the corresponding thing in webcore/loader/appcache/ApplicationCacheHost.h. Then cyclic .h dependencies just go away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252988</commentid>
    <comment_count>13</comment_count>
      <attachid>61760</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-18 12:27:32 -0700</bug_when>
    <thetext>Comment on attachment 61760
correct patch3

Do you have a reviewer for this? Joe are you open to reviewing this? (Note that it did not compile with chromium).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252992</commentid>
    <comment_count>14</comment_count>
      <attachid>61760</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-18 12:43:48 -0700</bug_when>
    <thetext>Comment on attachment 61760
correct patch3

Looks promising. r- for build failure.

WebKit/chromium/src/ApplicationCacheHost.cpp:223
 +      if (m_internal) {
Nit: I prefer guards to conditions in such cases:
if (!m_internal)
    return;
...

WebKit/chromium/src/ApplicationCacheHost.cpp:229
 +              KURL(webResources[i].url), webResources[i].isMaster, webResources[i].isManifest, webResources[i].isFallback, webResources[i].isForeign,
poor indentation.

WebCore/ChangeLog:5
 +          Implement remaining Inspector support for chrome&apos;s appcache
You might want to add a note relavant to WebCore here (such as &quot;Move fillResourceList into the ApplicationCacheHost&quot;)

WebCore/inspector/InspectorApplicationCacheAgent.h:87
 +      void updateApplicationCacheStatus(int status);
Somewhere we need to require that this int is in sync with the frontend.

WebCore/loader/appcache/ApplicationCacheHost.cpp:257
 +      if (!cache || !cache-&gt;isComplete())
ASSERT was replaced with the guard. Which is right? Or does it depend on the host browser?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253017</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-18 15:27:07 -0700</bug_when>
    <thetext>&gt; Although for the life of me I can&apos;t see where its technically impossible to use the more
&gt; descriptive type. I don&apos;t see what the issue is with defining the ResourceInfo and
&gt; CacheInfo structs in the ApplicationCacheHost.h file. They are part of the interface
&gt; (not the implementation) and just belong there. 

That sounds fine to me.

(In reply to comment #13)
&gt; Do you have a reviewer for this? Joe are you open to reviewing this?
&gt; (Note that it did not compile with chromium).

The WebCore parts looked good. I thought Michael Nordman already
reviewed the Chromium parts (which were new). I&apos;m open to reviewing
the WebCore parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254582</commentid>
    <comment_count>16</comment_count>
      <attachid>62247</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-21 16:38:13 -0700</bug_when>
    <thetext>Created attachment 62247
patch

Moved data structs to host from agent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254588</commentid>
    <comment_count>17</comment_count>
      <attachid>62248</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-21 17:00:30 -0700</bug_when>
    <thetext>Created attachment 62248
patch

Addressed comments from pfeldman.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254599</commentid>
    <comment_count>18</comment_count>
      <attachid>62248</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-21 17:30:07 -0700</bug_when>
    <thetext>Comment on attachment 62248
patch

&gt; +++ WebKit/chromium/src/ApplicationCacheHost.cpp	(working copy)
&gt; +    for (int i = 0; i &lt; webResources.size(); ++i) {
&gt; +        resources-&gt;append(ResourceInfo(
&gt; +        KURL(webResources[i].url), webResources[i].isMaster, webResources[i].isManifest, webResources[i].isFallback, webResources[i].isForeign, webResources[i].isExplicit, webResources[i].size));
&gt; +        }

Whitespace issue.


&gt; +++ WebCore/inspector/InspectorApplicationCacheAgent.h	(working copy)
&gt;  #include &quot;ApplicationCacheHost.h&quot;
&gt; -#include &quot;KURL.h&quot;
&gt;  #include &quot;PlatformString.h&quot;
&gt;  #include &lt;wtf/Noncopyable.h&gt;

Can PlatformString be removed here as well? I don&apos;t see other String usage.


&gt;      // Backend to Frontend
&gt;      void didReceiveManifestResponse(unsigned long identifier, const ResourceResponse&amp;);
&gt; +
&gt;      void updateApplicationCacheStatus(ApplicationCacheHost::Status);
&gt; +
&gt;      void updateNetworkState(bool isNowOnline);

Why the extra newlines?


&gt; +++ WebCore/loader/appcache/ApplicationCacheHost.h	(working copy)
&gt; +#include &quot;KURL.h&quot;
&gt;      ...
&gt;      class KURL;

Looks like the forward declaration can be removed.


&gt; +        struct CacheInfo {
&gt; +            CacheInfo(const KURL&amp; manifest, double creationTime, double updateTime, long long size)
&gt; +                : m_manifest(manifest)
&gt; +                , m_creationTime(creationTime)
&gt; +                , m_updateTime(updateTime)
&gt; +                , m_size(size)
&gt; +        {
&gt; +        }
&gt; +
&gt; +        KURL m_manifest;
&gt; +        double m_creationTime;
&gt; +        double m_updateTime;
&gt; +        long long m_size;
&gt; +    };

Whitespace issues again on the &quot;struct&quot; and constructor lines.

You did change the creation and update times from String to double.
I like that change. I think it would be nice to clarify this in the
ChangeLog. You didn&apos;t just &quot;move it&quot; you also changed it.


&gt; +        struct CacheInfo {
&gt; +    struct ResourceInfo {
&gt; +    typedef Vector&lt;ResourceInfo&gt; ResourceInfoList;

I think these should be moved into the ENABLE(INSPECTOR) guard.

I don&apos;t think any of these are r- worthy, but you don&apos;t have committer
rights yet. The Chromium side still needs a chromium reviewer, but it looks
straightforward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254623</commentid>
    <comment_count>19</comment_count>
      <attachid>62248</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-07-21 18:19:32 -0700</bug_when>
    <thetext>Comment on attachment 62248
patch

WebKit/chromium/src/ApplicationCacheHost.cpp:216
 +        return CacheInfo(WebURL(), 0, 0, 0);
ApplicationCacheHost::CacheInfo&apos;s ctor takes a KURL, not a WebURL().

WebKit/chromium/src/ApplicationCacheHost.cpp:232
 +          KURL(webResources[i].url), webResources[i].isMaster, webResources[i].isManifest, webResources[i].isFallback, webResources[i].isForeign, webResources[i].isExplicit, webResources[i].size));
indent is off here/line wrap is odd with such a long line
class WebURL has a KURL() operator so i don&apos;t think we need to explicitly invoke the KURL ctor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254625</commentid>
    <comment_count>20</comment_count>
      <attachid>62253</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-21 18:50:45 -0700</bug_when>
    <thetext>Created attachment 62253
patch

Thanks Joe and Michael for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254658</commentid>
    <comment_count>21</comment_count>
      <attachid>62253</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-07-21 21:59:26 -0700</bug_when>
    <thetext>Comment on attachment 62253
patch

WebKit/chromium/src/ApplicationCacheHost.cpp:213
 +  ApplicationCacheHost::CacheInfo ApplicationCacheHost::applicationCacheInfo()
Sorry i didn&apos;t notice this before. These two new methods should in an #if ENABLE(INSPECTOR) block to match the .h file.

WebKit/chromium/src/ApplicationCacheHost.cpp:232
 +          KURL(webResources[i].url), webResources[i].isMaster, webResources[i].isManifest, webResources[i].isFallback,
Having this line indent to the same level as the preceding line catches my eye. 

230     for (int i = 0; i &lt; webResources.size(); ++i) {
231         resources-&gt;append(ResourceInfo(
232              webResources[i].url, webResources[i].isMaster, webResources[i].isManifest, webResources[i].isFallback,
233              webResources[i].isForeign, webResources[i].isExplicit, webResources[i].size));
234     }

Also, class WebURL has a KURL() operator so i don&apos;t think we need to explicitly invoke the KURL ctor. WebURL intentionally has a cast operator just for this purpose, so the resulting code is easier to read with less conversion code obscuring things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254907</commentid>
    <comment_count>22</comment_count>
      <attachid>62253</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-22 11:40:35 -0700</bug_when>
    <thetext>Comment on attachment 62253
patch

&gt; +            CacheInfo(const KURL&amp; manifest, double creationTime, double updateTime, long long size)
&gt; +                : m_manifest(manifest)
&gt; +                , m_creationTime(creationTime)
&gt; +                , m_updateTime(updateTime)
&gt; +                , m_size(size) {   }

&gt; +            ResourceInfo(const KURL&amp; resource, bool isMaster, bool isManifest, bool isFallback, bool isForeign, bool isExplicit, long long size)
&gt; +                : m_resource(resource)
&gt; +                , m_isMaster(isMaster)
&gt; +                , m_isManifest(isManifest)
&gt; +                , m_isFallback(isFallback)
&gt; +                , m_isForeign(isForeign)
&gt; +                , m_isExplicit(isExplicit)
&gt; +                , m_size(size) {  }

You changed the format here. I don&apos;t know the correct style for an empty
constructor like this. I put the braces on individual lines before, I
have also seen braces with a single space in between &quot;{ }&quot;. This change
is neither of these. I&apos;d suggest looking around at some other structs
and matching the style of those for empty constructors.

Since there are comments that need to be addressed by Michael and you will
need to put up another patch anyways I&apos;ll set r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255025</commentid>
    <comment_count>23</comment_count>
      <attachid>62350</attachid>
    <who name="Kavita Kanetkar">kkanetkar</who>
    <bug_when>2010-07-22 15:31:54 -0700</bug_when>
    <thetext>Created attachment 62350
patch

Addressed comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255027</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-07-22 15:36:18 -0700</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255067</commentid>
    <comment_count>25</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-22 16:51:21 -0700</bug_when>
    <thetext>Looks good to me as well. There is some trailing whitespace, but that
is not important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255597</commentid>
    <comment_count>26</comment_count>
      <attachid>62350</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-23 16:24:58 -0700</bug_when>
    <thetext>Comment on attachment 62350
patch

Rejecting patch 62350 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--ignore-tests&apos;, &apos;compositing&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 20715 test cases.
animations/play-state.html -&gt; failed

Exiting early after 1 failures. 123 tests run.
16.28s total testing time

122 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout

Full output: http://queues.webkit.org/results/3573361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255613</commentid>
    <comment_count>27</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-07-23 17:18:57 -0700</bug_when>
    <thetext>&gt; animations/play-state.html -&gt; failed

I don&apos;t think this is your fault. Feel free to re-set the cq+ flag again
when you think it is safe to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255638</commentid>
    <comment_count>28</comment_count>
      <attachid>62350</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-23 20:09:41 -0700</bug_when>
    <thetext>Comment on attachment 62350
patch

Bug 42821.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255643</commentid>
    <comment_count>29</comment_count>
      <attachid>62350</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-23 20:35:37 -0700</bug_when>
    <thetext>Comment on attachment 62350
patch

Clearing flags on attachment: 62350

Committed r64006: &lt;http://trac.webkit.org/changeset/64006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255644</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-23 20:35:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255646</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-23 21:09:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64006 might have broken Chromium Mac Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255714</commentid>
    <comment_count>32</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-24 08:09:51 -0700</bug_when>
    <thetext>This broke Chromium Mac. I never use cq for WebKit/chromium commits. I land manually and watch canaries.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebKit/chromium/ChangeLog
	M	WebKit/chromium/src/ApplicationCacheHost.cpp
Committed r64009</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61750</attachid>
            <date>2010-07-15 17:25:38 -0700</date>
            <delta_ts>2010-07-15 18:47:51 -0700</delta_ts>
            <desc>patch </desc>
            <filename>finalwebcorechanges.txt</filename>
            <type>text/plain</type>
            <size>11063</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzQ5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDctMTUgIEthdml0YSBLYW5ldGthciAgPGtrYW5ldGthckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHJlbWFpbmluZyBJbnNwZWN0b3Igc3VwcG9ydCBmb3IgY2hyb21lJ3Mg
YXBwY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNDI2CisKKyAgICAgICAgTWlub3IgZWRpdHMgdG8gYSBwYXRjaCBieSBKb2VzZXBoIFBlY29y
YXJvIDxqb2VwZWNrQHdlYmtpdC5vcmc+IAorICAgICAgICBSZWx5aW5nIGZvciBtZXRob2RzIGlu
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0IGludGVyZmFjZSBmb3IgaW5zcGVjdG9yJ3MgZGF0YS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp1cGRhdGVB
cHBsaWNhdGlvbkNhY2hlU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUluZm86OkFw
cGxpY2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0
RnJvbnRlbmQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bm90aWZ5Q2Fj
aGVTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Zmls
bFJlc291cmNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6
YXBwbGljYXRpb25DYWNoZUluZm8pOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5oOgorCiAyMDEwLTA3LTE1ICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyNiw3ICs1MjYsNyBAQAogICAgIGlmIChtX25vZGVUb0ZvY3VzKQogICAgICAgICBmb2N1
c05vZGUoKTsKICAgICBzaG93UGFuZWwobV9zaG93QWZ0ZXJWaXNpYmxlKTsKLQorICAgIAogI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hl
QWdlbnQgPSBuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KHRoaXMsIG1fZnJvbnRl
bmQuZ2V0KCkpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkocmV2aXNpb24gNjM0ODgpCisrKyBXZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTQgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBBcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKQEAgLTQ0LDcgKzQyLDcg
QEAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvIHsKLSAgICAg
ICAgQXBwbGljYXRpb25DYWNoZUluZm8oY29uc3QgS1VSTCYgbWFuaWZlc3QsIGNvbnN0IFN0cmlu
ZyYgY3JlYXRpb25UaW1lLCBjb25zdCBTdHJpbmcmIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXpl
KQorICAgICAgICBBcHBsaWNhdGlvbkNhY2hlSW5mbyhjb25zdCBLVVJMJiBtYW5pZmVzdCwgZG91
YmxlIGNyZWF0aW9uVGltZSwgZG91YmxlIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQogICAg
ICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlmZXN0KQogICAgICAgICAgICAgLCBtX2NyZWF0aW9u
VGltZShjcmVhdGlvblRpbWUpCiAgICAgICAgICAgICAsIG1fdXBkYXRlVGltZSh1cGRhdGVUaW1l
KQpAQCAtNTMsOCArNTEsOCBAQAogICAgICAgICB9CiAKICAgICAgICAgS1VSTCBtX21hbmlmZXN0
OwotICAgICAgICBTdHJpbmcgbV9jcmVhdGlvblRpbWU7Ci0gICAgICAgIFN0cmluZyBtX3VwZGF0
ZVRpbWU7CisgICAgICAgIGRvdWJsZSBtX2NyZWF0aW9uVGltZTsKKyAgICAgICAgZG91YmxlIG1f
dXBkYXRlVGltZTsKICAgICAgICAgbG9uZyBsb25nIG1fc2l6ZTsKICAgICB9OwogCkBAIC04Niw3
ICs4NCw3IEBACiAKICAgICAvLyBCYWNrZW5kIHRvIEZyb250ZW5kCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWFuaWZlc3RSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBw
bGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1cyk7CisgICAgdm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNh
Y2hlU3RhdHVzKGludCBzdGF0dXMpOwogICAgIHZvaWQgdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wg
aXNOb3dPbmxpbmUpOwogCiAgICAgLy8gRnJvbSBGcm9udGVuZApAQCAtOTcsOCArOTUsNiBAQAog
ICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNv
bnN0IFJlc291cmNlSW5mb0xpc3QmKTsKICAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VJbmZvJik7CiAKLSAgICB2b2lk
IGZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSosIFJlc291cmNlSW5mb0xpc3QqKTsK
LQogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBJ
bnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKIH07CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJKHJldmlzaW9u
IDYzNDg4KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIAotI2luY2x1ZGUg
IkFwcGxpY2F0aW9uQ2FjaGUuaCIKLSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpA
QCAtNTMsNyArNTIsNyBAQAogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBwbGljYXRpb25D
YWNoZUhvc3Q6OlN0YXR1cyBzdGF0dXMpCit2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhpbnQgc3RhdHVzKQogewogICAgIG1f
ZnJvbnRlbmQtPnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoc3RhdHVzKTsKIH0KQEAgLTYz
LDI5ICs2Miw2IEBACiAgICAgbV9mcm9udGVuZC0+dXBkYXRlTmV0d29ya1N0YXRlKGlzTm93T25s
aW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmZpbGxSZXNv
dXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIFJlc291cmNlSW5mb0xpc3QqIHJlc291
cmNlcykKLXsKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCi0gICAgQVNTRVJUKGNhY2hlICYmIGNh
Y2hlLT5pc0NvbXBsZXRlKCkpOwotI2VuZGlmCi0gICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3Vy
Y2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hlLT5lbmQoKTsKLSAgICBmb3IgKEFwcGxp
Y2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25kOwotICAgICAgICB1bnNpZ25lZCB0eXBlID0g
cmVzb3VyY2UtPnR5cGUoKTsKLSAgICAgICAgYm9vbCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwotICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0
eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpNYW5pZmVzdDsKLSAgICAgICAgYm9vbCBp
c0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7Ci0g
ICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6
OkZvcmVpZ247Ci0gICAgICAgIGJvb2wgaXNGYWxsYmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6OkZhbGxiYWNrOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBp
bnQ2NF90IGVzdGltYXRlZFNpemVJblN0b3JhZ2UgPSAwOwotI2Vsc2UKLSAgICAgICAgaW50NjRf
dCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0gcmVzb3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3Jh
Z2UoKTsKLSNlbmRpZgotICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBp
c01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIGVzdGltYXRlZFNp
emVJblN0b3JhZ2UpKTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCkKIHsKICAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3Rl
ZFBhZ2UoKS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwpAQCAtOTUs
MjAgKzcxLDEwIEBACiAgICAgfQogCiAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGhvc3QgPSBk
b2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKLSAgICBBcHBsaWNhdGlvbkNh
Y2hlKiBjYWNoZSA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNwZWN0b3IoKTsKLSAgICBp
ZiAoIWNhY2hlCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB8fCAhY2FjaGUtPmlz
Q29tcGxldGUoKQotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBtX2Zyb250ZW5kLT5kaWRH
ZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSk7Ci0g
ICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLQotICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0
aW9uIFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRvIEFwcGxpY2F0aW9uIENhY2hlcy4KLSAgICBB
cHBsaWNhdGlvbkNhY2hlSW5mbyBpbmZvKGNhY2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgp
LCBTdHJpbmcoKSwgU3RyaW5nKCksIGNhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpOwor
ICAgIEFwcGxpY2F0aW9uQ2FjaGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5m
bygpOworIAogICAgIFJlc291cmNlSW5mb0xpc3QgcmVzb3VyY2VzOwotICAgIGZpbGxSZXNvdXJj
ZUxpc3QoY2FjaGUsICZyZXNvdXJjZXMpOworICAgIGhvc3QtPmZpbGxSZXNvdXJjZUxpc3QoJnJl
c291cmNlcyk7CiAKICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxs
SWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShyZXNvdXJjZXMsIGluZm8pKTsKIH0K
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNiArMjI5LDggQEAKICAg
ICBtX2RvbUFwcGxpY2F0aW9uQ2FjaGUgPSBkb21BcHBsaWNhdGlvbkNhY2hlOwogfQogCit2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojpub3RpZnlDYWNoZVNlbGVjdGVkKGNvbnN0IEtVUkwmIG1h
bmlmZXN0VVJMLCBjb25zdCBTdHJpbmcmIGNyZWF0aW9uVGltZSwgY29uc3QgU3RyaW5nJiB1cGRh
dGVUaW1lLCBjb25zdCBTdHJpbmcmIHNpemUpIHsgfQorCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0Ojpub3RpZnlET01BcHBsaWNhdGlvbkNhY2hlKEV2ZW50SUQgaWQsIGludCB0b3RhbCwgaW50
IGRvbmUpCiB7CiAgICAgaWYgKG1fZGVmZXJzRXZlbnRzKSB7CkBAIC0yNTAsNiArMjUyLDM3IEBA
CiAgICAgbV9kZWZlcnNFdmVudHMgPSBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShJTlNQRUNUT1Ip
Cit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KEluc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudDo6UmVzb3VyY2VJbmZvTGlzdCogcmVzb3VyY2VzKQoreworICAg
IEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gYXBwbGljYXRpb25DYWNoZSgpOworICAgIGlmICgh
Y2FjaGUgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAgCisg
ICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNh
Y2hlLT5lbmQoKTsKKyAgICBmb3IgKEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25k
OworICAgICAgICB1bnNpZ25lZCB0eXBlID0gcmVzb3VyY2UtPnR5cGUoKTsKKyAgICAgICAgYm9v
bCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwor
ICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNl
OjpNYW5pZmVzdDsKKyAgICAgICAgYm9vbCBpc0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7CisgICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUg
JiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247CisgICAgICAgIGJvb2wgaXNGYWxs
YmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZhbGxiYWNrOworICAgICAg
ICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OlJlc291
cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBpc0ZhbGxiYWNr
LCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIHJlc291cmNlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdl
KCkpKTsKKyAgICB9Cit9CisgCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxp
Y2F0aW9uQ2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5m
bygpCit7CisgICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhcHBsaWNhdGlvbkNhY2hlKCk7
CisgICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKSkKKyAgICAgICAgcmV0dXJu
IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUluZm8oS1VS
TCgpLCBTdHJpbmcoKSwgU3RyaW5nKCksIDApOworICAKKyAgICAvLyBGSVhNRTogQWRkICJDcmVh
dGlvbiBUaW1lIiBhbmQgIlVwZGF0ZSBUaW1lIiB0byBBcHBsaWNhdGlvbiBDYWNoZXMuCisgICAg
cmV0dXJuIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUlu
Zm8oY2FjaGUtPm1hbmlmZXN0UmVzb3VyY2UoKS0+dXJsKCksIDAsIDAsIGNhY2hlLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpOworfQorI2VuZGlmCisKIHZvaWQgQXBwbGljYXRpb25DYWNoZUhv
c3Q6OmRpc3BhdGNoRE9NRXZlbnQoRXZlbnRJRCBpZCwgaW50IHRvdGFsLCBpbnQgZG9uZSkKIHsK
ICAgICBpZiAobV9kb21BcHBsaWNhdGlvbkNhY2hlKSB7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHJldmlzaW9uIDYzNDg4KQorKysg
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsOCBAQAogCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKIAorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgorCiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC00MCw3ICs0Miw2IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZTsK
ICAgICBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogICAgIGNsYXNzIERvY3VtZW50TG9hZGVy
OwogICAgIGNsYXNzIEtVUkw7CkBAIC01Miw2ICs1Myw3IEBACiAjaWYgUExBVEZPUk0oQ0hST01J
VU0pCiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbDsKICNlbHNlCisgICAg
Y2xhc3MgQXBwbGljYXRpb25DYWNoZTsKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlR3JvdXA7
CiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOwogICAgIGNsYXNzIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOwpAQCAtMTEyLDcgKzExNCwxMCBAQAogCiAgICAgICAgIHZvaWQgc3Rv
cERlZmVycmluZ0V2ZW50cygpOyAvLyBBbHNvIHJhaXNlcyB0aGUgZXZlbnRzIHRoYXQgaGF2ZSBi
ZWVuIHF1ZXVlZCB1cC4KIAotICAgICAgICBBcHBsaWNhdGlvbkNhY2hlKiBhcHBsaWNhdGlvbkNh
Y2hlRm9ySW5zcGVjdG9yKCkgY29uc3QgeyByZXR1cm4gYXBwbGljYXRpb25DYWNoZSgpOyB9Cisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICAgICAgdm9pZCBmaWxsUmVzb3VyY2VMaXN0KEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6UmVzb3VyY2VJbmZvTGlzdCopOworICAgICAgICBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9uQ2FjaGVJbmZvIGFwcGxp
Y2F0aW9uQ2FjaGVJbmZvKCk7CisjZW5kaWYKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wg
aXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOwpAQCAtMTM1LDcgKzE0MCw2IEBACiAjaWYgUExB
VEZPUk0oQ0hST01JVU0pCiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlSG9z
dEludGVybmFsOwogICAgICAgICBPd25QdHI8QXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbD4g
bV9pbnRlcm5hbDsKLSAgICAgICAgQXBwbGljYXRpb25DYWNoZSogYXBwbGljYXRpb25DYWNoZSgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0gLy8gRklYTUU6IEltcGxlbWVudCBmb3IgQ2hyb21pdW0gV2Vi
IEluc3BlY3RvciBTdXBwb3J0LgogI2Vsc2UKICAgICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0
aW9uQ2FjaGVHcm91cDsKICAgICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61756</attachid>
            <date>2010-07-15 18:47:51 -0700</date>
            <delta_ts>2010-07-15 20:20:55 -0700</delta_ts>
            <desc>patch2</desc>
            <filename>finalwebcorechanges2.txt</filename>
            <type>text/plain</type>
            <size>10704</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzQ5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDctMTUgIEthdml0YSBLYW5ldGthciAgPGtrYW5ldGthckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHJlbWFpbmluZyBJbnNwZWN0b3Igc3VwcG9ydCBmb3IgY2hyb21lJ3Mg
YXBwY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNDI2CisKKyAgICAgICAgTWlub3IgZWRpdHMgdG8gYSBwYXRjaCBieSBKb2VzZXBoIFBlY29y
YXJvIDxqb2VwZWNrQHdlYmtpdC5vcmc+IAorICAgICAgICBSZWx5aW5nIGZvciBtZXRob2RzIGlu
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0IGludGVyZmFjZSBmb3IgaW5zcGVjdG9yJ3MgZGF0YS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp1cGRhdGVB
cHBsaWNhdGlvbkNhY2hlU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUluZm86OkFw
cGxpY2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0
RnJvbnRlbmQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bm90aWZ5Q2Fj
aGVTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Zmls
bFJlc291cmNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6
YXBwbGljYXRpb25DYWNoZUluZm8pOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5oOgorCiAyMDEwLTA3LTE1ICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyNiw3ICs1MjYsNyBAQAogICAgIGlmIChtX25vZGVUb0ZvY3VzKQogICAgICAgICBmb2N1
c05vZGUoKTsKICAgICBzaG93UGFuZWwobV9zaG93QWZ0ZXJWaXNpYmxlKTsKLQorICAgIAogI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hl
QWdlbnQgPSBuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KHRoaXMsIG1fZnJvbnRl
bmQuZ2V0KCkpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkocmV2aXNpb24gNjM0ODgpCisrKyBXZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTQgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBBcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKQEAgLTQ0LDcgKzQyLDcg
QEAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvIHsKLSAgICAg
ICAgQXBwbGljYXRpb25DYWNoZUluZm8oY29uc3QgS1VSTCYgbWFuaWZlc3QsIGNvbnN0IFN0cmlu
ZyYgY3JlYXRpb25UaW1lLCBjb25zdCBTdHJpbmcmIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXpl
KQorICAgICAgICBBcHBsaWNhdGlvbkNhY2hlSW5mbyhjb25zdCBLVVJMJiBtYW5pZmVzdCwgZG91
YmxlIGNyZWF0aW9uVGltZSwgZG91YmxlIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQogICAg
ICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlmZXN0KQogICAgICAgICAgICAgLCBtX2NyZWF0aW9u
VGltZShjcmVhdGlvblRpbWUpCiAgICAgICAgICAgICAsIG1fdXBkYXRlVGltZSh1cGRhdGVUaW1l
KQpAQCAtNTMsOCArNTEsOCBAQAogICAgICAgICB9CiAKICAgICAgICAgS1VSTCBtX21hbmlmZXN0
OwotICAgICAgICBTdHJpbmcgbV9jcmVhdGlvblRpbWU7Ci0gICAgICAgIFN0cmluZyBtX3VwZGF0
ZVRpbWU7CisgICAgICAgIGRvdWJsZSBtX2NyZWF0aW9uVGltZTsKKyAgICAgICAgZG91YmxlIG1f
dXBkYXRlVGltZTsKICAgICAgICAgbG9uZyBsb25nIG1fc2l6ZTsKICAgICB9OwogCkBAIC04Niw3
ICs4NCw3IEBACiAKICAgICAvLyBCYWNrZW5kIHRvIEZyb250ZW5kCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWFuaWZlc3RSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBw
bGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1cyk7CisgICAgdm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNh
Y2hlU3RhdHVzKGludCBzdGF0dXMpOwogICAgIHZvaWQgdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wg
aXNOb3dPbmxpbmUpOwogCiAgICAgLy8gRnJvbSBGcm9udGVuZApAQCAtOTcsOCArOTUsNiBAQAog
ICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNv
bnN0IFJlc291cmNlSW5mb0xpc3QmKTsKICAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VJbmZvJik7CiAKLSAgICB2b2lk
IGZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSosIFJlc291cmNlSW5mb0xpc3QqKTsK
LQogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBJ
bnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKIH07CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJKHJldmlzaW9u
IDYzNDg4KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIAotI2luY2x1ZGUg
IkFwcGxpY2F0aW9uQ2FjaGUuaCIKLSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpA
QCAtNTMsNyArNTIsNyBAQAogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBwbGljYXRpb25D
YWNoZUhvc3Q6OlN0YXR1cyBzdGF0dXMpCit2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhpbnQgc3RhdHVzKQogewogICAgIG1f
ZnJvbnRlbmQtPnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoc3RhdHVzKTsKIH0KQEAgLTYz
LDI5ICs2Miw2IEBACiAgICAgbV9mcm9udGVuZC0+dXBkYXRlTmV0d29ya1N0YXRlKGlzTm93T25s
aW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmZpbGxSZXNv
dXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIFJlc291cmNlSW5mb0xpc3QqIHJlc291
cmNlcykKLXsKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCi0gICAgQVNTRVJUKGNhY2hlICYmIGNh
Y2hlLT5pc0NvbXBsZXRlKCkpOwotI2VuZGlmCi0gICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3Vy
Y2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hlLT5lbmQoKTsKLSAgICBmb3IgKEFwcGxp
Y2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25kOwotICAgICAgICB1bnNpZ25lZCB0eXBlID0g
cmVzb3VyY2UtPnR5cGUoKTsKLSAgICAgICAgYm9vbCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwotICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0
eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpNYW5pZmVzdDsKLSAgICAgICAgYm9vbCBp
c0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7Ci0g
ICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6
OkZvcmVpZ247Ci0gICAgICAgIGJvb2wgaXNGYWxsYmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6OkZhbGxiYWNrOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBp
bnQ2NF90IGVzdGltYXRlZFNpemVJblN0b3JhZ2UgPSAwOwotI2Vsc2UKLSAgICAgICAgaW50NjRf
dCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0gcmVzb3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3Jh
Z2UoKTsKLSNlbmRpZgotICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBp
c01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIGVzdGltYXRlZFNp
emVJblN0b3JhZ2UpKTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCkKIHsKICAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3Rl
ZFBhZ2UoKS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwpAQCAtOTUs
MjAgKzcxLDEwIEBACiAgICAgfQogCiAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGhvc3QgPSBk
b2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKLSAgICBBcHBsaWNhdGlvbkNh
Y2hlKiBjYWNoZSA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNwZWN0b3IoKTsKLSAgICBp
ZiAoIWNhY2hlCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB8fCAhY2FjaGUtPmlz
Q29tcGxldGUoKQotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBtX2Zyb250ZW5kLT5kaWRH
ZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSk7Ci0g
ICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLQotICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0
aW9uIFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRvIEFwcGxpY2F0aW9uIENhY2hlcy4KLSAgICBB
cHBsaWNhdGlvbkNhY2hlSW5mbyBpbmZvKGNhY2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgp
LCBTdHJpbmcoKSwgU3RyaW5nKCksIGNhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpOwor
ICAgIEFwcGxpY2F0aW9uQ2FjaGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5m
bygpOworIAogICAgIFJlc291cmNlSW5mb0xpc3QgcmVzb3VyY2VzOwotICAgIGZpbGxSZXNvdXJj
ZUxpc3QoY2FjaGUsICZyZXNvdXJjZXMpOworICAgIGhvc3QtPmZpbGxSZXNvdXJjZUxpc3QoJnJl
c291cmNlcyk7CiAKICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxs
SWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShyZXNvdXJjZXMsIGluZm8pKTsKIH0K
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNiArMjUwLDM3IEBACiAg
ICAgbV9kZWZlcnNFdmVudHMgPSBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCit2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6UmVzb3VyY2VJbmZvTGlzdCogcmVzb3VyY2VzKQoreworICAgIEFw
cGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gYXBwbGljYXRpb25DYWNoZSgpOworICAgIGlmICghY2Fj
aGUgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAgCisgICAg
QXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hl
LT5lbmQoKTsKKyAgICBmb3IgKEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9p
dGVyYXRvciBpdCA9IGNhY2hlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAg
UmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25kOwor
ICAgICAgICB1bnNpZ25lZCB0eXBlID0gcmVzb3VyY2UtPnR5cGUoKTsKKyAgICAgICAgYm9vbCBp
c01hc3RlciAgID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOworICAg
ICAgICBib29sIGlzTWFuaWZlc3QgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpN
YW5pZmVzdDsKKyAgICAgICAgYm9vbCBpc0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZTo6RXhwbGljaXQ7CisgICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUgJiBB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247CisgICAgICAgIGJvb2wgaXNGYWxsYmFj
ayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZhbGxiYWNrOworICAgICAgICBy
ZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OlJlc291cmNl
SW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBp
c0ZvcmVpZ24sIGlzRXhwbGljaXQsIHJlc291cmNlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkp
KTsKKyAgICB9Cit9CisgCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0
aW9uQ2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5mbygp
Cit7CisgICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhcHBsaWNhdGlvbkNhY2hlKCk7Cisg
ICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKSkKKyAgICAgICAgcmV0dXJuIElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUluZm8oS1VSTCgp
LCAwLCAwLCAwKTsKKyAgCisgICAgLy8gRklYTUU6IEFkZCAiQ3JlYXRpb24gVGltZSIgYW5kICJV
cGRhdGUgVGltZSIgdG8gQXBwbGljYXRpb24gQ2FjaGVzLgorICAgIHJldHVybiBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9uQ2FjaGVJbmZvKGNhY2hlLT5tYW5pZmVz
dFJlc291cmNlKCktPnVybCgpLCAwLCAwLCBjYWNoZS0+ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgp
KTsKK30KKyNlbmRpZgorCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpkaXNwYXRjaERPTUV2
ZW50KEV2ZW50SUQgaWQsIGludCB0b3RhbCwgaW50IGRvbmUpCiB7CiAgICAgaWYgKG1fZG9tQXBw
bGljYXRpb25DYWNoZSkgewpJbmRleDogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlSG9zdC5oCShyZXZpc2lvbiA2MzQ4OCkKKysrIFdlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMz
LDggQEAKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAKKyNpbmNsdWRl
ICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaCIKKwogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgpAQCAtNDAsNyArNDIsNiBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewotICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGU7CiAgICAgY2xhc3MgRE9NQXBw
bGljYXRpb25DYWNoZTsKICAgICBjbGFzcyBEb2N1bWVudExvYWRlcjsKICAgICBjbGFzcyBLVVJM
OwpAQCAtNTIsNiArNTMsNyBAQAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIGNsYXNzIEFw
cGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWw7CiAjZWxzZQorICAgIGNsYXNzIEFwcGxpY2F0aW9u
Q2FjaGU7CiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZUdyb3VwOwogICAgIGNsYXNzIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTsKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsK
QEAgLTExMiw3ICsxMTQsMTAgQEAKIAogICAgICAgICB2b2lkIHN0b3BEZWZlcnJpbmdFdmVudHMo
KTsgLy8gQWxzbyByYWlzZXMgdGhlIGV2ZW50cyB0aGF0IGhhdmUgYmVlbiBxdWV1ZWQgdXAuCiAK
LSAgICAgICAgQXBwbGljYXRpb25DYWNoZSogYXBwbGljYXRpb25DYWNoZUZvckluc3BlY3Rvcigp
IGNvbnN0IHsgcmV0dXJuIGFwcGxpY2F0aW9uQ2FjaGUoKTsgfQorI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisgICAgICAgIHZvaWQgZmlsbFJlc291cmNlTGlzdChJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ6OlJlc291cmNlSW5mb0xpc3QqKTsKKyAgICAgICAgSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50OjpBcHBsaWNhdGlvbkNhY2hlSW5mbyBhcHBsaWNhdGlvbkNhY2hlSW5mbygp
OworI2VuZGlmCiAKICAgICBwcml2YXRlOgogICAgICAgICBib29sIGlzQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQoKTsKQEAgLTEzNSw3ICsxNDAsNiBAQAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQog
ICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbDsKICAgICAg
ICAgT3duUHRyPEFwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWw+IG1faW50ZXJuYWw7Ci0gICAg
ICAgIEFwcGxpY2F0aW9uQ2FjaGUqIGFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdCB7IHJldHVybiAw
OyB9IC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIENocm9taXVtIFdlYiBJbnNwZWN0b3IgU3VwcG9y
dC4KICNlbHNlCiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlR3JvdXA7CiAg
ICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61759</attachid>
            <date>2010-07-15 20:20:55 -0700</date>
            <delta_ts>2010-07-15 20:33:57 -0700</delta_ts>
            <desc>patch3</desc>
            <filename>finalwebcorechanges (1).txt</filename>
            <type>text/plain</type>
            <size>11063</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MzQ5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDctMTUgIEthdml0YSBLYW5ldGthciAgPGtrYW5ldGthckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IHJlbWFpbmluZyBJbnNwZWN0b3Igc3VwcG9ydCBmb3IgY2hyb21lJ3Mg
YXBwY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNDI2CisKKyAgICAgICAgTWlub3IgZWRpdHMgdG8gYSBwYXRjaCBieSBKb2VzZXBoIFBlY29y
YXJvIDxqb2VwZWNrQHdlYmtpdC5vcmc+IAorICAgICAgICBSZWx5aW5nIGZvciBtZXRob2RzIGlu
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0IGludGVyZmFjZSBmb3IgaW5zcGVjdG9yJ3MgZGF0YS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ojp1cGRhdGVB
cHBsaWNhdGlvbkNhY2hlU3RhdHVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUluZm86OkFw
cGxpY2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0
RnJvbnRlbmQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6bm90aWZ5Q2Fj
aGVTZWxlY3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Zmls
bFJlc291cmNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6
YXBwbGljYXRpb25DYWNoZUluZm8pOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5oOgorCiAyMDEwLTA3LTE1ICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysg
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyNiw3ICs1MjYsNyBAQAogICAgIGlmIChtX25vZGVUb0ZvY3VzKQogICAgICAgICBmb2N1
c05vZGUoKTsKICAgICBzaG93UGFuZWwobV9zaG93QWZ0ZXJWaXNpYmxlKTsKLQorICAgIAogI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hl
QWdlbnQgPSBuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KHRoaXMsIG1fZnJvbnRl
bmQuZ2V0KCkpOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkocmV2aXNpb24gNjM0ODgpCisrKyBXZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTQgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBBcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKQEAgLTQ0LDcgKzQyLDcg
QEAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5
YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvIHsKLSAgICAg
ICAgQXBwbGljYXRpb25DYWNoZUluZm8oY29uc3QgS1VSTCYgbWFuaWZlc3QsIGNvbnN0IFN0cmlu
ZyYgY3JlYXRpb25UaW1lLCBjb25zdCBTdHJpbmcmIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXpl
KQorICAgICAgICBBcHBsaWNhdGlvbkNhY2hlSW5mbyhjb25zdCBLVVJMJiBtYW5pZmVzdCwgZG91
YmxlIGNyZWF0aW9uVGltZSwgZG91YmxlIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQogICAg
ICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlmZXN0KQogICAgICAgICAgICAgLCBtX2NyZWF0aW9u
VGltZShjcmVhdGlvblRpbWUpCiAgICAgICAgICAgICAsIG1fdXBkYXRlVGltZSh1cGRhdGVUaW1l
KQpAQCAtNTMsOCArNTEsOCBAQAogICAgICAgICB9CiAKICAgICAgICAgS1VSTCBtX21hbmlmZXN0
OwotICAgICAgICBTdHJpbmcgbV9jcmVhdGlvblRpbWU7Ci0gICAgICAgIFN0cmluZyBtX3VwZGF0
ZVRpbWU7CisgICAgICAgIGRvdWJsZSBtX2NyZWF0aW9uVGltZTsKKyAgICAgICAgZG91YmxlIG1f
dXBkYXRlVGltZTsKICAgICAgICAgbG9uZyBsb25nIG1fc2l6ZTsKICAgICB9OwogCkBAIC04Niw3
ICs4NCw3IEBACiAKICAgICAvLyBCYWNrZW5kIHRvIEZyb250ZW5kCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWFuaWZlc3RSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBw
bGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1cyk7CisgICAgdm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNh
Y2hlU3RhdHVzKGludCBzdGF0dXMpOwogICAgIHZvaWQgdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wg
aXNOb3dPbmxpbmUpOwogCiAgICAgLy8gRnJvbSBGcm9udGVuZApAQCAtOTcsOCArOTUsNiBAQAog
ICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNv
bnN0IFJlc291cmNlSW5mb0xpc3QmKTsKICAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VJbmZvJik7CiAKLSAgICB2b2lk
IGZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSosIFJlc291cmNlSW5mb0xpc3QqKTsK
LQogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBJ
bnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKIH07CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJKHJldmlzaW9u
IDYzNDg4KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIAotI2luY2x1ZGUg
IkFwcGxpY2F0aW9uQ2FjaGUuaCIKLSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aCIKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgpA
QCAtNTMsNyArNTIsNyBAQAogICAgIG1faW5zcGVjdG9yQ29udHJvbGxlci0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBwbGljYXRpb25D
YWNoZUhvc3Q6OlN0YXR1cyBzdGF0dXMpCit2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudDo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhpbnQgc3RhdHVzKQogewogICAgIG1f
ZnJvbnRlbmQtPnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoc3RhdHVzKTsKIH0KQEAgLTYz
LDI5ICs2Miw2IEBACiAgICAgbV9mcm9udGVuZC0+dXBkYXRlTmV0d29ya1N0YXRlKGlzTm93T25s
aW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmZpbGxSZXNv
dXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIFJlc291cmNlSW5mb0xpc3QqIHJlc291
cmNlcykKLXsKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCi0gICAgQVNTRVJUKGNhY2hlICYmIGNh
Y2hlLT5pc0NvbXBsZXRlKCkpOwotI2VuZGlmCi0gICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3Vy
Y2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hlLT5lbmQoKTsKLSAgICBmb3IgKEFwcGxp
Y2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25kOwotICAgICAgICB1bnNpZ25lZCB0eXBlID0g
cmVzb3VyY2UtPnR5cGUoKTsKLSAgICAgICAgYm9vbCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwotICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0
eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpNYW5pZmVzdDsKLSAgICAgICAgYm9vbCBp
c0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7Ci0g
ICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6
OkZvcmVpZ247Ci0gICAgICAgIGJvb2wgaXNGYWxsYmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6OkZhbGxiYWNrOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBp
bnQ2NF90IGVzdGltYXRlZFNpemVJblN0b3JhZ2UgPSAwOwotI2Vsc2UKLSAgICAgICAgaW50NjRf
dCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0gcmVzb3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3Jh
Z2UoKTsKLSNlbmRpZgotICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBp
c01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIGVzdGltYXRlZFNp
emVJblN0b3JhZ2UpKTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCkKIHsKICAgICBEb2N1bWVu
dExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3Rl
ZFBhZ2UoKS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwpAQCAtOTUs
MjAgKzcxLDEwIEBACiAgICAgfQogCiAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGhvc3QgPSBk
b2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKLSAgICBBcHBsaWNhdGlvbkNh
Y2hlKiBjYWNoZSA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNwZWN0b3IoKTsKLSAgICBp
ZiAoIWNhY2hlCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB8fCAhY2FjaGUtPmlz
Q29tcGxldGUoKQotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBtX2Zyb250ZW5kLT5kaWRH
ZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSk7Ci0g
ICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLQotICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0
aW9uIFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRvIEFwcGxpY2F0aW9uIENhY2hlcy4KLSAgICBB
cHBsaWNhdGlvbkNhY2hlSW5mbyBpbmZvKGNhY2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgp
LCBTdHJpbmcoKSwgU3RyaW5nKCksIGNhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpOwor
ICAgIEFwcGxpY2F0aW9uQ2FjaGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5m
bygpOworIAogICAgIFJlc291cmNlSW5mb0xpc3QgcmVzb3VyY2VzOwotICAgIGZpbGxSZXNvdXJj
ZUxpc3QoY2FjaGUsICZyZXNvdXJjZXMpOworICAgIGhvc3QtPmZpbGxSZXNvdXJjZUxpc3QoJnJl
c291cmNlcyk7CiAKICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxs
SWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShyZXNvdXJjZXMsIGluZm8pKTsKIH0K
SW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNiArMjI5LDggQEAKICAg
ICBtX2RvbUFwcGxpY2F0aW9uQ2FjaGUgPSBkb21BcHBsaWNhdGlvbkNhY2hlOwogfQogCit2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojpub3RpZnlDYWNoZVNlbGVjdGVkKGNvbnN0IEtVUkwmIG1h
bmlmZXN0VVJMLCBjb25zdCBTdHJpbmcmIGNyZWF0aW9uVGltZSwgY29uc3QgU3RyaW5nJiB1cGRh
dGVUaW1lLCBjb25zdCBTdHJpbmcmIHNpemUpIHsgfQorCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVI
b3N0Ojpub3RpZnlET01BcHBsaWNhdGlvbkNhY2hlKEV2ZW50SUQgaWQsIGludCB0b3RhbCwgaW50
IGRvbmUpCiB7CiAgICAgaWYgKG1fZGVmZXJzRXZlbnRzKSB7CkBAIC0yNTAsNiArMjUyLDM3IEBA
CiAgICAgbV9kZWZlcnNFdmVudHMgPSBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShJTlNQRUNUT1Ip
Cit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KEluc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudDo6UmVzb3VyY2VJbmZvTGlzdCogcmVzb3VyY2VzKQoreworICAg
IEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gYXBwbGljYXRpb25DYWNoZSgpOworICAgIGlmICgh
Y2FjaGUgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAgCisg
ICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNh
Y2hlLT5lbmQoKTsKKyAgICBmb3IgKEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25k
OworICAgICAgICB1bnNpZ25lZCB0eXBlID0gcmVzb3VyY2UtPnR5cGUoKTsKKyAgICAgICAgYm9v
bCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwor
ICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNl
OjpNYW5pZmVzdDsKKyAgICAgICAgYm9vbCBpc0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7CisgICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUg
JiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247CisgICAgICAgIGJvb2wgaXNGYWxs
YmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZhbGxiYWNrOworICAgICAg
ICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OlJlc291
cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBpc0ZhbGxiYWNr
LCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIHJlc291cmNlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdl
KCkpKTsKKyAgICB9Cit9CisgCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxp
Y2F0aW9uQ2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5m
bygpCit7CisgICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhcHBsaWNhdGlvbkNhY2hlKCk7
CisgICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKSkKKyAgICAgICAgcmV0dXJu
IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUluZm8oS1VS
TCgpLCBTdHJpbmcoKSwgU3RyaW5nKCksIDApOworICAKKyAgICAvLyBGSVhNRTogQWRkICJDcmVh
dGlvbiBUaW1lIiBhbmQgIlVwZGF0ZSBUaW1lIiB0byBBcHBsaWNhdGlvbiBDYWNoZXMuCisgICAg
cmV0dXJuIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBwbGljYXRpb25DYWNoZUlu
Zm8oY2FjaGUtPm1hbmlmZXN0UmVzb3VyY2UoKS0+dXJsKCksIDAsIDAsIGNhY2hlLT5lc3RpbWF0
ZWRTaXplSW5TdG9yYWdlKCkpOworfQorI2VuZGlmCisKIHZvaWQgQXBwbGljYXRpb25DYWNoZUhv
c3Q6OmRpc3BhdGNoRE9NRXZlbnQoRXZlbnRJRCBpZCwgaW50IHRvdGFsLCBpbnQgZG9uZSkKIHsK
ICAgICBpZiAobV9kb21BcHBsaWNhdGlvbkNhY2hlKSB7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHJldmlzaW9uIDYzNDg4KQorKysg
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsOCBAQAogCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKIAorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgorCiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC00MCw3ICs0Miw2IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZTsK
ICAgICBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogICAgIGNsYXNzIERvY3VtZW50TG9hZGVy
OwogICAgIGNsYXNzIEtVUkw7CkBAIC01Miw2ICs1Myw3IEBACiAjaWYgUExBVEZPUk0oQ0hST01J
VU0pCiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbDsKICNlbHNlCisgICAg
Y2xhc3MgQXBwbGljYXRpb25DYWNoZTsKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlR3JvdXA7
CiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOwogICAgIGNsYXNzIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOwpAQCAtMTEyLDcgKzExNCwxMCBAQAogCiAgICAgICAgIHZvaWQgc3Rv
cERlZmVycmluZ0V2ZW50cygpOyAvLyBBbHNvIHJhaXNlcyB0aGUgZXZlbnRzIHRoYXQgaGF2ZSBi
ZWVuIHF1ZXVlZCB1cC4KIAotICAgICAgICBBcHBsaWNhdGlvbkNhY2hlKiBhcHBsaWNhdGlvbkNh
Y2hlRm9ySW5zcGVjdG9yKCkgY29uc3QgeyByZXR1cm4gYXBwbGljYXRpb25DYWNoZSgpOyB9Cisj
aWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICAgICAgdm9pZCBmaWxsUmVzb3VyY2VMaXN0KEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6UmVzb3VyY2VJbmZvTGlzdCopOworICAgICAgICBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9uQ2FjaGVJbmZvIGFwcGxp
Y2F0aW9uQ2FjaGVJbmZvKCk7CisjZW5kaWYKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wg
aXNBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOwpAQCAtMTM1LDcgKzE0MCw2IEBACiAjaWYgUExB
VEZPUk0oQ0hST01JVU0pCiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlSG9z
dEludGVybmFsOwogICAgICAgICBPd25QdHI8QXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbD4g
bV9pbnRlcm5hbDsKLSAgICAgICAgQXBwbGljYXRpb25DYWNoZSogYXBwbGljYXRpb25DYWNoZSgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0gLy8gRklYTUU6IEltcGxlbWVudCBmb3IgQ2hyb21pdW0gV2Vi
IEluc3BlY3RvciBTdXBwb3J0LgogI2Vsc2UKICAgICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0
aW9uQ2FjaGVHcm91cDsKICAgICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61760</attachid>
            <date>2010-07-15 20:33:57 -0700</date>
            <delta_ts>2010-07-21 16:38:13 -0700</delta_ts>
            <desc>correct patch3</desc>
            <filename>finalwebcore4.txt</filename>
            <type>text/plain</type>
            <size>14775</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShy
ZXZpc2lvbiA2MzQ4OCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTUgQEAKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNw
b25zZS5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldyYXBwZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVzb3VyY2VSZXNwb25zZS5oIgogCkBAIC0y
MDYsNiArMjEwLDI4IEBACiAgICAgZGlzcGF0Y2hET01FdmVudChpZCwgdG90YWwsIGRvbmUpOwog
fQogCitJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9uQ2FjaGVJbmZv
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAgV2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIHdlYkluZm87CisgICAgbV9p
bnRlcm5hbC0+bV9vdXRlckhvc3QtPmdldEFzc29jaWF0ZWRDYWNoZUluZm8oJndlYkluZm8pOwor
ICAgIC8vIENvbnZlcnQgdG8gd2ViY29yZS4KKyAgICByZXR1cm4gSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50OjpBcHBsaWNhdGlvbkNhY2hlSW5mbyh3ZWJJbmZvLm1hbmlmZXN0VVJMLCB3
ZWJJbmZvLmNyZWF0aW9uVGltZSwgd2ViSW5mby51cGRhdGVUaW1lLCB3ZWJJbmZvLnRvdGFsU2l6
ZSk7Cit9CisKK3ZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmZpbGxSZXNvdXJjZUxpc3QoSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpSZXNvdXJjZUluZm9MaXN0KiByZXNvdXJjZXMp
Cit7CisgICAgaWYgKG1faW50ZXJuYWwpIHsKKyAgICAgICAgV2ViS2l0OjpXZWJWZWN0b3I8V2Vi
S2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvPiB3ZWJSZXNvdXJjZXM7
CisgICAgICAgIG1faW50ZXJuYWwtPm1fb3V0ZXJIb3N0LT5nZXRSZXNvdXJjZUxpc3QoJndlYlJl
c291cmNlcyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2ViUmVzb3VyY2VzLnNpemUo
KTsgKytpKSB7CisgICAgICAgICAgICAvLyBDb252ZXJ0IHJlc3VsdHMgZnJvbSB3ZWJSZXNvdXJj
ZXMgdG8gcmVzb3VyY2VzLgorICAgICAgICAgICAgcmVzb3VyY2VzLT5hcHBlbmQoSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50OjpSZXNvdXJjZUluZm8oCisgICAgICAgICAgICBLVVJMKHdl
YlJlc291cmNlc1tpXS51cmwpLCB3ZWJSZXNvdXJjZXNbaV0uaXNNYXN0ZXIsIHdlYlJlc291cmNl
c1tpXS5pc01hbmlmZXN0LCB3ZWJSZXNvdXJjZXNbaV0uaXNGYWxsYmFjaywgd2ViUmVzb3VyY2Vz
W2ldLmlzRm9yZWlnbiwKKyAgICAgICAgICAgICAgICAgd2ViUmVzb3VyY2VzW2ldLmlzRXhwbGlj
aXQsIHdlYlJlc291cmNlc1tpXS5zaXplKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHZvaWQg
QXBwbGljYXRpb25DYWNoZUhvc3Q6OnN0b3BEZWZlcnJpbmdFdmVudHMoKQogewogICAgIFJlZlB0
cjxEb2N1bWVudExvYWRlcj4gcHJvdGVjdChkb2N1bWVudExvYWRlcigpKTsKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcwkocmV2
aXNpb24gNjM0ODgpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xs
ZXJJbXBsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAgICAgdGhpcy5pbnN0
YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZW5hYmxlVGltZWxpbmUiKTsKICAgICB0
aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRDaGlsZE5vZGVzIik7
CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q29va2ll
cyIpOworICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldEFw
cGxpY2F0aW9uQ2FjaGVzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRl
bGVnYXRlXygiZ2V0RGF0YWJhc2VUYWJsZU5hbWVzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVj
dG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0RE9NU3RvcmFnZUVudHJpZXMiKTsKICAgICB0aGlz
Lmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRFdmVudExpc3RlbmVyc0Zv
ck5vZGUiKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3RJ
bnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25D
YWNoZUhvc3RJbnRlcm5hbC5oCShyZXZpc2lvbiA2MzQ4OCkKKysrIFdlYktpdC9jaHJvbWl1bS9z
cmMvQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2
ICs1OCwxMSBAQAogICAgICAgICAvLyBGSVhNRTogUHJvZCB0aGUgaW5zcGVjdG9yIHRvIHVwZGF0
ZSBpdCdzIG5vdGlvbiBvZiB3aGF0IGNhY2hlIHRoZSBwYWdlIGlzIHVzaW5nLgogICAgIH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDYWNoZUFzc29jaWF0aW9uKCkKKyAgICB7CisgICAg
ICAgICAvLyBGSVhNRTogUHJvZCB0aGUgaW5zcGVjdG9yIHRvIHVwZGF0ZSBpdCdzIG5vdGlvbiBv
ZiB3aGF0IGNhY2hlIHRoZSBwYWdlIGlzIHVzaW5nLgorICAgIH0KKwogICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlFdmVudExpc3RlbmVyKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OkV2
ZW50SUQgZXZlbnRJRCkKICAgICB7CiAgICAgICAgIG1faW5uZXJIb3N0LT5ub3RpZnlET01BcHBs
aWNhdGlvbkNhY2hlKHN0YXRpY19jYXN0PEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpFdmVudElEPihl
dmVudElEKSwgMCwgMCk7CkBAIC02Nyw3ICs3Miw2IEBACiAgICAgewogICAgICAgICBtX2lubmVy
SG9zdC0+bm90aWZ5RE9NQXBwbGljYXRpb25DYWNoZShBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UFJP
R1JFU1NfRVZFTlQsIHByb2dyZXNzVG90YWwsIHByb2dyZXNzRG9uZSk7CiAgICAgfQotCiAgICAg
c3RhdGljIFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZUhvc3QqIHRvV2ViQXBwbGljYXRpb25D
YWNoZUhvc3QoQXBwbGljYXRpb25DYWNoZUhvc3QqIGlubmVySG9zdCkKICAgICB7CiAgICAgICAg
IGlmIChpbm5lckhvc3QgJiYgaW5uZXJIb3N0LT5tX2ludGVybmFsLmdldCgpKQpJbmRleDogV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCShyZXZpc2lvbiA2MzUwNSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0xNSAgS2F2aXRhIEthbmV0a2Fy
ICA8a2thbmV0a2FyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgcmVtYWluaW5nIEluc3BlY3RvciBzdXBwb3J0
IGZvciBjaHJvbWUncyBhcHBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDI0MjYKKworICAgICAgICAqIHNyYy9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6YXBwbGljYXRp
b25DYWNoZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmZp
bGxSZXNvdXJjZUxpc3QpOgorICAgICAgICAqIHNyYy9BcHBsaWNhdGlvbkNhY2hlSG9zdEludGVy
bmFsLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsOjpk
aWRDaGFuZ2VDYWNoZUFzc29jaWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVIb3N0SW50ZXJuYWw6Om5vdGlmeVByb2dyZXNzRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
ICogc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzOgorICAgICAgICAoZGV2dG9vbHMu
SW5zcGVjdG9yQmFja2VuZEltcGwpOgorCiAyMDEwLTA3LTEzICBaaGVueWFvIE1vICA8em1vQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmF0ZSBDaGFwaW4uCkluZGV4OiBXZWJD
b3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24g
NjM1MDUpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIz
IEBACisyMDEwLTA3LTE1ICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCByZW1haW5pbmcgSW5zcGVjdG9yIHN1cHBvcnQgZm9yIGNocm9tZSdzIGFwcGNhY2hlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQyNgorCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6dXBkYXRl
QXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ6OmdldEFwcGxpY2F0aW9uQ2FjaGVzKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9uQ2FjaGVJbmZvOjpB
cHBsaWNhdGlvbkNhY2hlSW5mbyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEZyb250ZW5kKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmZpbGxSZXNv
dXJjZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmFwcGxp
Y2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUhvc3QuaDoKKwogMjAxMC0wNy0xNSAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCkluZGV4OiBXZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkocmV2
aXNpb24gNjM0ODgpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTQgKzI3LDEyIEBACiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCi0jaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgSW5zcGVj
dG9yQ29udHJvbGxlcjsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZTsKQEAgLTQ0LDcgKzQyLDcgQEAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEFwcGxp
Y2F0aW9uQ2FjaGVJbmZvIHsKLSAgICAgICAgQXBwbGljYXRpb25DYWNoZUluZm8oY29uc3QgS1VS
TCYgbWFuaWZlc3QsIGNvbnN0IFN0cmluZyYgY3JlYXRpb25UaW1lLCBjb25zdCBTdHJpbmcmIHVw
ZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQorICAgICAgICBBcHBsaWNhdGlvbkNhY2hlSW5mbyhj
b25zdCBLVVJMJiBtYW5pZmVzdCwgZG91YmxlIGNyZWF0aW9uVGltZSwgZG91YmxlIHVwZGF0ZVRp
bWUsIGxvbmcgbG9uZyBzaXplKQogICAgICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlmZXN0KQog
ICAgICAgICAgICAgLCBtX2NyZWF0aW9uVGltZShjcmVhdGlvblRpbWUpCiAgICAgICAgICAgICAs
IG1fdXBkYXRlVGltZSh1cGRhdGVUaW1lKQpAQCAtNTMsOCArNTEsOCBAQAogICAgICAgICB9CiAK
ICAgICAgICAgS1VSTCBtX21hbmlmZXN0OwotICAgICAgICBTdHJpbmcgbV9jcmVhdGlvblRpbWU7
Ci0gICAgICAgIFN0cmluZyBtX3VwZGF0ZVRpbWU7CisgICAgICAgIGRvdWJsZSBtX2NyZWF0aW9u
VGltZTsKKyAgICAgICAgZG91YmxlIG1fdXBkYXRlVGltZTsKICAgICAgICAgbG9uZyBsb25nIG1f
c2l6ZTsKICAgICB9OwogCkBAIC04Niw3ICs4NCw3IEBACiAKICAgICAvLyBCYWNrZW5kIHRvIEZy
b250ZW5kCiAgICAgdm9pZCBkaWRSZWNlaXZlTWFuaWZlc3RSZXNwb25zZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIHVwZGF0ZUFw
cGxpY2F0aW9uQ2FjaGVTdGF0dXMoQXBwbGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1cyk7CisgICAg
dm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKGludCBzdGF0dXMpOwogICAgIHZvaWQg
dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgaXNOb3dPbmxpbmUpOwogCiAgICAgLy8gRnJvbSBGcm9u
dGVuZApAQCAtOTcsOCArOTUsNiBAQAogICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IFJlc291cmNlSW5mb0xpc3QmKTsKICAgICBTY3Jp
cHRPYmplY3QgYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgUmVz
b3VyY2VJbmZvJik7CiAKLSAgICB2b2lkIGZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNo
ZSosIFJlc291cmNlSW5mb0xpc3QqKTsKLQogICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIG1faW5z
cGVjdG9yQ29udHJvbGxlcjsKICAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKIH07
CkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKIAotI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGUuaCIKLSNpbmNsdWRlICJB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9z
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgpAQCAtNTMsNyArNTIsNyBAQAogICAgIG1faW5zcGVjdG9y
Q29udHJvbGxlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OnVwZGF0ZUFwcGxpY2F0aW9u
Q2FjaGVTdGF0dXMoQXBwbGljYXRpb25DYWNoZUhvc3Q6OlN0YXR1cyBzdGF0dXMpCit2b2lkIElu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1
cyhpbnQgc3RhdHVzKQogewogICAgIG1fZnJvbnRlbmQtPnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVT
dGF0dXMoc3RhdHVzKTsKIH0KQEAgLTYzLDI5ICs2Miw2IEBACiAgICAgbV9mcm9udGVuZC0+dXBk
YXRlTmV0d29ya1N0YXRlKGlzTm93T25saW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OmZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSogY2FjaGUs
IFJlc291cmNlSW5mb0xpc3QqIHJlc291cmNlcykKLXsKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgQVNTRVJUKGNhY2hlICYmIGNhY2hlLT5pc0NvbXBsZXRlKCkpOwotI2VuZGlmCi0gICAg
QXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hl
LT5lbmQoKTsKLSAgICBmb3IgKEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9p
dGVyYXRvciBpdCA9IGNhY2hlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAg
UmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25kOwot
ICAgICAgICB1bnNpZ25lZCB0eXBlID0gcmVzb3VyY2UtPnR5cGUoKTsKLSAgICAgICAgYm9vbCBp
c01hc3RlciAgID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwotICAg
ICAgICBib29sIGlzTWFuaWZlc3QgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpN
YW5pZmVzdDsKLSAgICAgICAgYm9vbCBpc0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZTo6RXhwbGljaXQ7Ci0gICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUgJiBB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247Ci0gICAgICAgIGJvb2wgaXNGYWxsYmFj
ayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZhbGxiYWNrOwotI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQotICAgICAgICBpbnQ2NF90IGVzdGltYXRlZFNpemVJblN0b3JhZ2UgPSAw
OwotI2Vsc2UKLSAgICAgICAgaW50NjRfdCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0gcmVzb3Vy
Y2UtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKTsKLSNlbmRpZgotICAgICAgICByZXNvdXJjZXMt
PmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mbyhyZXNv
dXJjZS0+dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24s
IGlzRXhwbGljaXQsIGVzdGltYXRlZFNpemVJblN0b3JhZ2UpKTsKLSAgICB9Ci19Ci0KIHZvaWQg
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25n
IGNhbGxJZCkKIHsKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBtX2luc3Bl
Y3RvckNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2UoKS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5k
b2N1bWVudExvYWRlcigpOwpAQCAtOTUsMjAgKzcxLDEwIEBACiAgICAgfQogCiAgICAgQXBwbGlj
YXRpb25DYWNoZUhvc3QqIGhvc3QgPSBkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhv
c3QoKTsKLSAgICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IGhvc3QtPmFwcGxpY2F0aW9uQ2Fj
aGVGb3JJbnNwZWN0b3IoKTsKLSAgICBpZiAoIWNhY2hlCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVN
KQotICAgICAgICB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKQotI2VuZGlmCi0gICAgICAgICkgewot
ICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIFNjcmlw
dFZhbHVlOjp1bmRlZmluZWQoKSk7Ci0gICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KLQot
ICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0aW9uIFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRvIEFw
cGxpY2F0aW9uIENhY2hlcy4KLSAgICBBcHBsaWNhdGlvbkNhY2hlSW5mbyBpbmZvKGNhY2hlLT5t
YW5pZmVzdFJlc291cmNlKCktPnVybCgpLCBTdHJpbmcoKSwgU3RyaW5nKCksIGNhY2hlLT5lc3Rp
bWF0ZWRTaXplSW5TdG9yYWdlKCkpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVJbmZvIGluZm8gPSBo
b3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5mbygpOworIAogICAgIFJlc291cmNlSW5mb0xpc3QgcmVz
b3VyY2VzOwotICAgIGZpbGxSZXNvdXJjZUxpc3QoY2FjaGUsICZyZXNvdXJjZXMpOworICAgIGhv
c3QtPmZpbGxSZXNvdXJjZUxpc3QoJnJlc291cmNlcyk7CiAKICAgICBtX2Zyb250ZW5kLT5kaWRH
ZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNo
ZShyZXNvdXJjZXMsIGluZm8pKTsKIH0KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDYzNDg4KQorKysgV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTAsNiArMjUwLDM3IEBACiAgICAgbV9kZWZlcnNFdmVudHMgPSBmYWxzZTsKIH0KIAor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxsUmVz
b3VyY2VMaXN0KEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6UmVzb3VyY2VJbmZvTGlz
dCogcmVzb3VyY2VzKQoreworICAgIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlID0gYXBwbGljYXRp
b25DYWNoZSgpOworICAgIGlmICghY2FjaGUgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkpCisgICAg
ICAgIHJldHVybjsKKyAgICAgCisgICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hlLT5lbmQoKTsKKyAgICBmb3IgKEFwcGxpY2F0aW9uQ2Fj
aGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKKyAgICAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4g
cmVzb3VyY2UgPSBpdC0+c2Vjb25kOworICAgICAgICB1bnNpZ25lZCB0eXBlID0gcmVzb3VyY2Ut
PnR5cGUoKTsKKyAgICAgICAgYm9vbCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZTo6TWFzdGVyOworICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0eXBlICYgQXBw
bGljYXRpb25DYWNoZVJlc291cmNlOjpNYW5pZmVzdDsKKyAgICAgICAgYm9vbCBpc0V4cGxpY2l0
ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7CisgICAgICAgIGJv
b2wgaXNGb3JlaWduICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247
CisgICAgICAgIGJvb2wgaXNGYWxsYmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OkZhbGxiYWNrOworICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBp
c01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIHJlc291cmNlLT5l
c3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpKTsKKyAgICB9Cit9CisgCitJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9uQ2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjphcHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUg
PSBhcHBsaWNhdGlvbkNhY2hlKCk7CisgICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxl
dGUoKSkKKyAgICAgICAgcmV0dXJuIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6QXBw
bGljYXRpb25DYWNoZUluZm8oS1VSTCgpLCAwLCAwLCAwKTsKKyAgCisgICAgLy8gRklYTUU6IEFk
ZCAiQ3JlYXRpb24gVGltZSIgYW5kICJVcGRhdGUgVGltZSIgdG8gQXBwbGljYXRpb24gQ2FjaGVz
LgorICAgIHJldHVybiBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OkFwcGxpY2F0aW9u
Q2FjaGVJbmZvKGNhY2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgpLCAwLCAwLCBjYWNoZS0+
ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpKTsKK30KKyNlbmRpZgorCiB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpkaXNwYXRjaERPTUV2ZW50KEV2ZW50SUQgaWQsIGludCB0b3RhbCwgaW50IGRv
bmUpCiB7CiAgICAgaWYgKG1fZG9tQXBwbGljYXRpb25DYWNoZSkgewpJbmRleDogV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCShyZXZpc2lvbiA2MzQ4
OCkKKysrIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAKKyNpbmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQu
aCIKKwogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDAsNyArNDIsNiBAQAogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEFwcGxpY2F0aW9u
Q2FjaGU7CiAgICAgY2xhc3MgRE9NQXBwbGljYXRpb25DYWNoZTsKICAgICBjbGFzcyBEb2N1bWVu
dExvYWRlcjsKICAgICBjbGFzcyBLVVJMOwpAQCAtNTIsNiArNTMsNyBAQAogI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWw7CiAjZWxz
ZQorICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGU7CiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNo
ZUdyb3VwOwogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTsKICAgICBjbGFzcyBB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKQEAgLTExMiw3ICsxMTQsMTAgQEAKIAogICAgICAgICB2
b2lkIHN0b3BEZWZlcnJpbmdFdmVudHMoKTsgLy8gQWxzbyByYWlzZXMgdGhlIGV2ZW50cyB0aGF0
IGhhdmUgYmVlbiBxdWV1ZWQgdXAuCiAKLSAgICAgICAgQXBwbGljYXRpb25DYWNoZSogYXBwbGlj
YXRpb25DYWNoZUZvckluc3BlY3RvcigpIGNvbnN0IHsgcmV0dXJuIGFwcGxpY2F0aW9uQ2FjaGUo
KTsgfQorI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgICAgIHZvaWQgZmlsbFJlc291cmNlTGlz
dChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mb0xpc3QqKTsKKyAg
ICAgICAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpBcHBsaWNhdGlvbkNhY2hlSW5m
byBhcHBsaWNhdGlvbkNhY2hlSW5mbygpOworI2VuZGlmCiAKICAgICBwcml2YXRlOgogICAgICAg
ICBib29sIGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKQEAgLTEzNSw3ICsxNDAsNiBAQAog
I2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRpb25D
YWNoZUhvc3RJbnRlcm5hbDsKICAgICAgICAgT3duUHRyPEFwcGxpY2F0aW9uQ2FjaGVIb3N0SW50
ZXJuYWw+IG1faW50ZXJuYWw7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUqIGFwcGxpY2F0aW9u
Q2FjaGUoKSBjb25zdCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIENocm9t
aXVtIFdlYiBJbnNwZWN0b3IgU3VwcG9ydC4KICNlbHNlCiAgICAgICAgIGZyaWVuZCBjbGFzcyBB
cHBsaWNhdGlvbkNhY2hlR3JvdXA7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTsK
</data>
<flag name="review"
          id="49837"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62247</attachid>
            <date>2010-07-21 16:38:13 -0700</date>
            <delta_ts>2010-07-21 17:00:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webcore406-2.txt</filename>
            <type>text/plain</type>
            <size>17902</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShy
ZXZpc2lvbiA2Mzg1OCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTUgQEAKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNw
b25zZS5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldyYXBwZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVzb3VyY2VSZXNwb25zZS5oIgogCkBAIC0y
MDYsNiArMjEwLDI4IEBACiAgICAgZGlzcGF0Y2hET01FdmVudChpZCwgdG90YWwsIGRvbmUpOwog
fQogCitBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjphcHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAgaWYgKCFtX2ludGVybmFsKQorICAgICAg
cmV0dXJuIENhY2hlSW5mbyhXZWJVUkwoKSwgMCwgMCwgMCk7CisKKyAgICBXZWJLaXQ6OldlYkFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gd2ViSW5mbzsKKyAgICBtX2ludGVybmFsLT5t
X291dGVySG9zdC0+Z2V0QXNzb2NpYXRlZENhY2hlSW5mbygmd2ViSW5mbyk7CisgICAgcmV0dXJu
IENhY2hlSW5mbyh3ZWJJbmZvLm1hbmlmZXN0VVJMLCB3ZWJJbmZvLmNyZWF0aW9uVGltZSwgd2Vi
SW5mby51cGRhdGVUaW1lLCB3ZWJJbmZvLnRvdGFsU2l6ZSk7Cit9CisKK3ZvaWQgQXBwbGljYXRp
b25DYWNoZUhvc3Q6OmZpbGxSZXNvdXJjZUxpc3QoUmVzb3VyY2VJbmZvTGlzdCogcmVzb3VyY2Vz
KQoreworICAgIGlmIChtX2ludGVybmFsKSB7CisgICAgICAgIFdlYktpdDo6V2ViVmVjdG9yPFdl
YktpdDo6V2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbz4gd2ViUmVzb3VyY2Vz
OworICAgICAgICBtX2ludGVybmFsLT5tX291dGVySG9zdC0+Z2V0UmVzb3VyY2VMaXN0KCZ3ZWJS
ZXNvdXJjZXMpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHdlYlJlc291cmNlcy5zaXpl
KCk7ICsraSkgeworICAgICAgICAgICAgcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2VJbmZvKAor
ICAgICAgICAgICAgS1VSTCh3ZWJSZXNvdXJjZXNbaV0udXJsKSwgd2ViUmVzb3VyY2VzW2ldLmlz
TWFzdGVyLCB3ZWJSZXNvdXJjZXNbaV0uaXNNYW5pZmVzdCwgd2ViUmVzb3VyY2VzW2ldLmlzRmFs
bGJhY2ssIHdlYlJlc291cmNlc1tpXS5pc0ZvcmVpZ24sIHdlYlJlc291cmNlc1tpXS5pc0V4cGxp
Y2l0LCB3ZWJSZXNvdXJjZXNbaV0uc2l6ZSkpOworICAgICAgICB9CisgICAgfQorfQorCiB2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpzdG9wRGVmZXJyaW5nRXZlbnRzKCkKIHsKICAgICBSZWZQ
dHI8RG9jdW1lbnRMb2FkZXI+IHByb3RlY3QoZG9jdW1lbnRMb2FkZXIoKSk7CkluZGV4OiBXZWJL
aXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMJKHJl
dmlzaW9uIDYzODU4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9s
bGVySW1wbC5qcwkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogICAgIHRoaXMuaW5z
dGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImVuYWJsZVRpbWVsaW5lIik7CiAgICAg
dGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q2hpbGROb2RlcyIp
OwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldENvb2tp
ZXMiKTsKKyAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRB
cHBsaWNhdGlvbkNhY2hlcyIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJE
ZWxlZ2F0ZV8oImdldERhdGFiYXNlVGFibGVOYW1lcyIpOwogICAgIHRoaXMuaW5zdGFsbEluc3Bl
Y3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldERPTVN0b3JhZ2VFbnRyaWVzIik7CiAgICAgdGhp
cy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0RXZlbnRMaXN0ZW5lcnNG
b3JOb2RlIik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzODU4KQorKysgV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA3
LTIxICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCByZW1haW5p
bmcgSW5zcGVjdG9yIHN1cHBvcnQgZm9yIGNocm9tZSdzIGFwcGNhY2hlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQyNgorCisgICAgICAgICogc3Jj
L0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDogUGx1Z2dpbmcgaW4gY2hyb21lJ3MgYXBwY2FjaGUg
aW5mby4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlv
bkNhY2hlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Zmls
bFJlc291cmNlTGlzdCk6CisgICAgICAgICogc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBs
LmpzOgorICAgICAgICAoZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwpOgorCiAyMDEwLTA3
LTIxICBGaW5udXIgVGhvcmFyaW5zc29uICA8ZmlubnVyLndlYmtpdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzODU4KQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0w
Ny0yMSAgS2F2aXRhIEthbmV0a2FyICA8a2thbmV0a2FyQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgcmVtYWlu
aW5nIEluc3BlY3RvciBzdXBwb3J0IGZvciBjaHJvbWUncyBhcHBjYWNoZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0MjYKKworICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hl
cyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1
aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVz
b3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlv
bkNhY2hlSG9zdDo6ZmlsbFJlc291cmNlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNh
dGlvbkNhY2hlSG9zdDo6YXBwbGljYXRpb25DYWNoZUluZm8pOgorICAgICAgICAqIGxvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oOiBNb3ZpbmcgYXBwY2FjaGUgaW5mbyBoZXJl
IGZyb20gSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm86OkNhY2hlSW5mbyk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvOjpSZXNvdXJjZUluZm8p
OgorCiAyMDEwLTA3LTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KSW5kZXg6IFdlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
MjksNyArNTI5LDcgQEAKICAgICBpZiAobV9ub2RlVG9Gb2N1cykKICAgICAgICAgZm9jdXNOb2Rl
KCk7CiAgICAgc2hvd1BhbmVsKG1fc2hvd0FmdGVyVmlzaWJsZSk7Ci0KKyAgICAKICNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50
ID0gbmV3IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCh0aGlzLCBtX2Zyb250ZW5kLmdl
dCgpKTsKICNlbmRpZgpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgJKHJldmlzaW9uIDYzODU4KQorKysgV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDEzICsyOCwxMSBAQAogI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgot
I2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFwcGxp
Y2F0aW9uQ2FjaGU7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgSW5zcGVjdG9y
RnJvbnRlbmQ7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwpAQCAtNDMsNjIgKzQxLDI0IEBACiAK
IGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7CiBwdWJsaWM6Ci0gICAgc3RydWN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvIHsKLSAgICAgICAg
QXBwbGljYXRpb25DYWNoZUluZm8oY29uc3QgS1VSTCYgbWFuaWZlc3QsIGNvbnN0IFN0cmluZyYg
Y3JlYXRpb25UaW1lLCBjb25zdCBTdHJpbmcmIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQot
ICAgICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlmZXN0KQotICAgICAgICAgICAgLCBtX2NyZWF0
aW9uVGltZShjcmVhdGlvblRpbWUpCi0gICAgICAgICAgICAsIG1fdXBkYXRlVGltZSh1cGRhdGVU
aW1lKQotICAgICAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0K
LSAgICAgICAgS1VSTCBtX21hbmlmZXN0OwotICAgICAgICBTdHJpbmcgbV9jcmVhdGlvblRpbWU7
Ci0gICAgICAgIFN0cmluZyBtX3VwZGF0ZVRpbWU7Ci0gICAgICAgIGxvbmcgbG9uZyBtX3NpemU7
Ci0gICAgfTsKLQotICAgIHN0cnVjdCBSZXNvdXJjZUluZm8gewotICAgICAgICBSZXNvdXJjZUlu
Zm8oY29uc3QgS1VSTCYgcmVzb3VyY2UsIGJvb2wgaXNNYXN0ZXIsIGJvb2wgaXNNYW5pZmVzdCwg
Ym9vbCBpc0ZhbGxiYWNrLCBib29sIGlzRm9yZWlnbiwgYm9vbCBpc0V4cGxpY2l0LCBsb25nIGxv
bmcgc2l6ZSkKLSAgICAgICAgICAgIDogbV9yZXNvdXJjZShyZXNvdXJjZSkKLSAgICAgICAgICAg
ICwgbV9pc01hc3Rlcihpc01hc3RlcikKLSAgICAgICAgICAgICwgbV9pc01hbmlmZXN0KGlzTWFu
aWZlc3QpCi0gICAgICAgICAgICAsIG1faXNGYWxsYmFjayhpc0ZhbGxiYWNrKQotICAgICAgICAg
ICAgLCBtX2lzRm9yZWlnbihpc0ZvcmVpZ24pCi0gICAgICAgICAgICAsIG1faXNFeHBsaWNpdChp
c0V4cGxpY2l0KQotICAgICAgICAgICAgLCBtX3NpemUoc2l6ZSkKLSAgICAgICAgewotICAgICAg
ICB9Ci0KLSAgICAgICAgS1VSTCBtX3Jlc291cmNlOwotICAgICAgICBib29sIG1faXNNYXN0ZXI7
Ci0gICAgICAgIGJvb2wgbV9pc01hbmlmZXN0OwotICAgICAgICBib29sIG1faXNGYWxsYmFjazsK
LSAgICAgICAgYm9vbCBtX2lzRm9yZWlnbjsKLSAgICAgICAgYm9vbCBtX2lzRXhwbGljaXQ7Ci0g
ICAgICAgIGxvbmcgbG9uZyBtX3NpemU7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgVmVjdG9yPFJl
c291cmNlSW5mbz4gUmVzb3VyY2VJbmZvTGlzdDsKLQogICAgIEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNw
ZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOwogICAgIH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQoKSB7IH0KIAogICAgIC8vIEJhY2tlbmQgdG8gRnJvbnRlbmQKICAgICB2b2lkIGRpZFJl
Y2VpdmVNYW5pZmVzdFJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOworCiAgICAgdm9pZCB1cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVz
KEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpTdGF0dXMpOworCiAgICAgdm9pZCB1cGRhdGVOZXR3b3Jr
U3RhdGUoYm9vbCBpc05vd09ubGluZSk7CiAKICAgICAvLyBGcm9tIEZyb250ZW5kCiAgICAgdm9p
ZCBnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCk7CiAKIHByaXZhdGU6Ci0gICAgU2Ny
aXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25zdCBSZXNvdXJjZUlu
Zm9MaXN0JiwgY29uc3QgQXBwbGljYXRpb25DYWNoZUluZm8mKTsKLSAgICBTY3JpcHRBcnJheSBi
dWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlcyhjb25zdCBSZXNvdXJjZUluZm9M
aXN0Jik7Ci0gICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJl
c291cmNlKGNvbnN0IFJlc291cmNlSW5mbyYpOworICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVj
dEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNl
SW5mb0xpc3QmLCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvJik7CisgICAg
U2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3Qg
QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmKTsKKyAgICBTY3JpcHRPYmpl
Y3QgYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgQXBwbGljYXRp
b25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbyYpOwogCi0gICAgdm9pZCBmaWxsUmVzb3VyY2VMaXN0
KEFwcGxpY2F0aW9uQ2FjaGUqLCBSZXNvdXJjZUluZm9MaXN0Kik7Ci0KICAgICBJbnNwZWN0b3JD
b250cm9sbGVyKiBtX2luc3BlY3RvckNvbnRyb2xsZXI7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQq
IG1fZnJvbnRlbmQ7CiB9OwpJbmRleDogV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCShyZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDggKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAKLSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hl
LmgiCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgiCisjaW5jbHVkZSAiQXBw
bGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTYzLDI5ICs2Miw2IEBA
CiAgICAgbV9mcm9udGVuZC0+dXBkYXRlTmV0d29ya1N0YXRlKGlzTm93T25saW5lKTsKIH0KIAot
dm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmZpbGxSZXNvdXJjZUxpc3QoQXBw
bGljYXRpb25DYWNoZSogY2FjaGUsIFJlc291cmNlSW5mb0xpc3QqIHJlc291cmNlcykKLXsKLSNp
ZiAhUExBVEZPUk0oQ0hST01JVU0pCi0gICAgQVNTRVJUKGNhY2hlICYmIGNhY2hlLT5pc0NvbXBs
ZXRlKCkpOwotI2VuZGlmCi0gICAgQXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IGNhY2hlLT5lbmQoKTsKLSAgICBmb3IgKEFwcGxpY2F0aW9uQ2FjaGU6
OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlLT5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gcmVz
b3VyY2UgPSBpdC0+c2Vjb25kOwotICAgICAgICB1bnNpZ25lZCB0eXBlID0gcmVzb3VyY2UtPnR5
cGUoKTsKLSAgICAgICAgYm9vbCBpc01hc3RlciAgID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZTo6TWFzdGVyOwotICAgICAgICBib29sIGlzTWFuaWZlc3QgPSB0eXBlICYgQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlOjpNYW5pZmVzdDsKLSAgICAgICAgYm9vbCBpc0V4cGxpY2l0ID0g
dHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RXhwbGljaXQ7Ci0gICAgICAgIGJvb2wg
aXNGb3JlaWduICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247Ci0g
ICAgICAgIGJvb2wgaXNGYWxsYmFjayA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6
OkZhbGxiYWNrOwotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBpbnQ2NF90IGVzdGlt
YXRlZFNpemVJblN0b3JhZ2UgPSAwOwotI2Vsc2UKLSAgICAgICAgaW50NjRfdCBlc3RpbWF0ZWRT
aXplSW5TdG9yYWdlID0gcmVzb3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKTsKLSNlbmRp
ZgotICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQ6OlJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBp
c0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIGVzdGltYXRlZFNpemVJblN0b3JhZ2Up
KTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRB
cHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCkKIHsKICAgICBEb2N1bWVudExvYWRlciogZG9j
dW1lbnRMb2FkZXIgPSBtX2luc3BlY3RvckNvbnRyb2xsZXItPmluc3BlY3RlZFBhZ2UoKS0+bWFp
bkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpOwpAQCAtOTUsMjUgKzcxLDE1IEBA
CiAgICAgfQogCiAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGhvc3QgPSBkb2N1bWVudExvYWRl
ci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKLSAgICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9
IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNwZWN0b3IoKTsKLSAgICBpZiAoIWNhY2hlCi0j
aWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKQot
I2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlv
bkNhY2hlcyhjYWxsSWQsIFNjcmlwdFZhbHVlOjp1bmRlZmluZWQoKSk7Ci0gICAgICAgIHJldHVy
bjsgICAgICAgIAotICAgIH0KKyAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIGlu
Zm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5mbygpOworIAorICAgIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0IHJlc291cmNlczsKKyAgICBob3N0LT5maWxsUmVzb3Vy
Y2VMaXN0KCZyZXNvdXJjZXMpOwogCi0gICAgLy8gRklYTUU6IEFkZCAiQ3JlYXRpb24gVGltZSIg
YW5kICJVcGRhdGUgVGltZSIgdG8gQXBwbGljYXRpb24gQ2FjaGVzLgotICAgIEFwcGxpY2F0aW9u
Q2FjaGVJbmZvIGluZm8oY2FjaGUtPm1hbmlmZXN0UmVzb3VyY2UoKS0+dXJsKCksIFN0cmluZygp
LCBTdHJpbmcoKSwgY2FjaGUtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSk7Ci0gICAgUmVzb3Vy
Y2VJbmZvTGlzdCByZXNvdXJjZXM7Ci0gICAgZmlsbFJlc291cmNlTGlzdChjYWNoZSwgJnJlc291
cmNlcyk7Ci0KICAgICBtX2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQs
IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShyZXNvdXJjZXMsIGluZm8pKTsKIH0KIAot
U2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RG
b3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZXMsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvJiBhcHBsaWNhdGlvbkNhY2hl
SW5mbykKK1NjcmlwdE9iamVjdCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25zdCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVz
b3VyY2VJbmZvTGlzdCYgYXBwbGljYXRpb25DYWNoZVJlc291cmNlcywgY29uc3QgQXBwbGljYXRp
b25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYgYXBwbGljYXRpb25DYWNoZUluZm8pCiB7CiAgICAgU2Ny
aXB0T2JqZWN0IHZhbHVlID0gbV9mcm9udGVuZC0+bmV3U2NyaXB0T2JqZWN0KCk7CiAgICAgdmFs
dWUuc2V0KCJzaXplIiwgYXBwbGljYXRpb25DYWNoZUluZm8ubV9zaXplKTsKQEAgLTEyNSwxOSAr
OTEsMTkgQEAKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLVNjcmlwdEFycmF5IEluc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZXMoY29uc3QgUmVzb3VyY2VJbmZvTGlzdCYgYXBwbGljYXRpb25DYWNoZVJlc291cmNlcykKK1Nj
cmlwdEFycmF5IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRBcnJheUZvckFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291
cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMpCiB7CiAgICAgU2NyaXB0QXJy
YXkgcmVzb3VyY2VzID0gbV9mcm9udGVuZC0+bmV3U2NyaXB0QXJyYXkoKTsKIAotICAgIFJlc291
cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZXMuZW5kKCk7Ci0gICAgUmVzb3VyY2VJbmZvTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2VzLmJlZ2luKCk7CisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6
OlJlc291cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZXMuZW5kKCk7CisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xp
c3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXBwbGljYXRpb25DYWNoZVJlc291cmNlcy5iZWdpbigp
OwogICAgIGZvciAoaW50IGkgPSAwOyBpdCAhPSBlbmQ7ICsraXQsIGkrKykKICAgICAgICAgcmVz
b3VyY2VzLnNldChpLCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSgqaXQp
KTsKIAogICAgIHJldHVybiByZXNvdXJjZXM7CiB9CiAKLVNjcmlwdE9iamVjdCBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291
cmNlKGNvbnN0IFJlc291cmNlSW5mbyYgcmVzb3VyY2VJbmZvKQorU2NyaXB0T2JqZWN0IEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2UoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbyYgcmVzb3Vy
Y2VJbmZvKQogewogICAgIFNjcmlwdE9iamVjdCB2YWx1ZSA9IG1fZnJvbnRlbmQtPm5ld1Njcmlw
dE9iamVjdCgpOwogICAgIHZhbHVlLnNldCgibmFtZSIsIHJlc291cmNlSW5mby5tX3Jlc291cmNl
LnN0cmluZygpKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDYzODU4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNiAr
MjUwLDM3IEBACiAgICAgbV9kZWZlcnNFdmVudHMgPSBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KFJl
c291cmNlSW5mb0xpc3QqIHJlc291cmNlcykKK3sKKyAgICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNo
ZSA9IGFwcGxpY2F0aW9uQ2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlIHx8ICFjYWNoZS0+aXNDb21w
bGV0ZSgpKQorICAgICAgICByZXR1cm47CisgICAgIAorICAgIEFwcGxpY2F0aW9uQ2FjaGU6OlJl
c291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjYWNoZS0+ZW5kKCk7CisgICAgZm9yIChB
cHBsaWNhdGlvbkNhY2hlOjpSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjYWNoZS0+
YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIFJlZlB0cjxBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U+IHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgdW5zaWduZWQgdHlw
ZSA9IHJlc291cmNlLT50eXBlKCk7CisgICAgICAgIGJvb2wgaXNNYXN0ZXIgICA9IHR5cGUgJiBB
cHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hc3RlcjsKKyAgICAgICAgYm9vbCBpc01hbmlmZXN0
ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFuaWZlc3Q7CisgICAgICAgIGJv
b2wgaXNFeHBsaWNpdCA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0
OworICAgICAgICBib29sIGlzRm9yZWlnbiAgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291
cmNlOjpGb3JlaWduOworICAgICAgICBib29sIGlzRmFsbGJhY2sgPSB0eXBlICYgQXBwbGljYXRp
b25DYWNoZVJlc291cmNlOjpGYWxsYmFjazsKKyAgICAgICAgcmVzb3VyY2VzLT5hcHBlbmQoUmVz
b3VyY2VJbmZvKHJlc291cmNlLT51cmwoKSwgaXNNYXN0ZXIsIGlzTWFuaWZlc3QsIGlzRmFsbGJh
Y2ssIGlzRm9yZWlnbiwgaXNFeHBsaWNpdCwgcmVzb3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3Jh
Z2UoKSkpOworICAgIH0KK30KKyAKK0FwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gQXBw
bGljYXRpb25DYWNoZUhvc3Q6OmFwcGxpY2F0aW9uQ2FjaGVJbmZvKCkKK3sKKyAgICBBcHBsaWNh
dGlvbkNhY2hlKiBjYWNoZSA9IGFwcGxpY2F0aW9uQ2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlIHx8
ICFjYWNoZS0+aXNDb21wbGV0ZSgpKQorICAgICAgICByZXR1cm4gQ2FjaGVJbmZvKEtVUkwoKSwg
MCwgMCwgMCk7CisgIAorICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0aW9uIFRpbWUiIGFuZCAiVXBk
YXRlIFRpbWUiIHRvIEFwcGxpY2F0aW9uIENhY2hlcy4KKyAgICByZXR1cm4gQ2FjaGVJbmZvKGNh
Y2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgpLCAwLCAwLCBjYWNoZS0+ZXN0aW1hdGVkU2l6
ZUluU3RvcmFnZSgpKTsKK30KKyNlbmRpZgorCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojpk
aXNwYXRjaERPTUV2ZW50KEV2ZW50SUQgaWQsIGludCB0b3RhbCwgaW50IGRvbmUpCiB7CiAgICAg
aWYgKG1fZG9tQXBwbGljYXRpb25DYWNoZSkgewpJbmRleDogV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCShyZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CiAKKyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC00MCw3ICs0MSw2
IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAg
Y2xhc3MgQXBwbGljYXRpb25DYWNoZTsKICAgICBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwog
ICAgIGNsYXNzIERvY3VtZW50TG9hZGVyOwogICAgIGNsYXNzIEtVUkw7CkBAIC01Miw2ICs1Miw3
IEBACiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZUhv
c3RJbnRlcm5hbDsKICNlbHNlCisgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZTsKICAgICBjbGFz
cyBBcHBsaWNhdGlvbkNhY2hlR3JvdXA7CiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZVJlc291
cmNlOwogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOwpAQCAtODAsNiArODEsNDUg
QEAKICAgICAgICAgICAgIE9CU09MRVRFX0VWRU5UICAvLyBNdXN0IHJlbWFpbiB0aGUgbGFzdCB2
YWx1ZSwgdGhpcyBpcyB1c2VkIHRvIHNpemUgYXJyYXlzLgogICAgICAgICB9OwogCisgICAgICAg
IHN0cnVjdCBDYWNoZUluZm8geworICAgICAgICAgICAgQ2FjaGVJbmZvKGNvbnN0IEtVUkwmIG1h
bmlmZXN0LCBkb3VibGUgY3JlYXRpb25UaW1lLCBkb3VibGUgdXBkYXRlVGltZSwgbG9uZyBsb25n
IHNpemUpCisgICAgICAgICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlmZXN0KQorICAgICAgICAg
ICAgICAgICwgbV9jcmVhdGlvblRpbWUoY3JlYXRpb25UaW1lKQorICAgICAgICAgICAgICAgICwg
bV91cGRhdGVUaW1lKHVwZGF0ZVRpbWUpCisgICAgICAgICAgICAgICAgLCBtX3NpemUoc2l6ZSkK
KyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgS1VSTCBtX21hbmlmZXN0OworICAgICAg
ICBkb3VibGUgbV9jcmVhdGlvblRpbWU7CisgICAgICAgIGRvdWJsZSBtX3VwZGF0ZVRpbWU7Cisg
ICAgICAgIGxvbmcgbG9uZyBtX3NpemU7CisgICAgfTsKKworICAgIHN0cnVjdCBSZXNvdXJjZUlu
Zm8geworICAgICAgICBSZXNvdXJjZUluZm8oY29uc3QgS1VSTCYgcmVzb3VyY2UsIGJvb2wgaXNN
YXN0ZXIsIGJvb2wgaXNNYW5pZmVzdCwgYm9vbCBpc0ZhbGxiYWNrLCBib29sIGlzRm9yZWlnbiwg
Ym9vbCBpc0V4cGxpY2l0LCBsb25nIGxvbmcgc2l6ZSkKKyAgICAgICAgICAgIDogbV9yZXNvdXJj
ZShyZXNvdXJjZSkKKyAgICAgICAgICAgICwgbV9pc01hc3Rlcihpc01hc3RlcikKKyAgICAgICAg
ICAgICwgbV9pc01hbmlmZXN0KGlzTWFuaWZlc3QpCisgICAgICAgICAgICAsIG1faXNGYWxsYmFj
ayhpc0ZhbGxiYWNrKQorICAgICAgICAgICAgLCBtX2lzRm9yZWlnbihpc0ZvcmVpZ24pCisgICAg
ICAgICAgICAsIG1faXNFeHBsaWNpdChpc0V4cGxpY2l0KQorICAgICAgICAgICAgLCBtX3NpemUo
c2l6ZSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAKKyAgICAgICAgS1VSTCBtX3Jlc291
cmNlOworICAgICAgICBib29sIG1faXNNYXN0ZXI7CisgICAgICAgIGJvb2wgbV9pc01hbmlmZXN0
OworICAgICAgICBib29sIG1faXNGYWxsYmFjazsKKyAgICAgICAgYm9vbCBtX2lzRm9yZWlnbjsK
KyAgICAgICAgYm9vbCBtX2lzRXhwbGljaXQ7CisgICAgICAgIGxvbmcgbG9uZyBtX3NpemU7Cisg
ICAgfTsKKworCisgICAgdHlwZWRlZiBWZWN0b3I8UmVzb3VyY2VJbmZvPiBSZXNvdXJjZUluZm9M
aXN0OworCiAgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0KERvY3VtZW50TG9hZGVyKik7CiAg
ICAgICAgIH5BcHBsaWNhdGlvbkNhY2hlSG9zdCgpOwogCkBAIC0xMTIsNyArMTUyLDEwIEBACiAK
ICAgICAgICAgdm9pZCBzdG9wRGVmZXJyaW5nRXZlbnRzKCk7IC8vIEFsc28gcmFpc2VzIHRoZSBl
dmVudHMgdGhhdCBoYXZlIGJlZW4gcXVldWVkIHVwLgogCi0gICAgICAgIEFwcGxpY2F0aW9uQ2Fj
aGUqIGFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNwZWN0b3IoKSBjb25zdCB7IHJldHVybiBhcHBsaWNh
dGlvbkNhY2hlKCk7IH0KKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgICAgICB2b2lkIGZpbGxS
ZXNvdXJjZUxpc3QoUmVzb3VyY2VJbmZvTGlzdCopOworICAgICAgICBDYWNoZUluZm8gYXBwbGlj
YXRpb25DYWNoZUluZm8oKTsKKyNlbmRpZgogCiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBp
c0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CkBAIC0xMzUsNyArMTc4LDYgQEAKICNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKICAgICAgICAgZnJpZW5kIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
SW50ZXJuYWw7CiAgICAgICAgIE93blB0cjxBcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsPiBt
X2ludGVybmFsOwotICAgICAgICBBcHBsaWNhdGlvbkNhY2hlKiBhcHBsaWNhdGlvbkNhY2hlKCkg
Y29uc3QgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBDaHJvbWl1bSBXZWIg
SW5zcGVjdG9yIFN1cHBvcnQuCiAjZWxzZQogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRp
b25DYWNoZUdyb3VwOwogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62248</attachid>
            <date>2010-07-21 17:00:30 -0700</date>
            <delta_ts>2010-07-21 18:50:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webcore453.txt</filename>
            <type>text/plain</type>
            <size>17359</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShy
ZXZpc2lvbiA2Mzg1OCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTUgQEAKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNw
b25zZS5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldyYXBwZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVzb3VyY2VSZXNwb25zZS5oIgogCkBAIC0y
MDYsNiArMjEwLDI5IEBACiAgICAgZGlzcGF0Y2hET01FdmVudChpZCwgdG90YWwsIGRvbmUpOwog
fQogCitBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjphcHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAgaWYgKCFtX2ludGVybmFsKQorICAgICAg
cmV0dXJuIENhY2hlSW5mbyhXZWJVUkwoKSwgMCwgMCwgMCk7CisKKyAgICBXZWJLaXQ6OldlYkFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gd2ViSW5mbzsKKyAgICBtX2ludGVybmFsLT5t
X291dGVySG9zdC0+Z2V0QXNzb2NpYXRlZENhY2hlSW5mbygmd2ViSW5mbyk7CisgICAgcmV0dXJu
IENhY2hlSW5mbyh3ZWJJbmZvLm1hbmlmZXN0VVJMLCB3ZWJJbmZvLmNyZWF0aW9uVGltZSwgd2Vi
SW5mby51cGRhdGVUaW1lLCB3ZWJJbmZvLnRvdGFsU2l6ZSk7Cit9CisKK3ZvaWQgQXBwbGljYXRp
b25DYWNoZUhvc3Q6OmZpbGxSZXNvdXJjZUxpc3QoUmVzb3VyY2VJbmZvTGlzdCogcmVzb3VyY2Vz
KQoreworICAgIGlmICghbV9pbnRlcm5hbCkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViS2l0
OjpXZWJWZWN0b3I8V2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZv
PiB3ZWJSZXNvdXJjZXM7CisgICAgbV9pbnRlcm5hbC0+bV9vdXRlckhvc3QtPmdldFJlc291cmNl
TGlzdCgmd2ViUmVzb3VyY2VzKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHdlYlJlc291cmNl
cy5zaXplKCk7ICsraSkgeworICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZUluZm8o
CisgICAgICAgIEtVUkwod2ViUmVzb3VyY2VzW2ldLnVybCksIHdlYlJlc291cmNlc1tpXS5pc01h
c3Rlciwgd2ViUmVzb3VyY2VzW2ldLmlzTWFuaWZlc3QsIHdlYlJlc291cmNlc1tpXS5pc0ZhbGxi
YWNrLCB3ZWJSZXNvdXJjZXNbaV0uaXNGb3JlaWduLCB3ZWJSZXNvdXJjZXNbaV0uaXNFeHBsaWNp
dCwgd2ViUmVzb3VyY2VzW2ldLnNpemUpKTsKKyAgICAgICAgfQorfQorCiB2b2lkIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0OjpzdG9wRGVmZXJyaW5nRXZlbnRzKCkKIHsKICAgICBSZWZQdHI8RG9jdW1l
bnRMb2FkZXI+IHByb3RlY3QoZG9jdW1lbnRMb2FkZXIoKSk7CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMJKHJldmlzaW9uIDYz
ODU4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5q
cwkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogICAgIHRoaXMuaW5zdGFsbEluc3Bl
Y3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImVuYWJsZVRpbWVsaW5lIik7CiAgICAgdGhpcy5pbnN0
YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q2hpbGROb2RlcyIpOwogICAgIHRo
aXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldENvb2tpZXMiKTsKKyAg
ICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRBcHBsaWNhdGlv
bkNhY2hlcyIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8o
ImdldERhdGFiYXNlVGFibGVOYW1lcyIpOwogICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRy
b2xsZXJEZWxlZ2F0ZV8oImdldERPTVN0b3JhZ2VFbnRyaWVzIik7CiAgICAgdGhpcy5pbnN0YWxs
SW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlIik7
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzODU4KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA3LTIxICBLYXZp
dGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCByZW1haW5pbmcgSW5zcGVj
dG9yIHN1cHBvcnQgZm9yIGNocm9tZSdzIGFwcGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQyNgorCisgICAgICAgICogc3JjL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmNwcDogUGx1Z2dpbmcgaW4gY2hyb21lJ3MgYXBwY2FjaGUgaW5mby4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5m
byk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6ZmlsbFJlc291cmNl
TGlzdCk6CisgICAgICAgICogc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzOgorICAg
ICAgICAoZGV2dG9vbHMuSW5zcGVjdG9yQmFja2VuZEltcGwpOgorCiAyMDEwLTA3LTIxICBGaW5u
dXIgVGhvcmFyaW5zc29uICA8ZmlubnVyLndlYmtpdEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDYzODU4KQorKysgV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNy0yMSAgS2F2
aXRhIEthbmV0a2FyICA8a2thbmV0a2FyQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgcmVtYWluaW5nIEluc3Bl
Y3RvciBzdXBwb3J0IGZvciBjaHJvbWUncyBhcHBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0MjYKKworICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0
Rm9yQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRP
YmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAgICAgICogbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0
aW9uQ2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxp
Y2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5mbyk6CisgICAgICAgICogbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg6IE1vdmluZyBhcHBjYWNoZSBpbmZvIGhl
cmUgZnJvbSBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbzo6Q2FjaGVJbmZvKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm86OlJlc291cmNlSW5m
byk6CisKIDIwMTAtMDctMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgJKHJldmlz
aW9uIDYzODU4KQorKysgV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEzICsyOCwxMSBAQAogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpICYmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAKICNpbmNsdWRl
ICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgotI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFwcGxpY2F0aW9uQ2FjaGU7CiBjbGFzcyBJbnNwZWN0b3JD
b250cm9sbGVyOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwpAQCAtNDMsNjIgKzQxLDI0IEBACiAKIGNsYXNzIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgc3RydWN0IEFwcGxp
Y2F0aW9uQ2FjaGVJbmZvIHsKLSAgICAgICAgQXBwbGljYXRpb25DYWNoZUluZm8oY29uc3QgS1VS
TCYgbWFuaWZlc3QsIGNvbnN0IFN0cmluZyYgY3JlYXRpb25UaW1lLCBjb25zdCBTdHJpbmcmIHVw
ZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQotICAgICAgICAgICAgOiBtX21hbmlmZXN0KG1hbmlm
ZXN0KQotICAgICAgICAgICAgLCBtX2NyZWF0aW9uVGltZShjcmVhdGlvblRpbWUpCi0gICAgICAg
ICAgICAsIG1fdXBkYXRlVGltZSh1cGRhdGVUaW1lKQotICAgICAgICAgICAgLCBtX3NpemUoc2l6
ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgS1VSTCBtX21hbmlmZXN0OwotICAg
ICAgICBTdHJpbmcgbV9jcmVhdGlvblRpbWU7Ci0gICAgICAgIFN0cmluZyBtX3VwZGF0ZVRpbWU7
Ci0gICAgICAgIGxvbmcgbG9uZyBtX3NpemU7Ci0gICAgfTsKLQotICAgIHN0cnVjdCBSZXNvdXJj
ZUluZm8gewotICAgICAgICBSZXNvdXJjZUluZm8oY29uc3QgS1VSTCYgcmVzb3VyY2UsIGJvb2wg
aXNNYXN0ZXIsIGJvb2wgaXNNYW5pZmVzdCwgYm9vbCBpc0ZhbGxiYWNrLCBib29sIGlzRm9yZWln
biwgYm9vbCBpc0V4cGxpY2l0LCBsb25nIGxvbmcgc2l6ZSkKLSAgICAgICAgICAgIDogbV9yZXNv
dXJjZShyZXNvdXJjZSkKLSAgICAgICAgICAgICwgbV9pc01hc3Rlcihpc01hc3RlcikKLSAgICAg
ICAgICAgICwgbV9pc01hbmlmZXN0KGlzTWFuaWZlc3QpCi0gICAgICAgICAgICAsIG1faXNGYWxs
YmFjayhpc0ZhbGxiYWNrKQotICAgICAgICAgICAgLCBtX2lzRm9yZWlnbihpc0ZvcmVpZ24pCi0g
ICAgICAgICAgICAsIG1faXNFeHBsaWNpdChpc0V4cGxpY2l0KQotICAgICAgICAgICAgLCBtX3Np
emUoc2l6ZSkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgS1VSTCBtX3Jlc291cmNl
OwotICAgICAgICBib29sIG1faXNNYXN0ZXI7Ci0gICAgICAgIGJvb2wgbV9pc01hbmlmZXN0Owot
ICAgICAgICBib29sIG1faXNGYWxsYmFjazsKLSAgICAgICAgYm9vbCBtX2lzRm9yZWlnbjsKLSAg
ICAgICAgYm9vbCBtX2lzRXhwbGljaXQ7Ci0gICAgICAgIGxvbmcgbG9uZyBtX3NpemU7Ci0gICAg
fTsKLQotICAgIHR5cGVkZWYgVmVjdG9yPFJlc291cmNlSW5mbz4gUmVzb3VyY2VJbmZvTGlzdDsK
LQogICAgIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JDb250cm9sbGVy
KiBpbnNwZWN0b3JDb250cm9sbGVyLCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpOwogICAg
IH5JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoKSB7IH0KIAogICAgIC8vIEJhY2tlbmQg
dG8gRnJvbnRlbmQKICAgICB2b2lkIGRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworCiAgICAgdm9pZCB1
cGRhdGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpTdGF0dXMp
OworCiAgICAgdm9pZCB1cGRhdGVOZXR3b3JrU3RhdGUoYm9vbCBpc05vd09ubGluZSk7CiAKICAg
ICAvLyBGcm9tIEZyb250ZW5kCiAgICAgdm9pZCBnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNh
bGxJZCk7CiAKIHByaXZhdGU6Ci0gICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yQXBwbGlj
YXRpb25DYWNoZShjb25zdCBSZXNvdXJjZUluZm9MaXN0JiwgY29uc3QgQXBwbGljYXRpb25DYWNo
ZUluZm8mKTsKLSAgICBTY3JpcHRBcnJheSBidWlsZEFycmF5Rm9yQXBwbGljYXRpb25DYWNoZVJl
c291cmNlcyhjb25zdCBSZXNvdXJjZUluZm9MaXN0Jik7Ci0gICAgU2NyaXB0T2JqZWN0IGJ1aWxk
T2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlSW5mbyYpOwor
ICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgQXBw
bGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmLCBjb25zdCBBcHBsaWNhdGlvbkNh
Y2hlSG9zdDo6Q2FjaGVJbmZvJik7CisgICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNl
SW5mb0xpc3QmKTsKKyAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbyYpOwog
Ci0gICAgdm9pZCBmaWxsUmVzb3VyY2VMaXN0KEFwcGxpY2F0aW9uQ2FjaGUqLCBSZXNvdXJjZUlu
Zm9MaXN0Kik7Ci0KICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBtX2luc3BlY3RvckNvbnRyb2xs
ZXI7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7CiB9OwpJbmRleDogV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3Bw
CShyZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAK
LSNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlLmgiCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNo
ZVJlc291cmNlLmgiCisjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRl
ICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkZXIuaCIKQEAgLTYzLDI5ICs2Miw2IEBACiAgICAgbV9mcm9udGVuZC0+dXBkYXRlTmV0d29y
a1N0YXRlKGlzTm93T25saW5lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ6OmZpbGxSZXNvdXJjZUxpc3QoQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIFJlc291cmNl
SW5mb0xpc3QqIHJlc291cmNlcykKLXsKLSNpZiAhUExBVEZPUk0oQ0hST01JVU0pCi0gICAgQVNT
RVJUKGNhY2hlICYmIGNhY2hlLT5pc0NvbXBsZXRlKCkpOwotI2VuZGlmCi0gICAgQXBwbGljYXRp
b25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGNhY2hlLT5lbmQoKTsK
LSAgICBmb3IgKEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IGNhY2hlLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgUmVmUHRyPEFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZT4gcmVzb3VyY2UgPSBpdC0+c2Vjb25kOwotICAgICAgICB1
bnNpZ25lZCB0eXBlID0gcmVzb3VyY2UtPnR5cGUoKTsKLSAgICAgICAgYm9vbCBpc01hc3RlciAg
ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFzdGVyOwotICAgICAgICBib29s
IGlzTWFuaWZlc3QgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpNYW5pZmVzdDsK
LSAgICAgICAgYm9vbCBpc0V4cGxpY2l0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZTo6RXhwbGljaXQ7Ci0gICAgICAgIGJvb2wgaXNGb3JlaWduICA9IHR5cGUgJiBBcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2U6OkZvcmVpZ247Ci0gICAgICAgIGJvb2wgaXNGYWxsYmFjayA9IHR5cGUg
JiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkZhbGxiYWNrOwotI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQotICAgICAgICBpbnQ2NF90IGVzdGltYXRlZFNpemVJblN0b3JhZ2UgPSAwOwotI2Vsc2UK
LSAgICAgICAgaW50NjRfdCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0gcmVzb3VyY2UtPmVzdGlt
YXRlZFNpemVJblN0b3JhZ2UoKTsKLSNlbmRpZgotICAgICAgICByZXNvdXJjZXMtPmFwcGVuZChJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OlJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJs
KCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGlj
aXQsIGVzdGltYXRlZFNpemVJblN0b3JhZ2UpKTsKLSAgICB9Ci19Ci0KIHZvaWQgSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50OjpnZXRBcHBsaWNhdGlvbkNhY2hlcyhsb25nIGNhbGxJZCkK
IHsKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBtX2luc3BlY3RvckNvbnRy
b2xsZXItPmluc3BlY3RlZFBhZ2UoKS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5kb2N1bWVudExv
YWRlcigpOwpAQCAtOTUsMjUgKzcxLDE1IEBACiAgICAgfQogCiAgICAgQXBwbGljYXRpb25DYWNo
ZUhvc3QqIGhvc3QgPSBkb2N1bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKLSAg
ICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IGhvc3QtPmFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNw
ZWN0b3IoKTsKLSAgICBpZiAoIWNhY2hlCi0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgICAg
ICB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKQotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBt
X2Zyb250ZW5kLT5kaWRHZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIFNjcmlwdFZhbHVlOjp1
bmRlZmluZWQoKSk7Ci0gICAgICAgIHJldHVybjsgICAgICAgIAotICAgIH0KKyAgICBBcHBsaWNh
dGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIGluZm8gPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlSW5m
bygpOworIAorICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0IHJlc291
cmNlczsKKyAgICBob3N0LT5maWxsUmVzb3VyY2VMaXN0KCZyZXNvdXJjZXMpOwogCi0gICAgLy8g
RklYTUU6IEFkZCAiQ3JlYXRpb24gVGltZSIgYW5kICJVcGRhdGUgVGltZSIgdG8gQXBwbGljYXRp
b24gQ2FjaGVzLgotICAgIEFwcGxpY2F0aW9uQ2FjaGVJbmZvIGluZm8oY2FjaGUtPm1hbmlmZXN0
UmVzb3VyY2UoKS0+dXJsKCksIFN0cmluZygpLCBTdHJpbmcoKSwgY2FjaGUtPmVzdGltYXRlZFNp
emVJblN0b3JhZ2UoKSk7Ci0gICAgUmVzb3VyY2VJbmZvTGlzdCByZXNvdXJjZXM7Ci0gICAgZmls
bFJlc291cmNlTGlzdChjYWNoZSwgJnJlc291cmNlcyk7Ci0KICAgICBtX2Zyb250ZW5kLT5kaWRH
ZXRBcHBsaWNhdGlvbkNhY2hlcyhjYWxsSWQsIGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNo
ZShyZXNvdXJjZXMsIGluZm8pKTsKIH0KIAotU2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IFJlc291
cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMsIGNvbnN0IEFwcGxpY2F0aW9u
Q2FjaGVJbmZvJiBhcHBsaWNhdGlvbkNhY2hlSW5mbykKK1NjcmlwdE9iamVjdCBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25z
dCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCYgYXBwbGljYXRpb25DYWNo
ZVJlc291cmNlcywgY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYgYXBwbGlj
YXRpb25DYWNoZUluZm8pCiB7CiAgICAgU2NyaXB0T2JqZWN0IHZhbHVlID0gbV9mcm9udGVuZC0+
bmV3U2NyaXB0T2JqZWN0KCk7CiAgICAgdmFsdWUuc2V0KCJzaXplIiwgYXBwbGljYXRpb25DYWNo
ZUluZm8ubV9zaXplKTsKQEAgLTEyNSwxOSArOTEsMTkgQEAKICAgICByZXR1cm4gdmFsdWU7CiB9
CiAKLVNjcmlwdEFycmF5IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRBcnJh
eUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgUmVzb3VyY2VJbmZvTGlzdCYgYXBw
bGljYXRpb25DYWNoZVJlc291cmNlcykKK1NjcmlwdEFycmF5IEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudDo6YnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3Qg
QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZXMpCiB7CiAgICAgU2NyaXB0QXJyYXkgcmVzb3VyY2VzID0gbV9mcm9udGVuZC0+bmV3
U2NyaXB0QXJyYXkoKTsKIAotICAgIFJlc291cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGVu
ZCA9IGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMuZW5kKCk7Ci0gICAgUmVzb3VyY2VJbmZvTGlz
dDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLmJlZ2luKCk7
CisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMuZW5kKCk7CisgICAgQXBwbGljYXRp
b25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXBwbGlj
YXRpb25DYWNoZVJlc291cmNlcy5iZWdpbigpOwogICAgIGZvciAoaW50IGkgPSAwOyBpdCAhPSBl
bmQ7ICsraXQsIGkrKykKICAgICAgICAgcmVzb3VyY2VzLnNldChpLCBidWlsZE9iamVjdEZvckFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSgqaXQpKTsKIAogICAgIHJldHVybiByZXNvdXJjZXM7CiB9
CiAKLVNjcmlwdE9iamVjdCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2Jq
ZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNlSW5mbyYgcmVzb3Vy
Y2VJbmZvKQorU2NyaXB0T2JqZWN0IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVp
bGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgQXBwbGljYXRpb25DYWNo
ZUhvc3Q6OlJlc291cmNlSW5mbyYgcmVzb3VyY2VJbmZvKQogewogICAgIFNjcmlwdE9iamVjdCB2
YWx1ZSA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwogICAgIHZhbHVlLnNldCgibmFt
ZSIsIHJlc291cmNlSW5mby5tX3Jlc291cmNlLnN0cmluZygpKTsKSW5kZXg6IFdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDYz
ODU4KQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNiArMjUwLDM3IEBACiAgICAgbV9kZWZlcnNFdmVudHMg
PSBmYWxzZTsKIH0KIAorI2lmIEVOQUJMRShJTlNQRUNUT1IpCit2b2lkIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KFJlc291cmNlSW5mb0xpc3QqIHJlc291cmNlcykKK3sK
KyAgICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IGFwcGxpY2F0aW9uQ2FjaGUoKTsKKyAgICBp
ZiAoIWNhY2hlIHx8ICFjYWNoZS0+aXNDb21wbGV0ZSgpKQorICAgICAgICByZXR1cm47CisgICAg
IAorICAgIEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBjYWNoZS0+ZW5kKCk7CisgICAgZm9yIChBcHBsaWNhdGlvbkNhY2hlOjpSZXNvdXJjZU1hcDo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBjYWNoZS0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Cisg
ICAgICAgIFJlZlB0cjxBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+IHJlc291cmNlID0gaXQtPnNl
Y29uZDsKKyAgICAgICAgdW5zaWduZWQgdHlwZSA9IHJlc291cmNlLT50eXBlKCk7CisgICAgICAg
IGJvb2wgaXNNYXN0ZXIgICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hc3Rl
cjsKKyAgICAgICAgYm9vbCBpc01hbmlmZXN0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZTo6TWFuaWZlc3Q7CisgICAgICAgIGJvb2wgaXNFeHBsaWNpdCA9IHR5cGUgJiBBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0OworICAgICAgICBib29sIGlzRm9yZWlnbiAgPSB0
eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGb3JlaWduOworICAgICAgICBib29sIGlz
RmFsbGJhY2sgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGYWxsYmFjazsKKyAg
ICAgICAgcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2VJbmZvKHJlc291cmNlLT51cmwoKSwgaXNN
YXN0ZXIsIGlzTWFuaWZlc3QsIGlzRmFsbGJhY2ssIGlzRm9yZWlnbiwgaXNFeHBsaWNpdCwgcmVz
b3VyY2UtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkpOworICAgIH0KK30KKyAKK0FwcGxpY2F0
aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8gQXBwbGljYXRpb25DYWNoZUhvc3Q6OmFwcGxpY2F0aW9u
Q2FjaGVJbmZvKCkKK3sKKyAgICBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSA9IGFwcGxpY2F0aW9u
Q2FjaGUoKTsKKyAgICBpZiAoIWNhY2hlIHx8ICFjYWNoZS0+aXNDb21wbGV0ZSgpKQorICAgICAg
ICByZXR1cm4gQ2FjaGVJbmZvKEtVUkwoKSwgMCwgMCwgMCk7CisgIAorICAgIC8vIEZJWE1FOiBB
ZGQgIkNyZWF0aW9uIFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRvIEFwcGxpY2F0aW9uIENhY2hl
cy4KKyAgICByZXR1cm4gQ2FjaGVJbmZvKGNhY2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgp
LCAwLCAwLCBjYWNoZS0+ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpKTsKK30KKyNlbmRpZgorCiB2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpkaXNwYXRjaERPTUV2ZW50KEV2ZW50SUQgaWQsIGlu
dCB0b3RhbCwgaW50IGRvbmUpCiB7CiAgICAgaWYgKG1fZG9tQXBwbGljYXRpb25DYWNoZSkgewpJ
bmRleDogV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5o
CShyZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAKKyNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+CkBAIC00MCw3ICs0MSw2IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZTsKICAgICBj
bGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogICAgIGNsYXNzIERvY3VtZW50TG9hZGVyOwogICAg
IGNsYXNzIEtVUkw7CkBAIC01Miw2ICs1Miw3IEBACiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAg
ICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbDsKICNlbHNlCisgICAgY2xhc3Mg
QXBwbGljYXRpb25DYWNoZTsKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlR3JvdXA7CiAgICAg
Y2xhc3MgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOwogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOwpAQCAtODAsNiArODEsNDUgQEAKICAgICAgICAgICAgIE9CU09MRVRFX0VWRU5U
ICAvLyBNdXN0IHJlbWFpbiB0aGUgbGFzdCB2YWx1ZSwgdGhpcyBpcyB1c2VkIHRvIHNpemUgYXJy
YXlzLgogICAgICAgICB9OwogCisgICAgICAgIHN0cnVjdCBDYWNoZUluZm8geworICAgICAgICAg
ICAgQ2FjaGVJbmZvKGNvbnN0IEtVUkwmIG1hbmlmZXN0LCBkb3VibGUgY3JlYXRpb25UaW1lLCBk
b3VibGUgdXBkYXRlVGltZSwgbG9uZyBsb25nIHNpemUpCisgICAgICAgICAgICAgICAgOiBtX21h
bmlmZXN0KG1hbmlmZXN0KQorICAgICAgICAgICAgICAgICwgbV9jcmVhdGlvblRpbWUoY3JlYXRp
b25UaW1lKQorICAgICAgICAgICAgICAgICwgbV91cGRhdGVUaW1lKHVwZGF0ZVRpbWUpCisgICAg
ICAgICAgICAgICAgLCBtX3NpemUoc2l6ZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAg
ICAgS1VSTCBtX21hbmlmZXN0OworICAgICAgICBkb3VibGUgbV9jcmVhdGlvblRpbWU7CisgICAg
ICAgIGRvdWJsZSBtX3VwZGF0ZVRpbWU7CisgICAgICAgIGxvbmcgbG9uZyBtX3NpemU7CisgICAg
fTsKKworICAgIHN0cnVjdCBSZXNvdXJjZUluZm8geworICAgICAgICBSZXNvdXJjZUluZm8oY29u
c3QgS1VSTCYgcmVzb3VyY2UsIGJvb2wgaXNNYXN0ZXIsIGJvb2wgaXNNYW5pZmVzdCwgYm9vbCBp
c0ZhbGxiYWNrLCBib29sIGlzRm9yZWlnbiwgYm9vbCBpc0V4cGxpY2l0LCBsb25nIGxvbmcgc2l6
ZSkKKyAgICAgICAgICAgIDogbV9yZXNvdXJjZShyZXNvdXJjZSkKKyAgICAgICAgICAgICwgbV9p
c01hc3Rlcihpc01hc3RlcikKKyAgICAgICAgICAgICwgbV9pc01hbmlmZXN0KGlzTWFuaWZlc3Qp
CisgICAgICAgICAgICAsIG1faXNGYWxsYmFjayhpc0ZhbGxiYWNrKQorICAgICAgICAgICAgLCBt
X2lzRm9yZWlnbihpc0ZvcmVpZ24pCisgICAgICAgICAgICAsIG1faXNFeHBsaWNpdChpc0V4cGxp
Y2l0KQorICAgICAgICAgICAgLCBtX3NpemUoc2l6ZSkKKyAgICAgICAgeworICAgICAgICB9Cisg
ICAgICAKKyAgICAgICAgS1VSTCBtX3Jlc291cmNlOworICAgICAgICBib29sIG1faXNNYXN0ZXI7
CisgICAgICAgIGJvb2wgbV9pc01hbmlmZXN0OworICAgICAgICBib29sIG1faXNGYWxsYmFjazsK
KyAgICAgICAgYm9vbCBtX2lzRm9yZWlnbjsKKyAgICAgICAgYm9vbCBtX2lzRXhwbGljaXQ7Cisg
ICAgICAgIGxvbmcgbG9uZyBtX3NpemU7CisgICAgfTsKKworCisgICAgdHlwZWRlZiBWZWN0b3I8
UmVzb3VyY2VJbmZvPiBSZXNvdXJjZUluZm9MaXN0OworCiAgICAgICAgIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KERvY3VtZW50TG9hZGVyKik7CiAgICAgICAgIH5BcHBsaWNhdGlvbkNhY2hlSG9zdCgp
OwogCkBAIC0xMTIsNyArMTUyLDEwIEBACiAKICAgICAgICAgdm9pZCBzdG9wRGVmZXJyaW5nRXZl
bnRzKCk7IC8vIEFsc28gcmFpc2VzIHRoZSBldmVudHMgdGhhdCBoYXZlIGJlZW4gcXVldWVkIHVw
LgogCi0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUqIGFwcGxpY2F0aW9uQ2FjaGVGb3JJbnNwZWN0
b3IoKSBjb25zdCB7IHJldHVybiBhcHBsaWNhdGlvbkNhY2hlKCk7IH0KKyNpZiBFTkFCTEUoSU5T
UEVDVE9SKQorICAgICAgICB2b2lkIGZpbGxSZXNvdXJjZUxpc3QoUmVzb3VyY2VJbmZvTGlzdCop
OworICAgICAgICBDYWNoZUluZm8gYXBwbGljYXRpb25DYWNoZUluZm8oKTsKKyNlbmRpZgogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBpc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCk7CkBA
IC0xMzUsNyArMTc4LDYgQEAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICAgICAgZnJpZW5k
IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWw7CiAgICAgICAgIE93blB0cjxBcHBs
aWNhdGlvbkNhY2hlSG9zdEludGVybmFsPiBtX2ludGVybmFsOwotICAgICAgICBBcHBsaWNhdGlv
bkNhY2hlKiBhcHBsaWNhdGlvbkNhY2hlKCkgY29uc3QgeyByZXR1cm4gMDsgfSAvLyBGSVhNRTog
SW1wbGVtZW50IGZvciBDaHJvbWl1bSBXZWIgSW5zcGVjdG9yIFN1cHBvcnQuCiAjZWxzZQogICAg
ICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRpb25DYWNoZUdyb3VwOwogICAgICAgICBmcmllbmQg
Y2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7Cg==
</data>
<flag name="review"
          id="50402"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62253</attachid>
            <date>2010-07-21 18:50:45 -0700</date>
            <delta_ts>2010-07-22 15:31:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webcore643.txt</filename>
            <type>text/plain</type>
            <size>17328</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShy
ZXZpc2lvbiA2Mzg1OCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTUgQEAKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNw
b25zZS5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldyYXBwZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVzb3VyY2VSZXNwb25zZS5oIgogCkBAIC0y
MDYsNiArMjEwLDMwIEBACiAgICAgZGlzcGF0Y2hET01FdmVudChpZCwgdG90YWwsIGRvbmUpOwog
fQogCitBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjphcHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAgaWYgKCFtX2ludGVybmFsKQorICAgICAg
cmV0dXJuIENhY2hlSW5mbyhLVVJMKCksIDAsIDAsIDApOworCisgICAgV2ViS2l0OjpXZWJBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIHdlYkluZm87CisgICAgbV9pbnRlcm5hbC0+bV9v
dXRlckhvc3QtPmdldEFzc29jaWF0ZWRDYWNoZUluZm8oJndlYkluZm8pOworICAgIHJldHVybiBD
YWNoZUluZm8od2ViSW5mby5tYW5pZmVzdFVSTCwgd2ViSW5mby5jcmVhdGlvblRpbWUsIHdlYklu
Zm8udXBkYXRlVGltZSwgd2ViSW5mby50b3RhbFNpemUpOworfQorCit2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KFJlc291cmNlSW5mb0xpc3QqIHJlc291cmNlcykK
K3sKKyAgICBpZiAoIW1faW50ZXJuYWwpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYktpdDo6
V2ViVmVjdG9yPFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbz4g
d2ViUmVzb3VyY2VzOworICAgIG1faW50ZXJuYWwtPm1fb3V0ZXJIb3N0LT5nZXRSZXNvdXJjZUxp
c3QoJndlYlJlc291cmNlcyk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3ZWJSZXNvdXJjZXMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2VJbmZvKAor
ICAgICAgICBLVVJMKHdlYlJlc291cmNlc1tpXS51cmwpLCB3ZWJSZXNvdXJjZXNbaV0uaXNNYXN0
ZXIsIHdlYlJlc291cmNlc1tpXS5pc01hbmlmZXN0LCB3ZWJSZXNvdXJjZXNbaV0uaXNGYWxsYmFj
aywKKyAgICAgICAgICAgICB3ZWJSZXNvdXJjZXNbaV0uaXNGb3JlaWduLCB3ZWJSZXNvdXJjZXNb
aV0uaXNFeHBsaWNpdCwgd2ViUmVzb3VyY2VzW2ldLnNpemUpKTsKKyAgICB9Cit9CisKIHZvaWQg
QXBwbGljYXRpb25DYWNoZUhvc3Q6OnN0b3BEZWZlcnJpbmdFdmVudHMoKQogewogICAgIFJlZlB0
cjxEb2N1bWVudExvYWRlcj4gcHJvdGVjdChkb2N1bWVudExvYWRlcigpKTsKSW5kZXg6IFdlYktp
dC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9JbnNwZWN0b3JDb250cm9sbGVySW1wbC5qcwkocmV2
aXNpb24gNjM4NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xs
ZXJJbXBsLmpzCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAgICAgdGhpcy5pbnN0
YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZW5hYmxlVGltZWxpbmUiKTsKICAgICB0
aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRDaGlsZE5vZGVzIik7
CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q29va2ll
cyIpOworICAgIHRoaXMuaW5zdGFsbEluc3BlY3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldEFw
cGxpY2F0aW9uQ2FjaGVzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRl
bGVnYXRlXygiZ2V0RGF0YWJhc2VUYWJsZU5hbWVzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVj
dG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0RE9NU3RvcmFnZUVudHJpZXMiKTsKICAgICB0aGlz
Lmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVyRGVsZWdhdGVfKCJnZXRFdmVudExpc3RlbmVyc0Zv
ck5vZGUiKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjM4NTgpCisrKyBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDct
MjEgIEthdml0YSBLYW5ldGthciAgPGtrYW5ldGthckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHJlbWFpbmlu
ZyBJbnNwZWN0b3Igc3VwcG9ydCBmb3IgY2hyb21lJ3MgYXBwY2FjaGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNDI2CisKKyAgICAgICAgKiBzcmMv
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOiBQbHVnZ2luZyBpbiBjaHJvbWUncyBhcHBjYWNoZSBp
bmZvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmFwcGxpY2F0aW9u
Q2FjaGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxs
UmVzb3VyY2VMaXN0KToKKyAgICAgICAgKiBzcmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwu
anM6CisgICAgICAgIChkZXZ0b29scy5JbnNwZWN0b3JCYWNrZW5kSW1wbCk6CisKIDIwMTAtMDct
MjEgIEZpbm51ciBUaG9yYXJpbnNzb24gIDxmaW5udXIud2Via2l0QGdtYWlsLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNjM4NTgpCisrKyBX
ZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA3
LTIxICBLYXZpdGEgS2FuZXRrYXIgIDxra2FuZXRrYXJAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCByZW1haW5p
bmcgSW5zcGVjdG9yIHN1cHBvcnQgZm9yIGNocm9tZSdzIGFwcGNhY2hlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQyNgorCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmdldEFwcGxpY2F0aW9uQ2FjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVp
bGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBsb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbGljYXRpb25DYWNoZUhvc3Q6OmZpbGxSZXNvdXJjZUxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmFwcGxpY2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAg
KiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaDogQ2hhbmdlZCBjcmVhdGlv
biArIHVwZGF0ZSB0aW1lcyB0byBkb3VibGUgYW5kIG1vdmVkIGFwcGNhY2hlIGluZm8gaGVyZSBm
cm9tIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCisgICAgICAgIChXZWJDb3JlOjpB
cHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvOjpDYWNoZUluZm8pOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mbzo6UmVzb3VyY2VJbmZvKToK
KwogMjAxMC0wNy0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCkluZGV4OiBXZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkocmV2aXNpb24g
NjM4NTgpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTMgKzI4LDEwIEBACiAjaWYgRU5BQkxFKElOU1BF
Q1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIAogI2luY2x1ZGUgIkFw
cGxpY2F0aW9uQ2FjaGVIb3N0LmgiCi0jaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgQXBwbGljYXRpb25DYWNoZTsKIGNsYXNzIEluc3BlY3RvckNvbnRy
b2xsZXI7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7
CkBAIC00Myw0NCArNDAsNiBAQAogCiBjbGFzcyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdl
bnQgOiBwdWJsaWMgTm9uY29weWFibGUgewogcHVibGljOgotICAgIHN0cnVjdCBBcHBsaWNhdGlv
bkNhY2hlSW5mbyB7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGVJbmZvKGNvbnN0IEtVUkwmIG1h
bmlmZXN0LCBjb25zdCBTdHJpbmcmIGNyZWF0aW9uVGltZSwgY29uc3QgU3RyaW5nJiB1cGRhdGVU
aW1lLCBsb25nIGxvbmcgc2l6ZSkKLSAgICAgICAgICAgIDogbV9tYW5pZmVzdChtYW5pZmVzdCkK
LSAgICAgICAgICAgICwgbV9jcmVhdGlvblRpbWUoY3JlYXRpb25UaW1lKQotICAgICAgICAgICAg
LCBtX3VwZGF0ZVRpbWUodXBkYXRlVGltZSkKLSAgICAgICAgICAgICwgbV9zaXplKHNpemUpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIEtVUkwgbV9tYW5pZmVzdDsKLSAgICAgICAg
U3RyaW5nIG1fY3JlYXRpb25UaW1lOwotICAgICAgICBTdHJpbmcgbV91cGRhdGVUaW1lOwotICAg
ICAgICBsb25nIGxvbmcgbV9zaXplOwotICAgIH07Ci0KLSAgICBzdHJ1Y3QgUmVzb3VyY2VJbmZv
IHsKLSAgICAgICAgUmVzb3VyY2VJbmZvKGNvbnN0IEtVUkwmIHJlc291cmNlLCBib29sIGlzTWFz
dGVyLCBib29sIGlzTWFuaWZlc3QsIGJvb2wgaXNGYWxsYmFjaywgYm9vbCBpc0ZvcmVpZ24sIGJv
b2wgaXNFeHBsaWNpdCwgbG9uZyBsb25nIHNpemUpCi0gICAgICAgICAgICA6IG1fcmVzb3VyY2Uo
cmVzb3VyY2UpCi0gICAgICAgICAgICAsIG1faXNNYXN0ZXIoaXNNYXN0ZXIpCi0gICAgICAgICAg
ICAsIG1faXNNYW5pZmVzdChpc01hbmlmZXN0KQotICAgICAgICAgICAgLCBtX2lzRmFsbGJhY2so
aXNGYWxsYmFjaykKLSAgICAgICAgICAgICwgbV9pc0ZvcmVpZ24oaXNGb3JlaWduKQotICAgICAg
ICAgICAgLCBtX2lzRXhwbGljaXQoaXNFeHBsaWNpdCkKLSAgICAgICAgICAgICwgbV9zaXplKHNp
emUpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIEtVUkwgbV9yZXNvdXJjZTsKLSAg
ICAgICAgYm9vbCBtX2lzTWFzdGVyOwotICAgICAgICBib29sIG1faXNNYW5pZmVzdDsKLSAgICAg
ICAgYm9vbCBtX2lzRmFsbGJhY2s7Ci0gICAgICAgIGJvb2wgbV9pc0ZvcmVpZ247Ci0gICAgICAg
IGJvb2wgbV9pc0V4cGxpY2l0OwotICAgICAgICBsb25nIGxvbmcgbV9zaXplOwotICAgIH07Ci0K
LSAgICB0eXBlZGVmIFZlY3RvcjxSZXNvdXJjZUluZm8+IFJlc291cmNlSW5mb0xpc3Q7Ci0KICAg
ICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zcGVjdG9yQ29udHJvbGxlciogaW5z
cGVjdG9yQ29udHJvbGxlciwgSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKICAgICB+SW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgeyB9CiAKQEAgLTkzLDEyICs1MiwxMCBAQAog
ICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpOwogCiBwcml2YXRlOgot
ICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgUmVz
b3VyY2VJbmZvTGlzdCYsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVJbmZvJik7Ci0gICAgU2NyaXB0
QXJyYXkgYnVpbGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgUmVzb3Vy
Y2VJbmZvTGlzdCYpOwotICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZUluZm8mKTsKKyAgICBTY3JpcHRPYmplY3QgYnVp
bGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpS
ZXNvdXJjZUluZm9MaXN0JiwgY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYp
OworICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Vz
KGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Jik7CisgICAgU2Ny
aXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IEFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mKTsKIAotICAgIHZvaWQgZmlsbFJlc291
cmNlTGlzdChBcHBsaWNhdGlvbkNhY2hlKiwgUmVzb3VyY2VJbmZvTGlzdCopOwotCiAgICAgSW5z
cGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0b3JDb250cm9sbGVyOwogICAgIEluc3BlY3RvckZy
b250ZW5kKiBtX2Zyb250ZW5kOwogfTsKSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAkocmV2aXNpb24gNjM4NTgpCisr
KyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKSAm
JiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCi0jaW5jbHVkZSAiQXBwbGljYXRp
b25DYWNoZS5oIgotI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oIgorI2luY2x1
ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC02MywyOSAr
NjIsNiBAQAogICAgIG1fZnJvbnRlbmQtPnVwZGF0ZU5ldHdvcmtTdGF0ZShpc05vd09ubGluZSk7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpmaWxsUmVzb3VyY2VM
aXN0KEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBSZXNvdXJjZUluZm9MaXN0KiByZXNvdXJjZXMp
Ci17Ci0jaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotICAgIEFTU0VSVChjYWNoZSAmJiBjYWNoZS0+
aXNDb21wbGV0ZSgpKTsKLSNlbmRpZgotICAgIEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFw
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBjYWNoZS0+ZW5kKCk7Ci0gICAgZm9yIChBcHBsaWNhdGlv
bkNhY2hlOjpSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjYWNoZS0+YmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIFJlZlB0cjxBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U+IHJlc291cmNlID0gaXQtPnNlY29uZDsKLSAgICAgICAgdW5zaWduZWQgdHlwZSA9IHJlc291
cmNlLT50eXBlKCk7Ci0gICAgICAgIGJvb2wgaXNNYXN0ZXIgICA9IHR5cGUgJiBBcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2U6Ok1hc3RlcjsKLSAgICAgICAgYm9vbCBpc01hbmlmZXN0ID0gdHlwZSAm
IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6TWFuaWZlc3Q7Ci0gICAgICAgIGJvb2wgaXNFeHBs
aWNpdCA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OkV4cGxpY2l0OwotICAgICAg
ICBib29sIGlzRm9yZWlnbiAgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGb3Jl
aWduOwotICAgICAgICBib29sIGlzRmFsbGJhY2sgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJl
c291cmNlOjpGYWxsYmFjazsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgaW50NjRf
dCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0gMDsKLSNlbHNlCi0gICAgICAgIGludDY0X3QgZXN0
aW1hdGVkU2l6ZUluU3RvcmFnZSA9IHJlc291cmNlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCk7
Ci0jZW5kaWYKLSAgICAgICAgcmVzb3VyY2VzLT5hcHBlbmQoSW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OjpSZXNvdXJjZUluZm8ocmVzb3VyY2UtPnVybCgpLCBpc01hc3RlciwgaXNNYW5p
ZmVzdCwgaXNGYWxsYmFjaywgaXNGb3JlaWduLCBpc0V4cGxpY2l0LCBlc3RpbWF0ZWRTaXplSW5T
dG9yYWdlKSk7Ci0gICAgfQotfQotCiB2b2lkIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dDo6Z2V0QXBwbGljYXRpb25DYWNoZXMobG9uZyBjYWxsSWQpCiB7CiAgICAgRG9jdW1lbnRMb2Fk
ZXIqIGRvY3VtZW50TG9hZGVyID0gbV9pbnNwZWN0b3JDb250cm9sbGVyLT5pbnNwZWN0ZWRQYWdl
KCktPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKTsKQEAgLTk1LDI1ICs3
MSwxNSBAQAogICAgIH0KIAogICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBob3N0ID0gZG9jdW1l
bnRMb2FkZXItPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCk7Ci0gICAgQXBwbGljYXRpb25DYWNoZSog
Y2FjaGUgPSBob3N0LT5hcHBsaWNhdGlvbkNhY2hlRm9ySW5zcGVjdG9yKCk7Ci0gICAgaWYgKCFj
YWNoZQotI2lmICFQTEFURk9STShDSFJPTUlVTSkKLSAgICAgICAgfHwgIWNhY2hlLT5pc0NvbXBs
ZXRlKCkKLSNlbmRpZgotICAgICAgICApIHsKLSAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBw
bGljYXRpb25DYWNoZXMoY2FsbElkLCBTY3JpcHRWYWx1ZTo6dW5kZWZpbmVkKCkpOwotICAgICAg
ICByZXR1cm47ICAgICAgICAKLSAgICB9CisgICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hl
SW5mbyBpbmZvID0gaG9zdC0+YXBwbGljYXRpb25DYWNoZUluZm8oKTsKKyAKKyAgICBBcHBsaWNh
dGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZvTGlzdCByZXNvdXJjZXM7CisgICAgaG9zdC0+Zmls
bFJlc291cmNlTGlzdCgmcmVzb3VyY2VzKTsKIAotICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0aW9u
IFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRvIEFwcGxpY2F0aW9uIENhY2hlcy4KLSAgICBBcHBs
aWNhdGlvbkNhY2hlSW5mbyBpbmZvKGNhY2hlLT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgpLCBT
dHJpbmcoKSwgU3RyaW5nKCksIGNhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpOwotICAg
IFJlc291cmNlSW5mb0xpc3QgcmVzb3VyY2VzOwotICAgIGZpbGxSZXNvdXJjZUxpc3QoY2FjaGUs
ICZyZXNvdXJjZXMpOwotCiAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBwbGljYXRpb25DYWNoZXMo
Y2FsbElkLCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUocmVzb3VyY2VzLCBpbmZvKSk7
CiB9CiAKLVNjcmlwdE9iamVjdCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxk
T2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShjb25zdCBSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2VzLCBjb25zdCBBcHBsaWNhdGlvbkNhY2hlSW5mbyYgYXBwbGljYXRp
b25DYWNoZUluZm8pCitTY3JpcHRPYmplY3QgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgQXBwbGljYXRpb25DYWNoZUhv
c3Q6OlJlc291cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMsIGNvbnN0IEFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUluZm8mIGFwcGxpY2F0aW9uQ2FjaGVJbmZvKQogewog
ICAgIFNjcmlwdE9iamVjdCB2YWx1ZSA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwog
ICAgIHZhbHVlLnNldCgic2l6ZSIsIGFwcGxpY2F0aW9uQ2FjaGVJbmZvLm1fc2l6ZSk7CkBAIC0x
MjUsMTkgKzkxLDE5IEBACiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1TY3JpcHRBcnJheSBJbnNw
ZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2VzKGNvbnN0IFJlc291cmNlSW5mb0xpc3QmIGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJj
ZXMpCitTY3JpcHRBcnJheSBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJy
YXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKQogewogICAgIFNj
cmlwdEFycmF5IHJlc291cmNlcyA9IG1fZnJvbnRlbmQtPm5ld1NjcmlwdEFycmF5KCk7CiAKLSAg
ICBSZXNvdXJjZUluZm9MaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBhcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2VzLmVuZCgpOwotICAgIFJlc291cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gYXBwbGljYXRpb25DYWNoZVJlc291cmNlcy5iZWdpbigpOworICAgIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBhcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2VzLmVuZCgpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJj
ZUluZm9MaXN0Ojpjb25zdF9pdGVyYXRvciBpdCA9IGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMu
YmVnaW4oKTsKICAgICBmb3IgKGludCBpID0gMDsgaXQgIT0gZW5kOyArK2l0LCBpKyspCiAgICAg
ICAgIHJlc291cmNlcy5zZXQoaSwgYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2UoKml0KSk7CiAKICAgICByZXR1cm4gcmVzb3VyY2VzOwogfQogCi1TY3JpcHRPYmplY3QgSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZUluZm8mIHJlc291cmNlSW5mbykKK1NjcmlwdE9iamVj
dCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRp
b25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8m
IHJlc291cmNlSW5mbykKIHsKICAgICBTY3JpcHRPYmplY3QgdmFsdWUgPSBtX2Zyb250ZW5kLT5u
ZXdTY3JpcHRPYmplY3QoKTsKICAgICB2YWx1ZS5zZXQoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9y
ZXNvdXJjZS5zdHJpbmcoKSk7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShyZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUwLDYgKzI1MCwzNyBAQAogICAgIG1fZGVmZXJzRXZlbnRzID0gZmFsc2U7CiB9CiAKKyNpZiBF
TkFCTEUoSU5TUEVDVE9SKQordm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6ZmlsbFJlc291cmNl
TGlzdChSZXNvdXJjZUluZm9MaXN0KiByZXNvdXJjZXMpCit7CisgICAgQXBwbGljYXRpb25DYWNo
ZSogY2FjaGUgPSBhcHBsaWNhdGlvbkNhY2hlKCk7CisgICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUt
PmlzQ29tcGxldGUoKSkKKyAgICAgICAgcmV0dXJuOworICAgICAKKyAgICBBcHBsaWNhdGlvbkNh
Y2hlOjpSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY2FjaGUtPmVuZCgpOworICAg
IGZvciAoQXBwbGljYXRpb25DYWNoZTo6UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
Y2FjaGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBSZWZQdHI8QXBwbGlj
YXRpb25DYWNoZVJlc291cmNlPiByZXNvdXJjZSA9IGl0LT5zZWNvbmQ7CisgICAgICAgIHVuc2ln
bmVkIHR5cGUgPSByZXNvdXJjZS0+dHlwZSgpOworICAgICAgICBib29sIGlzTWFzdGVyICAgPSB0
eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpNYXN0ZXI7CisgICAgICAgIGJvb2wgaXNN
YW5pZmVzdCA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hbmlmZXN0OworICAg
ICAgICBib29sIGlzRXhwbGljaXQgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpF
eHBsaWNpdDsKKyAgICAgICAgYm9vbCBpc0ZvcmVpZ24gID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZTo6Rm9yZWlnbjsKKyAgICAgICAgYm9vbCBpc0ZhbGxiYWNrID0gdHlwZSAmIEFw
cGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFsbGJhY2s7CisgICAgICAgIHJlc291cmNlcy0+YXBw
ZW5kKFJlc291cmNlSW5mbyhyZXNvdXJjZS0+dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBp
c0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhwbGljaXQsIHJlc291cmNlLT5lc3RpbWF0ZWRTaXpl
SW5TdG9yYWdlKCkpKTsKKyAgICB9Cit9CisgCitBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJ
bmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjphcHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAg
QXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhcHBsaWNhdGlvbkNhY2hlKCk7CisgICAgaWYgKCFj
YWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKSkKKyAgICAgICAgcmV0dXJuIENhY2hlSW5mbyhL
VVJMKCksIDAsIDAsIDApOworICAKKyAgICAvLyBGSVhNRTogQWRkICJDcmVhdGlvbiBUaW1lIiBh
bmQgIlVwZGF0ZSBUaW1lIiB0byBBcHBsaWNhdGlvbiBDYWNoZXMuCisgICAgcmV0dXJuIENhY2hl
SW5mbyhjYWNoZS0+bWFuaWZlc3RSZXNvdXJjZSgpLT51cmwoKSwgMCwgMCwgY2FjaGUtPmVzdGlt
YXRlZFNpemVJblN0b3JhZ2UoKSk7Cit9CisjZW5kaWYKKwogdm9pZCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6ZGlzcGF0Y2hET01FdmVudChFdmVudElEIGlkLCBpbnQgdG90YWwsIGludCBkb25lKQog
ewogICAgIGlmIChtX2RvbUFwcGxpY2F0aW9uQ2FjaGUpIHsKSW5kZXg6IFdlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuaAkocmV2aXNpb24gNjM4NTgpCisr
KyBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogCisjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDAs
MTAgKzQxLDggQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKLSAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlOwogICAgIGNsYXNzIERPTUFwcGxpY2F0aW9u
Q2FjaGU7CiAgICAgY2xhc3MgRG9jdW1lbnRMb2FkZXI7Ci0gICAgY2xhc3MgS1VSTDsKICAgICBj
bGFzcyBSZXNvdXJjZUxvYWRlcjsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKQEAgLTUyLDYgKzUxLDcgQEAKICNpZiBQTEFURk9STShDSFJPTUlV
TSkKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsOwogI2Vsc2UKKyAgICBj
bGFzcyBBcHBsaWNhdGlvbkNhY2hlOwogICAgIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDsK
ICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U7CiAgICAgY2xhc3MgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U7CkBAIC04MCw2ICs4MCw0MCBAQAogICAgICAgICAgICAgT0JTT0xFVEVf
RVZFTlQgIC8vIE11c3QgcmVtYWluIHRoZSBsYXN0IHZhbHVlLCB0aGlzIGlzIHVzZWQgdG8gc2l6
ZSBhcnJheXMuCiAgICAgICAgIH07CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgICAgICBz
dHJ1Y3QgQ2FjaGVJbmZvIHsKKyAgICAgICAgICAgIENhY2hlSW5mbyhjb25zdCBLVVJMJiBtYW5p
ZmVzdCwgZG91YmxlIGNyZWF0aW9uVGltZSwgZG91YmxlIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBz
aXplKQorICAgICAgICAgICAgICAgIDogbV9tYW5pZmVzdChtYW5pZmVzdCkKKyAgICAgICAgICAg
ICAgICAsIG1fY3JlYXRpb25UaW1lKGNyZWF0aW9uVGltZSkKKyAgICAgICAgICAgICAgICAsIG1f
dXBkYXRlVGltZSh1cGRhdGVUaW1lKQorICAgICAgICAgICAgICAgICwgbV9zaXplKHNpemUpIHsg
ICB9CisgICAgICAgICAgICBLVVJMIG1fbWFuaWZlc3Q7CisgICAgICAgICAgICBkb3VibGUgbV9j
cmVhdGlvblRpbWU7CisgICAgICAgICAgICBkb3VibGUgbV91cGRhdGVUaW1lOworICAgICAgICAg
ICAgbG9uZyBsb25nIG1fc2l6ZTsKKyAgICAgICAgfTsKKworICAgICAgICBzdHJ1Y3QgUmVzb3Vy
Y2VJbmZvIHsKKyAgICAgICAgICAgIFJlc291cmNlSW5mbyhjb25zdCBLVVJMJiByZXNvdXJjZSwg
Ym9vbCBpc01hc3RlciwgYm9vbCBpc01hbmlmZXN0LCBib29sIGlzRmFsbGJhY2ssIGJvb2wgaXNG
b3JlaWduLCBib29sIGlzRXhwbGljaXQsIGxvbmcgbG9uZyBzaXplKQorICAgICAgICAgICAgICAg
IDogbV9yZXNvdXJjZShyZXNvdXJjZSkKKyAgICAgICAgICAgICAgICAsIG1faXNNYXN0ZXIoaXNN
YXN0ZXIpCisgICAgICAgICAgICAgICAgLCBtX2lzTWFuaWZlc3QoaXNNYW5pZmVzdCkKKyAgICAg
ICAgICAgICAgICAsIG1faXNGYWxsYmFjayhpc0ZhbGxiYWNrKQorICAgICAgICAgICAgICAgICwg
bV9pc0ZvcmVpZ24oaXNGb3JlaWduKQorICAgICAgICAgICAgICAgICwgbV9pc0V4cGxpY2l0KGlz
RXhwbGljaXQpCisgICAgICAgICAgICAgICAgLCBtX3NpemUoc2l6ZSkgeyAgfQorICAgICAgICAg
ICAgS1VSTCBtX3Jlc291cmNlOworICAgICAgICAgICAgYm9vbCBtX2lzTWFzdGVyOworICAgICAg
ICAgICAgYm9vbCBtX2lzTWFuaWZlc3Q7CisgICAgICAgICAgICBib29sIG1faXNGYWxsYmFjazsK
KyAgICAgICAgICAgIGJvb2wgbV9pc0ZvcmVpZ247CisgICAgICAgICAgICBib29sIG1faXNFeHBs
aWNpdDsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBtX3NpemU7CisgICAgICAgIH07CisKKyAgICAg
ICAgdHlwZWRlZiBWZWN0b3I8UmVzb3VyY2VJbmZvPiBSZXNvdXJjZUluZm9MaXN0OworI2VuZGlm
CisKICAgICAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QoRG9jdW1lbnRMb2FkZXIqKTsKICAgICAg
ICAgfkFwcGxpY2F0aW9uQ2FjaGVIb3N0KCk7CiAKQEAgLTExMiw3ICsxNDYsMTAgQEAKIAogICAg
ICAgICB2b2lkIHN0b3BEZWZlcnJpbmdFdmVudHMoKTsgLy8gQWxzbyByYWlzZXMgdGhlIGV2ZW50
cyB0aGF0IGhhdmUgYmVlbiBxdWV1ZWQgdXAuCiAKLSAgICAgICAgQXBwbGljYXRpb25DYWNoZSog
YXBwbGljYXRpb25DYWNoZUZvckluc3BlY3RvcigpIGNvbnN0IHsgcmV0dXJuIGFwcGxpY2F0aW9u
Q2FjaGUoKTsgfQorI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgICAgIHZvaWQgZmlsbFJlc291
cmNlTGlzdChSZXNvdXJjZUluZm9MaXN0Kik7CisgICAgICAgIENhY2hlSW5mbyBhcHBsaWNhdGlv
bkNhY2hlSW5mbygpOworI2VuZGlmCiAKICAgICBwcml2YXRlOgogICAgICAgICBib29sIGlzQXBw
bGljYXRpb25DYWNoZUVuYWJsZWQoKTsKQEAgLTEzNSw3ICsxNzIsNiBAQAogI2lmIFBMQVRGT1JN
KENIUk9NSVVNKQogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRpb25DYWNoZUhvc3RJbnRl
cm5hbDsKICAgICAgICAgT3duUHRyPEFwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWw+IG1faW50
ZXJuYWw7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUqIGFwcGxpY2F0aW9uQ2FjaGUoKSBjb25z
dCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIENocm9taXVtIFdlYiBJbnNw
ZWN0b3IgU3VwcG9ydC4KICNlbHNlCiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA7CiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsK
</data>
<flag name="review"
          id="50410"
          type_id="1"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62350</attachid>
            <date>2010-07-22 15:31:54 -0700</date>
            <delta_ts>2010-07-23 20:35:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>webcore323.txt</filename>
            <type>text/plain</type>
            <size>17355</size>
            <attacher name="Kavita Kanetkar">kkanetkar</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShy
ZXZpc2lvbiA2Mzg1OCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTUgQEAKICNpbmNsdWRlICJEb2N1
bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oIgor
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJMRXJyb3IuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNw
b25zZS5oIgorI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogI2luY2x1ZGUgIldyYXBwZWRSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJXcmFwcGVkUmVzb3VyY2VSZXNwb25zZS5oIgogCkBAIC0y
MDYsNiArMjEwLDMyIEBACiAgICAgZGlzcGF0Y2hET01FdmVudChpZCwgdG90YWwsIGRvbmUpOwog
fQogCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKK0FwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUlu
Zm8gQXBwbGljYXRpb25DYWNoZUhvc3Q6OmFwcGxpY2F0aW9uQ2FjaGVJbmZvKCkKK3sKKyAgICBp
ZiAoIW1faW50ZXJuYWwpCisgICAgICAgIHJldHVybiBDYWNoZUluZm8oS1VSTCgpLCAwLCAwLCAw
KTsKKworICAgIFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyB3ZWJJ
bmZvOworICAgIG1faW50ZXJuYWwtPm1fb3V0ZXJIb3N0LT5nZXRBc3NvY2lhdGVkQ2FjaGVJbmZv
KCZ3ZWJJbmZvKTsKKyAgICByZXR1cm4gQ2FjaGVJbmZvKHdlYkluZm8ubWFuaWZlc3RVUkwsIHdl
YkluZm8uY3JlYXRpb25UaW1lLCB3ZWJJbmZvLnVwZGF0ZVRpbWUsIHdlYkluZm8udG90YWxTaXpl
KTsKK30KKwordm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6ZmlsbFJlc291cmNlTGlzdChSZXNv
dXJjZUluZm9MaXN0KiByZXNvdXJjZXMpCit7CisgICAgaWYgKCFtX2ludGVybmFsKQorICAgICAg
ICByZXR1cm47CisKKyAgICBXZWJLaXQ6OldlYlZlY3RvcjxXZWJLaXQ6OldlYkFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpSZXNvdXJjZUluZm8+IHdlYlJlc291cmNlczsKKyAgICBtX2ludGVybmFsLT5t
X291dGVySG9zdC0+Z2V0UmVzb3VyY2VMaXN0KCZ3ZWJSZXNvdXJjZXMpOworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgd2ViUmVzb3VyY2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIHJlc291cmNl
cy0+YXBwZW5kKFJlc291cmNlSW5mbygKKyAgICAgICAgICAgIHdlYlJlc291cmNlc1tpXS51cmws
IHdlYlJlc291cmNlc1tpXS5pc01hc3Rlciwgd2ViUmVzb3VyY2VzW2ldLmlzTWFuaWZlc3QsIHdl
YlJlc291cmNlc1tpXS5pc0ZhbGxiYWNrLAorICAgICAgICAgICAgd2ViUmVzb3VyY2VzW2ldLmlz
Rm9yZWlnbiwgd2ViUmVzb3VyY2VzW2ldLmlzRXhwbGljaXQsIHdlYlJlc291cmNlc1tpXS5zaXpl
KSk7CisgICAgfQorfQorI2VuZGlmCisKIHZvaWQgQXBwbGljYXRpb25DYWNoZUhvc3Q6OnN0b3BE
ZWZlcnJpbmdFdmVudHMoKQogewogICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gcHJvdGVjdChk
b2N1bWVudExvYWRlcigpKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvanMvSW5zcGVjdG9y
Q29udHJvbGxlckltcGwuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9J
bnNwZWN0b3JDb250cm9sbGVySW1wbC5qcwkocmV2aXNpb24gNjM4NTgpCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL2pzL0luc3BlY3RvckNvbnRyb2xsZXJJbXBsLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC01NSw2ICs1NSw3IEBACiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVn
YXRlXygiZW5hYmxlVGltZWxpbmUiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9s
bGVyRGVsZWdhdGVfKCJnZXRDaGlsZE5vZGVzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9y
Q29udHJvbGxlckRlbGVnYXRlXygiZ2V0Q29va2llcyIpOworICAgIHRoaXMuaW5zdGFsbEluc3Bl
Y3RvckNvbnRyb2xsZXJEZWxlZ2F0ZV8oImdldEFwcGxpY2F0aW9uQ2FjaGVzIik7CiAgICAgdGhp
cy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0RGF0YWJhc2VUYWJsZU5h
bWVzIik7CiAgICAgdGhpcy5pbnN0YWxsSW5zcGVjdG9yQ29udHJvbGxlckRlbGVnYXRlXygiZ2V0
RE9NU3RvcmFnZUVudHJpZXMiKTsKICAgICB0aGlzLmluc3RhbGxJbnNwZWN0b3JDb250cm9sbGVy
RGVsZWdhdGVfKCJnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUiKTsKSW5kZXg6IFdlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
cmV2aXNpb24gNjM4NTgpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDctMjEgIEthdml0YSBLYW5ldGthciAgPGtrYW5l
dGthckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IHJlbWFpbmluZyBJbnNwZWN0b3Igc3VwcG9ydCBmb3IgY2hy
b21lJ3MgYXBwY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyNDI2CisKKyAgICAgICAgKiBzcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOiBQ
bHVnZ2luZyBpbiBjaHJvbWUncyBhcHBjYWNoZSBpbmZvLgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZUhvc3Q6OmFwcGxpY2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpmaWxsUmVzb3VyY2VMaXN0KToKKyAgICAgICAgKiBz
cmMvanMvSW5zcGVjdG9yQ29udHJvbGxlckltcGwuanM6CisgICAgICAgIChkZXZ0b29scy5JbnNw
ZWN0b3JCYWNrZW5kSW1wbCk6CisKIDIwMTAtMDctMjEgIEZpbm51ciBUaG9yYXJpbnNzb24gIDxm
aW5udXIud2Via2l0QGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEds
YXprb3YuCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gNjM4NTgpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEwLTA3LTIxICBLYXZpdGEgS2FuZXRrYXIgIDxra2Fu
ZXRrYXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCByZW1haW5pbmcgSW5zcGVjdG9yIHN1cHBvcnQgZm9yIGNo
cm9tZSdzIGFwcGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjQyNgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQ6OmdldEFwcGxpY2F0aW9uQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6YnVp
bGRBcnJheUZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y29u
bmVjdEZyb250ZW5kKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmZpbGxS
ZXNvdXJjZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmFw
cGxpY2F0aW9uQ2FjaGVJbmZvKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUhvc3QuaDogQ2hhbmdlZCBjcmVhdGlvbiArIHVwZGF0ZSB0aW1lcyB0byBkb3VibGUg
YW5kIG1vdmVkIGFwcGNhY2hlIGluZm8gaGVyZSBmcm9tIEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudC5oCisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJ
bmZvOjpDYWNoZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6
OlJlc291cmNlSW5mbzo6UmVzb3VyY2VJbmZvKToKKwogMjAxMC0wNy0yMSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCkluZGV4OiBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNh
Y2hlQWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQuaAkocmV2aXNpb24gNjM4NTgpCisrKyBXZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgs
MTMgKzI4LDEwIEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCi0jaW5j
bHVkZSAiS1VSTC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXBwbGljYXRp
b25DYWNoZTsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBJbnNwZWN0b3JGcm9u
dGVuZDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CkBAIC00Myw0NCArNDAsNiBAQAogCiBjbGFz
cyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQgOiBwdWJsaWMgTm9uY29weWFibGUgewog
cHVibGljOgotICAgIHN0cnVjdCBBcHBsaWNhdGlvbkNhY2hlSW5mbyB7Ci0gICAgICAgIEFwcGxp
Y2F0aW9uQ2FjaGVJbmZvKGNvbnN0IEtVUkwmIG1hbmlmZXN0LCBjb25zdCBTdHJpbmcmIGNyZWF0
aW9uVGltZSwgY29uc3QgU3RyaW5nJiB1cGRhdGVUaW1lLCBsb25nIGxvbmcgc2l6ZSkKLSAgICAg
ICAgICAgIDogbV9tYW5pZmVzdChtYW5pZmVzdCkKLSAgICAgICAgICAgICwgbV9jcmVhdGlvblRp
bWUoY3JlYXRpb25UaW1lKQotICAgICAgICAgICAgLCBtX3VwZGF0ZVRpbWUodXBkYXRlVGltZSkK
LSAgICAgICAgICAgICwgbV9zaXplKHNpemUpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAg
ICAgIEtVUkwgbV9tYW5pZmVzdDsKLSAgICAgICAgU3RyaW5nIG1fY3JlYXRpb25UaW1lOwotICAg
ICAgICBTdHJpbmcgbV91cGRhdGVUaW1lOwotICAgICAgICBsb25nIGxvbmcgbV9zaXplOwotICAg
IH07Ci0KLSAgICBzdHJ1Y3QgUmVzb3VyY2VJbmZvIHsKLSAgICAgICAgUmVzb3VyY2VJbmZvKGNv
bnN0IEtVUkwmIHJlc291cmNlLCBib29sIGlzTWFzdGVyLCBib29sIGlzTWFuaWZlc3QsIGJvb2wg
aXNGYWxsYmFjaywgYm9vbCBpc0ZvcmVpZ24sIGJvb2wgaXNFeHBsaWNpdCwgbG9uZyBsb25nIHNp
emUpCi0gICAgICAgICAgICA6IG1fcmVzb3VyY2UocmVzb3VyY2UpCi0gICAgICAgICAgICAsIG1f
aXNNYXN0ZXIoaXNNYXN0ZXIpCi0gICAgICAgICAgICAsIG1faXNNYW5pZmVzdChpc01hbmlmZXN0
KQotICAgICAgICAgICAgLCBtX2lzRmFsbGJhY2soaXNGYWxsYmFjaykKLSAgICAgICAgICAgICwg
bV9pc0ZvcmVpZ24oaXNGb3JlaWduKQotICAgICAgICAgICAgLCBtX2lzRXhwbGljaXQoaXNFeHBs
aWNpdCkKLSAgICAgICAgICAgICwgbV9zaXplKHNpemUpCi0gICAgICAgIHsKLSAgICAgICAgfQot
Ci0gICAgICAgIEtVUkwgbV9yZXNvdXJjZTsKLSAgICAgICAgYm9vbCBtX2lzTWFzdGVyOwotICAg
ICAgICBib29sIG1faXNNYW5pZmVzdDsKLSAgICAgICAgYm9vbCBtX2lzRmFsbGJhY2s7Ci0gICAg
ICAgIGJvb2wgbV9pc0ZvcmVpZ247Ci0gICAgICAgIGJvb2wgbV9pc0V4cGxpY2l0OwotICAgICAg
ICBsb25nIGxvbmcgbV9zaXplOwotICAgIH07Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxSZXNvdXJj
ZUluZm8+IFJlc291cmNlSW5mb0xpc3Q7Ci0KICAgICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgSW5zcGVjdG9y
RnJvbnRlbmQqIGZyb250ZW5kKTsKICAgICB+SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
KCkgeyB9CiAKQEAgLTkzLDEyICs1MiwxMCBAQAogICAgIHZvaWQgZ2V0QXBwbGljYXRpb25DYWNo
ZXMobG9uZyBjYWxsSWQpOwogCiBwcml2YXRlOgotICAgIFNjcmlwdE9iamVjdCBidWlsZE9iamVj
dEZvckFwcGxpY2F0aW9uQ2FjaGUoY29uc3QgUmVzb3VyY2VJbmZvTGlzdCYsIGNvbnN0IEFwcGxp
Y2F0aW9uQ2FjaGVJbmZvJik7Ci0gICAgU2NyaXB0QXJyYXkgYnVpbGRBcnJheUZvckFwcGxpY2F0
aW9uQ2FjaGVSZXNvdXJjZXMoY29uc3QgUmVzb3VyY2VJbmZvTGlzdCYpOwotICAgIFNjcmlwdE9i
amVjdCBidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJj
ZUluZm8mKTsKKyAgICBTY3JpcHRPYmplY3QgYnVpbGRPYmplY3RGb3JBcHBsaWNhdGlvbkNhY2hl
KGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0JiwgY29uc3QgQXBw
bGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyYpOworICAgIFNjcmlwdEFycmF5IGJ1aWxkQXJy
YXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpSZXNvdXJjZUluZm9MaXN0Jik7CisgICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yQXBw
bGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJj
ZUluZm8mKTsKIAotICAgIHZvaWQgZmlsbFJlc291cmNlTGlzdChBcHBsaWNhdGlvbkNhY2hlKiwg
UmVzb3VyY2VJbmZvTGlzdCopOwotCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogbV9pbnNwZWN0
b3JDb250cm9sbGVyOwogICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOwogfTsKSW5k
ZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcAkocmV2aXNpb24gNjM4NTgpCisrKyBXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogCi0jaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZS5oIgotI2luY2x1ZGUgIkFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZS5oIgorI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCkBAIC02MywyOSArNjIsNiBAQAogICAgIG1fZnJvbnRlbmQtPnVw
ZGF0ZU5ldHdvcmtTdGF0ZShpc05vd09ubGluZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQXBwbGlj
YXRpb25DYWNoZUFnZW50OjpmaWxsUmVzb3VyY2VMaXN0KEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hl
LCBSZXNvdXJjZUluZm9MaXN0KiByZXNvdXJjZXMpCi17Ci0jaWYgIVBMQVRGT1JNKENIUk9NSVVN
KQotICAgIEFTU0VSVChjYWNoZSAmJiBjYWNoZS0+aXNDb21wbGV0ZSgpKTsKLSNlbmRpZgotICAg
IEFwcGxpY2F0aW9uQ2FjaGU6OlJlc291cmNlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjYWNo
ZS0+ZW5kKCk7Ci0gICAgZm9yIChBcHBsaWNhdGlvbkNhY2hlOjpSZXNvdXJjZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBjYWNoZS0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAg
IFJlZlB0cjxBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U+IHJlc291cmNlID0gaXQtPnNlY29uZDsK
LSAgICAgICAgdW5zaWduZWQgdHlwZSA9IHJlc291cmNlLT50eXBlKCk7Ci0gICAgICAgIGJvb2wg
aXNNYXN0ZXIgICA9IHR5cGUgJiBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6Ok1hc3RlcjsKLSAg
ICAgICAgYm9vbCBpc01hbmlmZXN0ID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6
TWFuaWZlc3Q7Ci0gICAgICAgIGJvb2wgaXNFeHBsaWNpdCA9IHR5cGUgJiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2U6OkV4cGxpY2l0OwotICAgICAgICBib29sIGlzRm9yZWlnbiAgPSB0eXBlICYg
QXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGb3JlaWduOwotICAgICAgICBib29sIGlzRmFsbGJh
Y2sgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpGYWxsYmFjazsKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICAgICAgaW50NjRfdCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlID0g
MDsKLSNlbHNlCi0gICAgICAgIGludDY0X3QgZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSA9IHJlc291
cmNlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCk7Ci0jZW5kaWYKLSAgICAgICAgcmVzb3VyY2Vz
LT5hcHBlbmQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpSZXNvdXJjZUluZm8ocmVz
b3VyY2UtPnVybCgpLCBpc01hc3RlciwgaXNNYW5pZmVzdCwgaXNGYWxsYmFjaywgaXNGb3JlaWdu
LCBpc0V4cGxpY2l0LCBlc3RpbWF0ZWRTaXplSW5TdG9yYWdlKSk7Ci0gICAgfQotfQotCiB2b2lk
IEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudDo6Z2V0QXBwbGljYXRpb25DYWNoZXMobG9u
ZyBjYWxsSWQpCiB7CiAgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3VtZW50TG9hZGVyID0gbV9pbnNw
ZWN0b3JDb250cm9sbGVyLT5pbnNwZWN0ZWRQYWdlKCktPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+
ZG9jdW1lbnRMb2FkZXIoKTsKQEAgLTk1LDI1ICs3MSwxNSBAQAogICAgIH0KIAogICAgIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KiBob3N0ID0gZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0aW9uQ2FjaGVI
b3N0KCk7Ci0gICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBob3N0LT5hcHBsaWNhdGlvbkNh
Y2hlRm9ySW5zcGVjdG9yKCk7Ci0gICAgaWYgKCFjYWNoZQotI2lmICFQTEFURk9STShDSFJPTUlV
TSkKLSAgICAgICAgfHwgIWNhY2hlLT5pc0NvbXBsZXRlKCkKLSNlbmRpZgotICAgICAgICApIHsK
LSAgICAgICAgbV9mcm9udGVuZC0+ZGlkR2V0QXBwbGljYXRpb25DYWNoZXMoY2FsbElkLCBTY3Jp
cHRWYWx1ZTo6dW5kZWZpbmVkKCkpOwotICAgICAgICByZXR1cm47ICAgICAgICAKLSAgICB9Cisg
ICAgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNhY2hlSW5mbyBpbmZvID0gaG9zdC0+YXBwbGljYXRp
b25DYWNoZUluZm8oKTsKKyAKKyAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6UmVzb3VyY2VJbmZv
TGlzdCByZXNvdXJjZXM7CisgICAgaG9zdC0+ZmlsbFJlc291cmNlTGlzdCgmcmVzb3VyY2VzKTsK
IAotICAgIC8vIEZJWE1FOiBBZGQgIkNyZWF0aW9uIFRpbWUiIGFuZCAiVXBkYXRlIFRpbWUiIHRv
IEFwcGxpY2F0aW9uIENhY2hlcy4KLSAgICBBcHBsaWNhdGlvbkNhY2hlSW5mbyBpbmZvKGNhY2hl
LT5tYW5pZmVzdFJlc291cmNlKCktPnVybCgpLCBTdHJpbmcoKSwgU3RyaW5nKCksIGNhY2hlLT5l
c3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpOwotICAgIFJlc291cmNlSW5mb0xpc3QgcmVzb3VyY2Vz
OwotICAgIGZpbGxSZXNvdXJjZUxpc3QoY2FjaGUsICZyZXNvdXJjZXMpOwotCiAgICAgbV9mcm9u
dGVuZC0+ZGlkR2V0QXBwbGljYXRpb25DYWNoZXMoY2FsbElkLCBidWlsZE9iamVjdEZvckFwcGxp
Y2F0aW9uQ2FjaGUocmVzb3VyY2VzLCBpbmZvKSk7CiB9CiAKLVNjcmlwdE9iamVjdCBJbnNwZWN0
b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZShj
b25zdCBSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLCBjb25zdCBB
cHBsaWNhdGlvbkNhY2hlSW5mbyYgYXBwbGljYXRpb25DYWNoZUluZm8pCitTY3JpcHRPYmplY3Qg
SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9u
Q2FjaGUoY29uc3QgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlJlc291cmNlSW5mb0xpc3QmIGFwcGxp
Y2F0aW9uQ2FjaGVSZXNvdXJjZXMsIGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZUlu
Zm8mIGFwcGxpY2F0aW9uQ2FjaGVJbmZvKQogewogICAgIFNjcmlwdE9iamVjdCB2YWx1ZSA9IG1f
ZnJvbnRlbmQtPm5ld1NjcmlwdE9iamVjdCgpOwogICAgIHZhbHVlLnNldCgic2l6ZSIsIGFwcGxp
Y2F0aW9uQ2FjaGVJbmZvLm1fc2l6ZSk7CkBAIC0xMjUsMTkgKzkxLDE5IEBACiAgICAgcmV0dXJu
IHZhbHVlOwogfQogCi1TY3JpcHRBcnJheSBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ6
OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzKGNvbnN0IFJlc291cmNlSW5m
b0xpc3QmIGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMpCitTY3JpcHRBcnJheSBJbnNwZWN0b3JB
cHBsaWNhdGlvbkNhY2hlQWdlbnQ6OmJ1aWxkQXJyYXlGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2VzKGNvbnN0IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0JiBhcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2VzKQogewogICAgIFNjcmlwdEFycmF5IHJlc291cmNlcyA9IG1fZnJv
bnRlbmQtPm5ld1NjcmlwdEFycmF5KCk7CiAKLSAgICBSZXNvdXJjZUluZm9MaXN0Ojpjb25zdF9p
dGVyYXRvciBlbmQgPSBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLmVuZCgpOwotICAgIFJlc291
cmNlSW5mb0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gYXBwbGljYXRpb25DYWNoZVJlc291cmNl
cy5iZWdpbigpOworICAgIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Ojpj
b25zdF9pdGVyYXRvciBlbmQgPSBhcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VzLmVuZCgpOworICAg
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm9MaXN0Ojpjb25zdF9pdGVyYXRvciBp
dCA9IGFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZXMuYmVnaW4oKTsKICAgICBmb3IgKGludCBpID0g
MDsgaXQgIT0gZW5kOyArK2l0LCBpKyspCiAgICAgICAgIHJlc291cmNlcy5zZXQoaSwgYnVpbGRP
YmplY3RGb3JBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoKml0KSk7CiAKICAgICByZXR1cm4gcmVz
b3VyY2VzOwogfQogCi1TY3JpcHRPYmplY3QgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50
OjpidWlsZE9iamVjdEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZUlu
Zm8mIHJlc291cmNlSW5mbykKK1NjcmlwdE9iamVjdCBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yQXBwbGljYXRpb25DYWNoZVJlc291cmNlKGNvbnN0IEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0OjpSZXNvdXJjZUluZm8mIHJlc291cmNlSW5mbykKIHsKICAgICBTY3Jp
cHRPYmplY3QgdmFsdWUgPSBtX2Zyb250ZW5kLT5uZXdTY3JpcHRPYmplY3QoKTsKICAgICB2YWx1
ZS5zZXQoIm5hbWUiLCByZXNvdXJjZUluZm8ubV9yZXNvdXJjZS5zdHJpbmcoKSk7CkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCShy
ZXZpc2lvbiA2Mzg1OCkKKysrIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUwLDYgKzI1MCwzNyBAQAogICAgIG1fZGVm
ZXJzRXZlbnRzID0gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQordm9pZCBBcHBs
aWNhdGlvbkNhY2hlSG9zdDo6ZmlsbFJlc291cmNlTGlzdChSZXNvdXJjZUluZm9MaXN0KiByZXNv
dXJjZXMpCit7CisgICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBhcHBsaWNhdGlvbkNhY2hl
KCk7CisgICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxldGUoKSkKKyAgICAgICAgcmV0
dXJuOworICAgICAKKyAgICBBcHBsaWNhdGlvbkNhY2hlOjpSZXNvdXJjZU1hcDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gY2FjaGUtPmVuZCgpOworICAgIGZvciAoQXBwbGljYXRpb25DYWNoZTo6UmVz
b3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2FjaGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgeworICAgICAgICBSZWZQdHI8QXBwbGljYXRpb25DYWNoZVJlc291cmNlPiByZXNvdXJj
ZSA9IGl0LT5zZWNvbmQ7CisgICAgICAgIHVuc2lnbmVkIHR5cGUgPSByZXNvdXJjZS0+dHlwZSgp
OworICAgICAgICBib29sIGlzTWFzdGVyICAgPSB0eXBlICYgQXBwbGljYXRpb25DYWNoZVJlc291
cmNlOjpNYXN0ZXI7CisgICAgICAgIGJvb2wgaXNNYW5pZmVzdCA9IHR5cGUgJiBBcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2U6Ok1hbmlmZXN0OworICAgICAgICBib29sIGlzRXhwbGljaXQgPSB0eXBl
ICYgQXBwbGljYXRpb25DYWNoZVJlc291cmNlOjpFeHBsaWNpdDsKKyAgICAgICAgYm9vbCBpc0Zv
cmVpZ24gID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6Rm9yZWlnbjsKKyAgICAg
ICAgYm9vbCBpc0ZhbGxiYWNrID0gdHlwZSAmIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6RmFs
bGJhY2s7CisgICAgICAgIHJlc291cmNlcy0+YXBwZW5kKFJlc291cmNlSW5mbyhyZXNvdXJjZS0+
dXJsKCksIGlzTWFzdGVyLCBpc01hbmlmZXN0LCBpc0ZhbGxiYWNrLCBpc0ZvcmVpZ24sIGlzRXhw
bGljaXQsIHJlc291cmNlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpKTsKKyAgICB9Cit9Cisg
CitBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2FjaGVJbmZvIEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojph
cHBsaWNhdGlvbkNhY2hlSW5mbygpCit7CisgICAgQXBwbGljYXRpb25DYWNoZSogY2FjaGUgPSBh
cHBsaWNhdGlvbkNhY2hlKCk7CisgICAgaWYgKCFjYWNoZSB8fCAhY2FjaGUtPmlzQ29tcGxldGUo
KSkKKyAgICAgICAgcmV0dXJuIENhY2hlSW5mbyhLVVJMKCksIDAsIDAsIDApOworICAKKyAgICAv
LyBGSVhNRTogQWRkICJDcmVhdGlvbiBUaW1lIiBhbmQgIlVwZGF0ZSBUaW1lIiB0byBBcHBsaWNh
dGlvbiBDYWNoZXMuCisgICAgcmV0dXJuIENhY2hlSW5mbyhjYWNoZS0+bWFuaWZlc3RSZXNvdXJj
ZSgpLT51cmwoKSwgMCwgMCwgY2FjaGUtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSk7Cit9Cisj
ZW5kaWYKKwogdm9pZCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6ZGlzcGF0Y2hET01FdmVudChFdmVu
dElEIGlkLCBpbnQgdG90YWwsIGludCBkb25lKQogewogICAgIGlmIChtX2RvbUFwcGxpY2F0aW9u
Q2FjaGUpIHsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUhvc3QuaAkocmV2aXNpb24gNjM4NTgpCisrKyBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAK
ICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogCisjaW5jbHVkZSAiS1VSTC5o
IgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDAsMTAgKzQxLDggQEAKICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBBcHBsaWNhdGlvbkNh
Y2hlOwogICAgIGNsYXNzIERPTUFwcGxpY2F0aW9uQ2FjaGU7CiAgICAgY2xhc3MgRG9jdW1lbnRM
b2FkZXI7Ci0gICAgY2xhc3MgS1VSTDsKICAgICBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKICAgICBj
bGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKQEAgLTUyLDYg
KzUxLDcgQEAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNh
Y2hlSG9zdEludGVybmFsOwogI2Vsc2UKKyAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlOwogICAg
IGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDsKICAgICBjbGFzcyBBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2U7CiAgICAgY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CkBAIC04MCw2ICs4
MCw0MCBAQAogICAgICAgICAgICAgT0JTT0xFVEVfRVZFTlQgIC8vIE11c3QgcmVtYWluIHRoZSBs
YXN0IHZhbHVlLCB0aGlzIGlzIHVzZWQgdG8gc2l6ZSBhcnJheXMuCiAgICAgICAgIH07CiAKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgICAgICBzdHJ1Y3QgQ2FjaGVJbmZvIHsKKyAgICAgICAg
ICAgIENhY2hlSW5mbyhjb25zdCBLVVJMJiBtYW5pZmVzdCwgZG91YmxlIGNyZWF0aW9uVGltZSwg
ZG91YmxlIHVwZGF0ZVRpbWUsIGxvbmcgbG9uZyBzaXplKQorICAgICAgICAgICAgICAgIDogbV9t
YW5pZmVzdChtYW5pZmVzdCkKKyAgICAgICAgICAgICAgICAsIG1fY3JlYXRpb25UaW1lKGNyZWF0
aW9uVGltZSkKKyAgICAgICAgICAgICAgICAsIG1fdXBkYXRlVGltZSh1cGRhdGVUaW1lKQorICAg
ICAgICAgICAgICAgICwgbV9zaXplKHNpemUpIHsgfQorICAgICAgICAgICAgS1VSTCBtX21hbmlm
ZXN0OworICAgICAgICAgICAgZG91YmxlIG1fY3JlYXRpb25UaW1lOworICAgICAgICAgICAgZG91
YmxlIG1fdXBkYXRlVGltZTsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBtX3NpemU7CisgICAgICAg
IH07CisKKyAgICAgICAgc3RydWN0IFJlc291cmNlSW5mbyB7CisgICAgICAgICAgICBSZXNvdXJj
ZUluZm8oY29uc3QgS1VSTCYgcmVzb3VyY2UsIGJvb2wgaXNNYXN0ZXIsIGJvb2wgaXNNYW5pZmVz
dCwgYm9vbCBpc0ZhbGxiYWNrLCBib29sIGlzRm9yZWlnbiwgYm9vbCBpc0V4cGxpY2l0LCBsb25n
IGxvbmcgc2l6ZSkKKyAgICAgICAgICAgICAgICA6IG1fcmVzb3VyY2UocmVzb3VyY2UpCisgICAg
ICAgICAgICAgICAgLCBtX2lzTWFzdGVyKGlzTWFzdGVyKQorICAgICAgICAgICAgICAgICwgbV9p
c01hbmlmZXN0KGlzTWFuaWZlc3QpCisgICAgICAgICAgICAgICAgLCBtX2lzRmFsbGJhY2soaXNG
YWxsYmFjaykKKyAgICAgICAgICAgICAgICAsIG1faXNGb3JlaWduKGlzRm9yZWlnbikKKyAgICAg
ICAgICAgICAgICAsIG1faXNFeHBsaWNpdChpc0V4cGxpY2l0KQorICAgICAgICAgICAgICAgICwg
bV9zaXplKHNpemUpIHsgfQorICAgICAgICAgICAgS1VSTCBtX3Jlc291cmNlOworICAgICAgICAg
ICAgYm9vbCBtX2lzTWFzdGVyOworICAgICAgICAgICAgYm9vbCBtX2lzTWFuaWZlc3Q7CisgICAg
ICAgICAgICBib29sIG1faXNGYWxsYmFjazsKKyAgICAgICAgICAgIGJvb2wgbV9pc0ZvcmVpZ247
CisgICAgICAgICAgICBib29sIG1faXNFeHBsaWNpdDsKKyAgICAgICAgICAgIGxvbmcgbG9uZyBt
X3NpemU7CisgICAgICAgIH07CisKKyAgICAgICAgdHlwZWRlZiBWZWN0b3I8UmVzb3VyY2VJbmZv
PiBSZXNvdXJjZUluZm9MaXN0OworI2VuZGlmCisKICAgICAgICAgQXBwbGljYXRpb25DYWNoZUhv
c3QoRG9jdW1lbnRMb2FkZXIqKTsKICAgICAgICAgfkFwcGxpY2F0aW9uQ2FjaGVIb3N0KCk7CiAK
QEAgLTExMiw3ICsxNDYsMTAgQEAKIAogICAgICAgICB2b2lkIHN0b3BEZWZlcnJpbmdFdmVudHMo
KTsgLy8gQWxzbyByYWlzZXMgdGhlIGV2ZW50cyB0aGF0IGhhdmUgYmVlbiBxdWV1ZWQgdXAuCiAK
LSAgICAgICAgQXBwbGljYXRpb25DYWNoZSogYXBwbGljYXRpb25DYWNoZUZvckluc3BlY3Rvcigp
IGNvbnN0IHsgcmV0dXJuIGFwcGxpY2F0aW9uQ2FjaGUoKTsgfQorI2lmIEVOQUJMRShJTlNQRUNU
T1IpCisgICAgICAgIHZvaWQgZmlsbFJlc291cmNlTGlzdChSZXNvdXJjZUluZm9MaXN0Kik7Cisg
ICAgICAgIENhY2hlSW5mbyBhcHBsaWNhdGlvbkNhY2hlSW5mbygpOworI2VuZGlmCiAKICAgICBw
cml2YXRlOgogICAgICAgICBib29sIGlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKTsKQEAgLTEz
NSw3ICsxNzIsNiBAQAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICBmcmllbmQgY2xh
c3MgQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbDsKICAgICAgICAgT3duUHRyPEFwcGxpY2F0
aW9uQ2FjaGVIb3N0SW50ZXJuYWw+IG1faW50ZXJuYWw7Ci0gICAgICAgIEFwcGxpY2F0aW9uQ2Fj
aGUqIGFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdCB7IHJldHVybiAwOyB9IC8vIEZJWE1FOiBJbXBs
ZW1lbnQgZm9yIENocm9taXVtIFdlYiBJbnNwZWN0b3IgU3VwcG9ydC4KICNlbHNlCiAgICAgICAg
IGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlR3JvdXA7CiAgICAgICAgIGZyaWVuZCBjbGFz
cyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>