<?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>67160</bug_id>
          
          <creation_ts>2011-08-29 15:53:25 -0700</creation_ts>
          <short_desc>Add a way to get JavaScript, memory, WebCore cache, and font statistics in WebProcess</short_desc>
          <delta_ts>2011-09-01 17:51:56 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ada Chan">adachan</reporter>
          <assigned_to name="Ada Chan">adachan</assigned_to>
          <cc>andersca</cc>
    
    <cc>joepeck</cc>
    
    <cc>sam</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>458513</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-29 15:53:25 -0700</bug_when>
    <thetext>This is analogous to WebCoreStatistics in WebKit1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458674</commentid>
    <comment_count>1</comment_count>
      <attachid>105570</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-29 20:57:14 -0700</bug_when>
    <thetext>Created attachment 105570
First patch which just lays the groundwork to fetch performance statistics from WebProcess.

I&apos;ll add code to actually fetch the WebCore statistics in future patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458676</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 20:59:29 -0700</bug_when>
    <thetext>Attachment 105570 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebKit2/UIProcess/WebContext.h:207:  The parameter name &quot;statisticsData&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458712</commentid>
    <comment_count>3</comment_count>
      <attachid>105580</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-29 22:45:19 -0700</bug_when>
    <thetext>Created attachment 105580
First patch which just lays the groundwork to fetch performance statistics from WebProcess.

Fixed an issue found by style-queue (removed the parameter name &quot;statisticsData&quot; from the declaration of WebContext::didGetWebCoreStatistics()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458988</commentid>
    <comment_count>4</comment_count>
      <attachid>105580</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-08-30 10:15:24 -0700</bug_when>
    <thetext>Comment on attachment 105580
First patch which just lays the groundwork to fetch performance statistics from WebProcess.

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

&gt; Source/WebKit2/UIProcess/API/C/WKContext.cpp:235
&gt; +void WKContextGetStatistics(WKContextRef contextRef, WKContextGetStatisticsFunction callback, void* context)

In the other places where we have callback functions, we tend to have the context first, then the callback.  See WKPageGetContentsAsString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458990</commentid>
    <comment_count>5</comment_count>
      <attachid>105580</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-30 10:15:48 -0700</bug_when>
    <thetext>Comment on attachment 105580
First patch which just lays the groundwork to fetch performance statistics from WebProcess.

I’m not sure the statistics result should come back as an object of its own custom class. Another way to do it is to return a dictionary with keys and values for the various statistics or use a struct. A reference counted object to hold the data doesn’t seem significantly better than those other two options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458995</commentid>
    <comment_count>6</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-30 10:30:29 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 105580 [details])
&gt; I’m not sure the statistics result should come back as an object of its own custom class. Another way to do it is to return a dictionary with keys and values for the various statistics or use a struct. A reference counted object to hold the data doesn’t seem significantly better than those other two options.

That&apos;s a good idea.  I&apos;m going to rework the patch to eliminate the custom APIObject class for packaging the statistics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459108</commentid>
    <comment_count>7</comment_count>
      <attachid>105675</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-30 12:56:14 -0700</bug_when>
    <thetext>Created attachment 105675
First patch which just lays the groundwork to fetch performance statistics from WebProcess.

Patch was modified to return the statistics in a dictionary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459825</commentid>
    <comment_count>8</comment_count>
      <attachid>105812</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-31 12:26:41 -0700</bug_when>
    <thetext>Created attachment 105812
Gather JavaScript, FastMalloc, icon, font, and glyph page statistics in WebProcess::getWebCoreStatistics()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459853</commentid>
    <comment_count>9</comment_count>
      <attachid>105812</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-08-31 13:28:55 -0700</bug_when>
    <thetext>Comment on attachment 105812
Gather JavaScript, FastMalloc, icon, font, and glyph page statistics in WebProcess::getWebCoreStatistics()

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

&gt; Source/WebKit2/UIProcess/WebContext.cpp:807
&gt; +    RefPtr&lt;MutableDictionary&gt; result = MutableDictionary::create();
&gt; +    HashMap&lt;String, uint32_t&gt;::const_iterator end = map.end();
&gt; +    for (HashMap&lt;String, uint32_t&gt;::const_iterator it = map.begin(); it != end; ++it)
&gt; +        result-&gt;set(it-&gt;first, RefPtr&lt;WebUInt64&gt;(WebUInt64::create(it-&gt;second)).get());
&gt; +    

It seems odd that we are using uint32_t and then making the API uint64_t.  I think the internal representation (in the HashMap) should be uint64_t.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:820
&gt; +    statistics-&gt;set(&quot;JavaScriptProtectedObjectTypeCounts&quot;, RefPtr&lt;MutableDictionary&gt;(createDictionaryFromHashMap(statisticsData.javaScriptProtectedObjectTypeCounts)).get());

The RefPtr car should no be necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>459893</commentid>
    <comment_count>10</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-31 14:00:01 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 105812 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105812&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebContext.cpp:807
&gt; &gt; +    RefPtr&lt;MutableDictionary&gt; result = MutableDictionary::create();
&gt; &gt; +    HashMap&lt;String, uint32_t&gt;::const_iterator end = map.end();
&gt; &gt; +    for (HashMap&lt;String, uint32_t&gt;::const_iterator it = map.begin(); it != end; ++it)
&gt; &gt; +        result-&gt;set(it-&gt;first, RefPtr&lt;WebUInt64&gt;(WebUInt64::create(it-&gt;second)).get());
&gt; &gt; +    
&gt; 
&gt; It seems odd that we are using uint32_t and then making the API uint64_t.  I think the internal representation (in the HashMap) should be uint64_t.

Changed to uint64_t.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebContext.cpp:820
&gt; &gt; +    statistics-&gt;set(&quot;JavaScriptProtectedObjectTypeCounts&quot;, RefPtr&lt;MutableDictionary&gt;(createDictionaryFromHashMap(statisticsData.javaScriptProtectedObjectTypeCounts)).get());
&gt; 
&gt; The RefPtr car should no be necessary.

Removed RefPtr wrap.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460080</commentid>
    <comment_count>11</comment_count>
      <attachid>105860</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-08-31 16:53:01 -0700</bug_when>
    <thetext>Created attachment 105860
Gather JavaScript, FastMalloc, icon, font, and glyph page statistics in WebProcess::getWebCoreStatistics()

This time with Windows build fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460568</commentid>
    <comment_count>12</comment_count>
      <attachid>105986</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-09-01 10:20:37 -0700</bug_when>
    <thetext>Created attachment 105986
Gather memory cache statistics in WebProcess::getWebCoreStatistics()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460569</commentid>
    <comment_count>13</comment_count>
      <attachid>105986</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 10:22:06 -0700</bug_when>
    <thetext>Comment on attachment 105986
Gather memory cache statistics in WebProcess::getWebCoreStatistics()

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

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:852
&gt; +#if ENABLE(XSLT)
&gt; +    counts.set(xslString, memoryCacheStatistics.xslStyleSheets.count);
&gt; +#else
&gt; +    counts.set(xslString, 0);
&gt; +#endif

It would cut down on ifdefs if the structure always had this field but all the numbers were zeroes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460570</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 10:22:40 -0700</bug_when>
    <thetext>Attachment 105986 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/ChangeLog:3:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460746</commentid>
    <comment_count>15</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-09-01 13:40:12 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 105986 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=105986&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebProcess.cpp:852
&gt; &gt; +#if ENABLE(XSLT)
&gt; &gt; +    counts.set(xslString, memoryCacheStatistics.xslStyleSheets.count);
&gt; &gt; +#else
&gt; &gt; +    counts.set(xslString, 0);
&gt; &gt; +#endif
&gt; 
&gt; It would cut down on ifdefs if the structure always had this field but all the numbers were zeroes.

Very true!  I&apos;ll look into doing that in a followup patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460794</commentid>
    <comment_count>16</comment_count>
      <attachid>106033</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-09-01 14:42:44 -0700</bug_when>
    <thetext>Created attachment 106033
Cut down ifdefs in WebKit::getWebCoreMemoryCacheStatistics()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460824</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-01 15:04:30 -0700</bug_when>
    <thetext>Attachment 106033 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/ChangeLog:3:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460839</commentid>
    <comment_count>18</comment_count>
      <attachid>106033</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-01 15:13:18 -0700</bug_when>
    <thetext>Comment on attachment 106033
Cut down ifdefs in WebKit::getWebCoreMemoryCacheStatistics()

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

&gt; Source/WebCore/loader/cache/MemoryCache.h:102
&gt;          TypeStatistic xslStyleSheets;

Is there any code anywhere that needs to be changed to initialize this to zero?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460853</commentid>
    <comment_count>19</comment_count>
      <attachid>106033</attachid>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-09-01 15:38:55 -0700</bug_when>
    <thetext>Comment on attachment 106033
Cut down ifdefs in WebKit::getWebCoreMemoryCacheStatistics()

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

&gt;&gt; Source/WebCore/loader/cache/MemoryCache.h:102
&gt;&gt;          TypeStatistic xslStyleSheets;
&gt; 
&gt; Is there any code anywhere that needs to be changed to initialize this to zero?

TypeStatistic has a default constructor that initializes everything to zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460964</commentid>
    <comment_count>20</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2011-09-01 17:51:56 -0700</bug_when>
    <thetext>Committed:
http://trac.webkit.org/changeset/94115
http://trac.webkit.org/changeset/94298
http://trac.webkit.org/changeset/94340
http://trac.webkit.org/changeset/94371</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105570</attachid>
            <date>2011-08-29 20:57:14 -0700</date>
            <delta_ts>2011-08-29 22:45:19 -0700</delta_ts>
            <desc>First patch which just lays the groundwork to fetch performance statistics from WebProcess.</desc>
            <filename>67160-1.patch.txt</filename>
            <type>text/plain</type>
            <size>36534</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MDM3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDgtMjkgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTGF5aW5nIHNvbWUgZ3JvdW5kd29yayB0
byBmZXRjaCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIGZyb20gV2ViUHJvY2Vzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmaWxlcyB0byBw
cm9qZWN0LgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKKyAgICAg
ICAgSGFuZGxlIHRoZSBhZGRpbmcgb2YgbmV3IHR5cGVzIFN0YXRpc3RpY3NEYXRhLCBXZWJTdGF0
aXN0aWNzLCBhbmQgV0tTdGF0aXN0aWNzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoK
KworICAgICAgICBBZGQgV0tDb250ZXh0R2V0U3RhdGlzdGljcygpIHdoaWNoIHNlbmRzIGEgbWVz
c2FnZSB0byBXZWJQcm9jZXNzIHRvIGZldGNoIHRoZSBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250
ZXh0R2V0U3RhdGlzdGljcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpkaWRHZXRXZWJDb3JlU3RhdGlzdGljcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbjog
QWRkIHRoZSBEaWRHZXRXZWJDb3JlU3RhdGlzdGljcyBtZXNzYWdlIHRoYXQgV2ViUHJvY2VzcyBj
YW4gc2VuZCB3aGVuIGl0IGhhcworICAgICAgICB0aGUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyBy
ZWFkeS4KKworICAgICAgICBBZGQgV2ViUHJvY2Vzczo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKS4g
IEN1cnJlbnRseSBpdCBqdXN0IHNlbmRzIGJhY2sgYW4gZW1wdHkgU3RhdGlzdGljc0RhdGEgb2Jq
ZWN0LgorICAgICAgICBJdCB3aWxsIGdhdGhlciB0aGUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyB0
byBzdG9yZSBpbiB0aGUgU3RhdGlzdGljc0RhdGEgb2JqZWN0IGluIGEgZnV0dXJlIHBhdGNoLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmdldFdlYkNvcmVTdGF0aXN0aWNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisKKyAgICAgICAgQWRkIHRoZSBza2VsZXRvbiBmb3IgU3RhdGlzdGljc0RhdGEsIFdlYlN0YXRp
c3RpY3MsIGFuZCBXS1N0YXRpc3RpY3MuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RhdGlz
dGljcy5jcHA6IEFkZGVkLgorICAgICAgICAoV0tTdGF0aXN0aWNzR2V0VHlwZUlEKToKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTdGF0aXN0aWNz
RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U3RhdGlzdGljc0RhdGE6OmRlY29kZSk6
CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjpTdGF0aXN0aWNzRGF0YSk6CisgICAg
ICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9X
ZWJTdGF0aXN0aWNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlN0YXRpc3RpY3M6
OldlYlN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdGF0aXN0aWNzOjp+V2ViU3Rh
dGlzdGljcyk6CisgICAgICAgICogU2hhcmVkL1dlYlN0YXRpc3RpY3MuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlN0YXRpc3RpY3M6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlN0YXRpc3RpY3M6OnR5cGUpOgorCiAyMDExLTA4LTI5ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFs
LjEucmFnaGF2YW5Abm9raWEuY29tPgogCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9B
UEkvYy9XS051bWJlci5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tTZWN1cml0eU9yaWdpbi5jcHAK
ICAgICBTaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisgICAgU2hhcmVk
L0FQSS9jL1dLU3RhdGlzdGljcy5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCiAg
ICAgU2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tVUkwuY3BwCkBA
IC0xNTAsNiArMTUxLDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogCiAgICAgU2hhcmVkL1NlY3Vy
aXR5T3JpZ2luRGF0YS5jcHAKICAgICBTaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAorICAgIFNoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5jcHAKICAgICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFy
ZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAKICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRl
bS5jcHAKQEAgLTE3MCw2ICsxNzIsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVk
L1dlYlBvcHVwSXRlbS5jcHAKICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKICAg
ICBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKyAgICBTaGFyZWQvV2Vi
U3RhdGlzdGljcy5jcHAKICAgICBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKICAgICBTaGFyZWQv
V2ViVVJMUmVxdWVzdC5jcHAKICAgICBTaGFyZWQvV2ViVVJMUmVzcG9uc2UuY3BwCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQCBsaWJ3ZWJraXQyZ3Rr
X0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oIFwKKwkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1N0YXRpc3RpY3Mu
aCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJJChXZWJLaXQyKS9T
aGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9j
L1dLVHlwZS5oIFwKQEAgLTIzNyw2ICsyMzgsOCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtf
QVBJX01BSk9SX1ZFUlNJCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdGF0aXN0
aWNzLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RhdGlzdGljcy5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKQEAgLTMxNiw2ICszMTksOCBAQCBsaWJ3ZWJraXQyZ3Rr
X0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3Vy
aXR5T3JpZ2luRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmggXAorCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZl
Y3Rvci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVGV4dENoZWNrZXJTdGF0ZS5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBcCkBAIC0zNjUsNiArMzcw
LDggQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSQogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJTdGF0aXN0aWNzLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0YXRpc3RpY3Mu
aCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZy5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJV
UkwuaCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFNoYXJlZC9TYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIFwKICAgICBT
aGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggXAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUuaCBc
CisgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggXAogICAgIFNoYXJlZC9TdHJpbmdQYWlyVmVj
dG9yLmggXAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmggXAogICAgIFNoYXJlZC9Vc2VyTWVzc2Fn
ZUNvZGVycy5oIFwKQEAgLTE1OSw2ICsxNjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQv
V2ViUG9wdXBJdGVtLmggXAogICAgIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggXAogICAg
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAorICAgIFNoYXJlZC9XZWJT
dGF0aXN0aWNzLmggXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1ZXN0LmggXAogICAgIFNoYXJlZC9X
ZWJVUkxSZXNwb25zZS5oIFwKICAgICBTaGFyZWQvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
XApAQCAtMzY4LDYgKzM3MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9QcmludEluZm8u
Y3BwIFwKICAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBcCiAgICAgU2hhcmVkL1Nl
c3Npb25TdGF0ZS5jcHAgXAorICAgIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAgXAogICAgIFNo
YXJlZC9VcGRhdGVJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuY3BwIFwK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXApAQCAtMzg5LDYgKzM5Miw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwIFwKICAgICBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgXAogICAgIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBcCisgICAgU2hhcmVkL1dlYlN0YXRpc3RpY3MuY3BwIFwKICAgICBT
aGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1ZXN0LmNwcCBc
CiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQkod29ya2luZyBjb3B5KQpAQCAtMjg1
LDYgKzI4NSw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAg
ICAgJ1dlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycycsCiAgICAgICAgICdX
ZWJLaXQ6OlByaW50SW5mbycsCiAgICAgICAgICdXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YScs
CisgICAgICAgICdXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhJywKICAgICAgICAgJ1dlYktpdDo6VGV4
dENoZWNrZXJTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUn
LAogICAgICAgICAnV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOjpEYXRhJywKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVE
YXRhTWFuYWdlciwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAorICAgICAgICBUeXBlU3RhdGlz
dGljcywKIAogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgVHlwZUJ1bmRsZSwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBTdGF0aXN0aWNzRGF0YTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogVG8gYmUgaW1wbGVtZW50ZWQuCit9CisKK2Jvb2wgU3RhdGlzdGljc0RhdGE6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFN0YXRpc3RpY3NEYXRhJiBzdGF0aXN0
aWNzRGF0YSkKK3sKKyAgICAvLyBGSVhNRTogVG8gYmUgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK1N0YXRpc3RpY3NEYXRhOjpTdGF0aXN0aWNzRGF0YSgpCit7ICAgIAorICAg
IC8vIEZJWE1FOiBUbyBiZSBpbXBsZW1lbnRlZC4KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdGF0aXN0aWNzRGF0YV9oCisj
ZGVmaW5lIFN0YXRpc3RpY3NEYXRhX2gKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgor
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Ry
dWN0IFN0YXRpc3RpY3NEYXRhIHsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgU3RhdGlzdGljc0RhdGEmKTsKKyAgICAKKyAgICBTdGF0aXN0aWNzRGF0YSgpOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBTdGF0aXN0aWNzRGF0YV9o
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RhdGlzdGljcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYlN0YXRpc3RpY3MuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlN0YXRp
c3RpY3M6OldlYlN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRh
KQorICAgIDogbV9zdGF0aXN0aWNzRGF0YShzdGF0aXN0aWNzRGF0YSkKK3sKK30KKworV2ViU3Rh
dGlzdGljczo6fldlYlN0YXRpc3RpY3MoKQoreyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RhdGlzdGljcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RhdGlzdGljcy5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTdGF0aXN0aWNzX2gKKyNk
ZWZpbmUgV2ViU3RhdGlzdGljc19oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
ICJTdGF0aXN0aWNzRGF0YS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK2NsYXNzIFdl
YlN0YXRpc3RpY3MgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZVN0YXRpc3RpY3M7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJTdGF0aXN0aWNzPiBjcmVhdGUoY29uc3QgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NE
YXRhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTdGF0aXN0aWNzKHN0
YXRpc3RpY3NEYXRhKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViU3RhdGlzdGljcygpOwor
Citwcml2YXRlOgorICAgIFdlYlN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmKTsKKwor
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAgIAor
ICAgIFN0YXRpc3RpY3NEYXRhIG1fc3RhdGlzdGljc0RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0YXRpc3RpY3NfaApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAgdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIAogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJl
bmNlc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBX
S1Byb3RlY3Rpb25TcGFjZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3RhdGlz
dGljcyogV0tTdGF0aXN0aWNzUmVmOwogCiAvKiBXZWJLaXQyIEJ1bmRsZSB0eXBlcyAqLwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0YXRpc3RpY3MuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLU3RhdGlzdGljcy5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisjaW5jbHVkZSAiV2ViU3RhdGlzdGljcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS1N0YXRpc3RpY3NHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQ
SShXZWJTdGF0aXN0aWNzOjpBUElUeXBlKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS1N0YXRpc3RpY3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdLU3RhdGlzdGljc19oCisjZGVmaW5lIFdLU3RhdGlzdGlj
c19oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMK
K2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1N0YXRpc3RpY3NH
ZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8q
IFdLU3RhdGlzdGljc19oICovCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIldl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTdGF0aXN0
aWNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KQEAgLTE4MSw2ICsxODIs
OCBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkt
PmNsZWFyQ29udGV4dCgpOworICAgIAorICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX3N0YXRp
c3RpY3NDYWxsYmFja3MpOwogCiAgICAgcGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogICAg
IApAQCAtNzg1LDQgKzc4OCwyNSBAQCBib29sIFdlYkNvbnRleHQ6Omh0dHBQaXBlbGluaW5nRW5h
YmxlZCgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGlj
cyhQYXNzUmVmUHRyPFN0YXRpc3RpY3NDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVm
UHRyPFN0YXRpc3RpY3NDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKyAgICAKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX3N0
YXRpc3RpY3NDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKKyAgICBw
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdldFdlYkNvcmVTdGF0aXN0aWNz
KGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJDb250ZXh0OjpkaWRHZXRXZWJDb3JlU3Rh
dGlzdGljcyhjb25zdCBTdGF0aXN0aWNzRGF0YSYgc3RhdGlzdGljc0RhdGEsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisgICAgUmVmUHRyPFN0YXRpc3RpY3NDYWxsYmFjaz4gY2FsbGJhY2sgPSBt
X3N0YXRpc3RpY3NDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBpZiAoIWNhbGxiYWNr
KSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgorICAgICAgICByZXR1
cm47CisgICAgfQorICAgICAKKyAgICBSZWZQdHI8V2ViU3RhdGlzdGljcz4gc3RhdGlzdGljcyA9
IFdlYlN0YXRpc3RpY3M6OmNyZWF0ZShzdGF0aXN0aWNzRGF0YSk7CisgICAgY2FsbGJhY2stPnBl
cmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShzdGF0aXN0aWNzLmdldCgpKTsKK30KKyAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2ViQ29u
dGV4dF9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQcm9jZXNzTW9k
ZWwuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1Byb3ZpZGVyLmgiCkBAIC01NSw3ICs1NiwxMCBA
QCBjbGFzcyBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwog
Y2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsK
K3N0cnVjdCBTdGF0aXN0aWNzRGF0YTsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOworICAgIAordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tTdGF0aXN0aWNzUmVmPiBTdGF0
aXN0aWNzQ2FsbGJhY2s7CiAKIGNsYXNzIFdlYkNvbnRleHQgOiBwdWJsaWMgQVBJT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTE3NSw2ICsxNzksOCBAQCBwdWJsaWM6CiAgICAgLy8gRGVmYXVsdHMgdG8g
ZmFsc2UuCiAgICAgdm9pZCBzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoYm9vbCk7CiAgICAgYm9v
bCBodHRwUGlwZWxpbmluZ0VuYWJsZWQoKTsKKyAgICAKKyAgICB2b2lkIGdldFdlYkNvcmVTdGF0
aXN0aWNzKFBhc3NSZWZQdHI8U3RhdGlzdGljc0NhbGxiYWNrPik7CiAKIHByaXZhdGU6CiAgICAg
V2ViQ29udGV4dChQcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRo
KTsKQEAgLTE5Nyw2ICsyMDMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRo
UGx1Z2luRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogICAgIHZvaWQgZGlkQ2xlYXJQbHVnaW5TaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lE
KTsKICNlbmRpZgorICAgIAorICAgIHZvaWQgZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoY29uc3Qg
U3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAg
ICAgICAgCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNvbnRleHRNZXNzYWdl
UmVjZWl2ZXIuY3BwCiAgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CkBAIC0yNzAsNiArMjc4LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9vdmVycmlk
ZUxvY2FsU3RvcmFnZURpcmVjdG9yeTsKIAogICAgIGJvb2wgbV9wcm9jZXNzVGVybWluYXRpb25F
bmFibGVkOworICAgIAorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0aWNzQ2Fs
bGJhY2s+ID4gbV9zdGF0aXN0aWNzQ2FsbGJhY2tzOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
VT4gaW5saW5lIGJvb2wgV2ViQ29udGV4dDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFUmIG1l
c3NhZ2UpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdl
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDAsNCArNDAsNiBAQCBt
ZXNzYWdlcyAtPiBXZWJDb250ZXh0IHsKICAgICB2b2lkIERpZENsZWFyUGx1Z2luU2l0ZURhdGEo
dWludDY0X3QgY2FsbGJhY2tJRCkKICNlbmRpZgogCisgICAgRGlkR2V0V2ViQ29yZVN0YXRpc3Rp
Y3MoV2ViS2l0OjpTdGF0aXN0aWNzRGF0YSBzdGF0aXN0aWNzRGF0YSwgdWludDY0X3QgY2FsbGJh
Y2tJRCkKKwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNh
c3QuaAkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJX
S1Byb3RlY3Rpb25TcGFjZVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tSZXNvdXJjZUNhY2hlTWFuYWdl
ci5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLU3RhdGlzdGlj
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9D
cmVkZW50aWFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CkBAIC03
Niw2ICs3Nyw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRh
TWFuYWdlcjsKIGNsYXNzIFdlYlByZWZlcmVuY2VzOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNl
OworY2xhc3MgV2ViU3RhdGlzdGljczsKIAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXBwbGljYXRp
b25DYWNoZU1hbmFnZXJSZWYsIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eSkKQEAgLTEwNSw2ICsxMDcsNyBAQCBXS19BRERfQVBJX01BUFBJTkco
V0tQYWdlUmVmLCBXZWJQYWdlUHJvCiBXS19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcikKIFdLX0FERF9BUElfTUFQUElO
RyhXS1ByZWZlcmVuY2VzUmVmLCBXZWJQcmVmZXJlbmNlcykKIFdLX0FERF9BUElfTUFQUElORyhX
S1Byb3RlY3Rpb25TcGFjZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQorV0tfQUREX0FQSV9NQVBQ
SU5HKFdLU3RhdGlzdGljc1JlZiwgV2ViU3RhdGlzdGljcykKIAogI2lmIEVOQUJMRShJTlNQRUNU
T1IpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMiwzICsyMzIsOCBAQCB2b2lkIFdLQ29udGV4
dFdhcm1Jbml0aWFsUHJvY2VzcyhXS0NvbnRlCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT53YXJt
SW5pdGlhbFByb2Nlc3MoKTsKIH0KIAordm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gY2FsbGJh
Y2ssIHZvaWQqIGNvbnRleHQpCit7CisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5nZXRXZWJDb3Jl
U3RhdGlzdGljcyhTdGF0aXN0aWNzQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjaykp
OyAgICAKK30KKwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaAkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsOSBAQCBXS19FWFBPUlQg
V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIFdLCiBXS19FWFBPUlQgV0tNZWRpYUNhY2hlTWFu
YWdlclJlZiBXS0NvbnRleHRHZXRNZWRpYUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4
dCk7CiBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1
Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0KTsKKyAgICAKK3R5cGVkZWYgdm9pZCAoKldLQ29udGV4dEdldFN0
YXRpc3RpY3NGdW5jdGlvbikoV0tTdGF0aXN0aWNzUmVmIHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYg
ZXJyb3IsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRH
ZXRTdGF0aXN0aWNzKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNz
RnVuY3Rpb24gZnVuY3Rpb24sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiAKICNpZmRlZiBfX2Nw
bHVzcGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICsz
ODUsMTIgQEAKIAkJNTFEMTMwNTUxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFE
MTMwNTExMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwICovOyB9Owog
CQk1MUQxMzA1NjEzODJFQUMwMDAzNTFFREQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEMTMwNTIxMzgyRUFD
MDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURhdGEuaCAqLzsgfTsKIAkJNTFEMTMwNTgxMzgy
RjEwNTAwMzUxRUREIC8qIFdlYlByb2Nlc3NQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDEzMDU3MTM4MkYxMDUwMDM1MUVERCAvKiBX
ZWJQcm9jZXNzUHJveHlNYWMubW0gKi87IH07CisJCTUyNzJCMjgxMTQwNjk1QjgwMDk2QTVEMCAv
KiBXZWJTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyNzJCMjdGMTQwNjk1QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmNwcCAq
LzsgfTsKKwkJNTI3MkIyODIxNDA2OTVCODAwOTZBNUQwIC8qIFdlYlN0YXRpc3RpY3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjgwMTQwNjk1
QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmggKi87IH07CisJCTUyNzJCMjg2MTQwNjk4MTkw
MDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTI3MkIyODQxNDA2OTgxOTAwOTZBNUQwIC8qIFdLU3RhdGlzdGlj
cy5jcHAgKi87IH07CisJCTUyNzJCMjg3MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3Mu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjg1
MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTUyNzJCMjhBMTQwNjk4NUQwMDk2QTVEMCAvKiBT
dGF0aXN0aWNzRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MjcyQjI4ODE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuY3BwICov
OyB9OworCQk1MjcyQjI4QjE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjg5MTQwNjk4
NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5oICovOyB9OwogCQk1RDUxODQ1NTEzQkNGOUND
MDBDN0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVENTE4NDUzMTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGll
bnRUcmFpdHMuY3BwICovOyB9OwogCQk1RDUxODQ1NjEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJQ2xp
ZW50VHJhaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1RDUxODQ1NDEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmggKi87IH07CiAJ
CTY1MDFCRDFBMTJGMTI0MzQwMEU5RjI0OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdC
MDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwICovOyB9OwpAQCAtMTMxNiw2ICsxMzIy
LDEyIEBACiAJCTUxRDEzMDUxMTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVzcG9uc2VEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY0l0ZW1SZXNwb25z
ZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMzA1MjEzODJFQUMw
MDAzNTFFREQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZWNJdGVtUmVzcG9uc2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxRDEzMDU3MTM4MkYxMDUwMDM1MUVERCAvKiBXZWJQcm9jZXNzUHJveHlNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzUHJveHlN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNzJCMjdGMTQwNjk1QjgwMDk2
QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlN0YXRpc3RpY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MjcyQjI4MDE0MDY5NUI4MDA5NkE1RDAgLyogV2ViU3RhdGlzdGljcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTdGF0aXN0aWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUyNzJCMjg0MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tTdGF0aXN0aWNzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI3MkIyODUxNDA2OTgxOTAwOTZBNUQwIC8qIFdL
U3RhdGlzdGljcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1N0YXRpc3Rp
Y3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI3MkIyODgxNDA2OTg1RDAwOTZB
NUQwIC8qIFN0YXRpc3RpY3NEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFN0YXRpc3RpY3NEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTI3MkIyODkxNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRhLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YXRpc3RpY3NEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVENTE4NDUzMTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJQ2xpZW50VHJhaXRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ1MTg0NTQxM0JDRjlDQzAwQzdG
RjRBIC8qIEFQSUNsaWVudFRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBUElDbGllbnRUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcy
OTQxMTZGRjcwQjAwRUU1Mzk2IC8qIFdlYlByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnhjY29uZmlnOyBwYXRoID0gV2ViUHJvY2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIxODEsNiArMjE5Myw4IEBACiAJCQkJNTE4RDJDQzkxMkQ1MURGQjAwM0JC
OTNCIC8qIFNlc3Npb25TdGF0ZS5oICovLAogCQkJCTFBNjQyMEUyMTJEQ0UyRkYwMENBQUUyQyAv
KiBTaGFyZWFibGVCaXRtYXAuY3BwICovLAogCQkJCTFBNjQyMEUzMTJEQ0UyRkYwMENBQUUyQyAv
KiBTaGFyZWFibGVCaXRtYXAuaCAqLywKKwkJCQk1MjcyQjI4ODE0MDY5ODVEMDA5NkE1RDAgLyog
U3RhdGlzdGljc0RhdGEuY3BwICovLAorCQkJCTUyNzJCMjg5MTQwNjk4NUQwMDk2QTVEMCAvKiBT
dGF0aXN0aWNzRGF0YS5oICovLAogCQkJCUJDQkQzQzNBMTI1QkZBN0EwMEQyQzI5RiAvKiBTdHJp
bmdQYWlyVmVjdG9yLmggKi8sCiAJCQkJMUE1RTREQTMxMkQzQkQzRDAwOTlBMkJCIC8qIFRleHRD
aGVja2VyU3RhdGUuaCAqLywKIAkJCQkxQTY0MjQ1RDEyREUyOUExMDBDQUFFMkMgLyogVXBkYXRl
SW5mby5jcHAgKi8sCkBAIC0yMjMyLDYgKzIyNDYsOCBAQAogCQkJCUJDMzA2ODIyMTI1QTZCOTQw
MEU3MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJRjYzNDQ0
NTUxMkE4ODVDODAwMDYxMkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggKi8sCiAJCQkJQTcyRDVE
N0YxMjM2Q0JBODAwQTg4QjE1IC8qIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovLAorCQkJ
CTUyNzJCMjdGMTQwNjk1QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmNwcCAqLywKKwkJCQk1
MjcyQjI4MDE0MDY5NUI4MDA5NkE1RDAgLyogV2ViU3RhdGlzdGljcy5oICovLAogCQkJCUJDRjA0
QzhFMTFGRjlGNkUwMEY4NkE1OCAvKiBXZWJTdHJpbmcuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1
MUI2MDA4RkY0RjQgLyogV2ViVG91Y2hFdmVudC5jcHAgKi8sCiAJCQkJQkNEQjg2QzAxMjAwRkI5
NzAwNzI1NEJFIC8qIFdlYlVSTC5oICovLApAQCAtMzIyOCw2ICszMjQ0LDggQEAKIAkJCQlCQzQw
NzVFODEyNEZGMDI3MDA2OEYyMEEgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLywKIAkJ
CQlGNjdERDdCOTEyNUU0MEQ5MDA3QkRDQjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2
YXRlLmggKi8sCiAJCQkJQkNEREIzMkExMjRFQzJBQjAwNDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2Fz
dC5oICovLAorCQkJCTUyNzJCMjg0MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuY3Bw
ICovLAorCQkJCTUyNzJCMjg1MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuaCAqLywK
IAkJCQlCQzQwNzVFOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuY3BwICovLAogCQkJCUJD
NDA3NUVBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5oICovLAogCQkJCUJDOTA5OTdGMTI1
NkE5ODIwMDA4Mzc1NiAvKiBXS1N0cmluZ1ByaXZhdGUuaCAqLywKQEAgLTM4MjIsNiArMzg0MCw5
IEBACiAJCQkJMUEzRDYxMDIxM0E3Q0MyQTAwRjk1RDRFIC8qIFBsdWdpbk1vZHVsZUluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCTVENTE4NDU2MTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRU
cmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOUZCQThEMTNGRjA0RTYwMERFRUQ2NyAvKiBQ
bHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyNzJCMjgy
MTQwNjk1QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MjcyQjI4NzE0MDY5ODE5MDA5NkE1RDAgLyogV0tTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MjcyQjI4QjE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtNDQ4OSw2ICs0NTEwLDkgQEAKIAkJCQkxQTNENjEwMTEzQTdDQzJBMDBGOTVE
NEUgLyogUGx1Z2luTW9kdWxlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTNENjEwNTEz
QTdGMDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUQ1MTg0NTUxM0JDRjlDQzAwQzdGRjRBIC8qIEFQSUNsaWVudFRyYWl0cy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk1MjcyQjI4MTE0MDY5NUI4MDA5NkE1RDAgLyogV2ViU3RhdGlzdGljcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1MjcyQjI4NjE0MDY5ODE5MDA5NkE1RDAgLyogV0tTdGF0aXN0
aWNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyNzJCMjhBMTQwNjk4NUQwMDk2QTVEMCAvKiBT
dGF0aXN0aWNzRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAi
U3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1h
bmFnZXIuaCIKQEAgLTgxNiw2ICs4MTcsMTUgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhclBsdWdp
blNpdGVEYXRhKGNvbgogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4
dDo6RGlkQ2xlYXJQbHVnaW5TaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CiB9CiAjZW5kaWYKKyAg
ICAKK3ZvaWQgV2ViUHJvY2Vzczo6Z2V0V2ViQ29yZVN0YXRpc3RpY3ModWludDY0X3QgY2FsbGJh
Y2tJRCkKK3sKKyAgICBTdGF0aXN0aWNzRGF0YSBkYXRhOworICAgIAorICAgIC8vIEZJWE1FOiBH
YXRoZXIgcGVyZm9ybWFuY2UgZGF0YS4KKyAgICAKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OldlYkNvbnRleHQ6OkRpZEdldFdlYkNvcmVTdGF0aXN0aWNzKGRhdGEsIGNhbGxiYWNr
SUQpLCAwKTsKK30KIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vz
czo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKQpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDk0MDE1KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE3Niw2ICsxNzYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQodWludDY0
X3QgZG93bmxvYWRJRCk7CiAKICAgICB2b2lkIHNldFRleHRDaGVja2VyU3RhdGUoY29uc3QgVGV4
dENoZWNrZXJTdGF0ZSYpOworICAgIAorICAgIHZvaWQgZ2V0V2ViQ29yZVN0YXRpc3RpY3ModWlu
dDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICAvLyBDaGlsZFByb2Nlc3MKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVGVybWluYXRlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNjcsNCArNjcsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIHsKICAgICBTZXRUZXh0Q2hl
Y2tlclN0YXRlKFdlYktpdDo6VGV4dENoZWNrZXJTdGF0ZSB0ZXh0Q2hlY2tlclN0YXRlKQogCiAg
ICAgU2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKKworICAgIEdldFdlYkNvcmVT
dGF0aXN0aWNzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNTU5LDYgKzU1OSwxNCBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcU3RhdGlzdGljc0Rh
dGEuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcU3RhdGlzdGljc0RhdGEuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFN0cmluZ1BhaXJWZWN0b3IuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CkBAIC03NTUsNiArNzYzLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJTdGF0aXN0aWNzLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYlN0
YXRpc3RpY3MuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXFdlYlN0cmluZy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTk0Miw2ICs5
NTgsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFNoYXJlZFxBUElcY1xXS1N0YXRpc3RpY3MuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLU3RhdGlz
dGljcy5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXEFQSVxjXFdLU3RyaW5nLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105580</attachid>
            <date>2011-08-29 22:45:19 -0700</date>
            <delta_ts>2011-08-30 12:56:14 -0700</delta_ts>
            <desc>First patch which just lays the groundwork to fetch performance statistics from WebProcess.</desc>
            <filename>67160-1.patch.txt</filename>
            <type>text/plain</type>
            <size>36519</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MDM3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDgtMjkgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTGF5aW5nIHNvbWUgZ3JvdW5kd29yayB0
byBmZXRjaCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIGZyb20gV2ViUHJvY2Vzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBmaWxlcyB0byBw
cm9qZWN0LgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKKyAgICAg
ICAgSGFuZGxlIHRoZSBhZGRpbmcgb2YgbmV3IHR5cGVzIFN0YXRpc3RpY3NEYXRhLCBXZWJTdGF0
aXN0aWNzLCBhbmQgV0tTdGF0aXN0aWNzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hh
cmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoK
KworICAgICAgICBBZGQgV0tDb250ZXh0R2V0U3RhdGlzdGljcygpIHdoaWNoIHNlbmRzIGEgbWVz
c2FnZSB0byBXZWJQcm9jZXNzIHRvIGZldGNoIHRoZSBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250
ZXh0R2V0U3RhdGlzdGljcyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29udGV4dDo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpkaWRHZXRXZWJDb3JlU3RhdGlzdGljcyk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbjog
QWRkIHRoZSBEaWRHZXRXZWJDb3JlU3RhdGlzdGljcyBtZXNzYWdlIHRoYXQgV2ViUHJvY2VzcyBj
YW4gc2VuZCB3aGVuIGl0IGhhcworICAgICAgICB0aGUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyBy
ZWFkeS4KKworICAgICAgICBBZGQgV2ViUHJvY2Vzczo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKS4g
IEN1cnJlbnRseSBpdCBqdXN0IHNlbmRzIGJhY2sgYW4gZW1wdHkgU3RhdGlzdGljc0RhdGEgb2Jq
ZWN0LgorICAgICAgICBJdCB3aWxsIGdhdGhlciB0aGUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcyB0
byBzdG9yZSBpbiB0aGUgU3RhdGlzdGljc0RhdGEgb2JqZWN0IGluIGEgZnV0dXJlIHBhdGNoLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmdldFdlYkNvcmVTdGF0aXN0aWNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisKKyAgICAgICAgQWRkIHRoZSBza2VsZXRvbiBmb3IgU3RhdGlzdGljc0RhdGEsIFdlYlN0YXRp
c3RpY3MsIGFuZCBXS1N0YXRpc3RpY3MuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RhdGlz
dGljcy5jcHA6IEFkZGVkLgorICAgICAgICAoV0tTdGF0aXN0aWNzR2V0VHlwZUlEKToKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTdGF0aXN0aWNz
RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U3RhdGlzdGljc0RhdGE6OmRlY29kZSk6
CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjpTdGF0aXN0aWNzRGF0YSk6CisgICAg
ICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9X
ZWJTdGF0aXN0aWNzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlN0YXRpc3RpY3M6
OldlYlN0YXRpc3RpY3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJTdGF0aXN0aWNzOjp+V2ViU3Rh
dGlzdGljcyk6CisgICAgICAgICogU2hhcmVkL1dlYlN0YXRpc3RpY3MuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlN0YXRpc3RpY3M6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlN0YXRpc3RpY3M6OnR5cGUpOgorCiAyMDExLTA4LTI5ICBHb3BhbCBSYWdoYXZhbiAgPGdvcGFs
LjEucmFnaGF2YW5Abm9raWEuY29tPgogCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9B
UEkvYy9XS051bWJlci5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tTZWN1cml0eU9yaWdpbi5jcHAK
ICAgICBTaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisgICAgU2hhcmVk
L0FQSS9jL1dLU3RhdGlzdGljcy5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwCiAg
ICAgU2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAKICAgICBTaGFyZWQvQVBJL2MvV0tVUkwuY3BwCkBA
IC0xNTAsNiArMTUxLDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogCiAgICAgU2hhcmVkL1NlY3Vy
aXR5T3JpZ2luRGF0YS5jcHAKICAgICBTaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAorICAgIFNoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5jcHAKICAgICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFy
ZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAKICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRl
bS5jcHAKQEAgLTE3MCw2ICsxNzIsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVk
L1dlYlBvcHVwSXRlbS5jcHAKICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKICAg
ICBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKyAgICBTaGFyZWQvV2Vi
U3RhdGlzdGljcy5jcHAKICAgICBTaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAKICAgICBTaGFyZWQv
V2ViVVJMUmVxdWVzdC5jcHAKICAgICBTaGFyZWQvV2ViVVJMUmVzcG9uc2UuY3BwCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQCBsaWJ3ZWJraXQyZ3Rr
X0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oIFwKKwkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS1N0YXRpc3RpY3Mu
aCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJJChXZWJLaXQyKS9T
aGFyZWQvQVBJL2MvV0tTdHJpbmdQcml2YXRlLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9j
L1dLVHlwZS5oIFwKQEAgLTIzNyw2ICsyMzgsOCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtf
QVBJX01BSk9SX1ZFUlNJCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdGF0aXN0
aWNzLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RhdGlzdGljcy5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLU3RyaW5nUHJpdmF0ZS5oIFwKQEAgLTMxNiw2ICszMTksOCBAQCBsaWJ3ZWJraXQyZ3Rr
X0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3Vy
aXR5T3JpZ2luRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Vzc2lvblN0YXRlLmggXAorCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZl
Y3Rvci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVGV4dENoZWNrZXJTdGF0ZS5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBcCkBAIC0zNjUsNiArMzcw
LDggQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSQogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJTdGF0aXN0aWNzLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0YXRpc3RpY3Mu
aCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0cmluZy5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJV
UkwuaCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFNoYXJlZC9TYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIFwKICAgICBT
aGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggXAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUuaCBc
CisgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggXAogICAgIFNoYXJlZC9TdHJpbmdQYWlyVmVj
dG9yLmggXAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmggXAogICAgIFNoYXJlZC9Vc2VyTWVzc2Fn
ZUNvZGVycy5oIFwKQEAgLTE1OSw2ICsxNjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQv
V2ViUG9wdXBJdGVtLmggXAogICAgIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggXAogICAg
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggXAorICAgIFNoYXJlZC9XZWJT
dGF0aXN0aWNzLmggXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1ZXN0LmggXAogICAgIFNoYXJlZC9X
ZWJVUkxSZXNwb25zZS5oIFwKICAgICBTaGFyZWQvV2ViVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
XApAQCAtMzY4LDYgKzM3MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9QcmludEluZm8u
Y3BwIFwKICAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBcCiAgICAgU2hhcmVkL1Nl
c3Npb25TdGF0ZS5jcHAgXAorICAgIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAgXAogICAgIFNo
YXJlZC9VcGRhdGVJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuY3BwIFwK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXApAQCAtMzg5LDYgKzM5Miw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwIFwKICAgICBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgXAogICAgIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBcCisgICAgU2hhcmVkL1dlYlN0YXRpc3RpY3MuY3BwIFwKICAgICBT
aGFyZWQvV2ViVG91Y2hFdmVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1ZXN0LmNwcCBc
CiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQkod29ya2luZyBjb3B5KQpAQCAtMjg1
LDYgKzI4NSw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAg
ICAgJ1dlYktpdDo6UGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycycsCiAgICAgICAgICdX
ZWJLaXQ6OlByaW50SW5mbycsCiAgICAgICAgICdXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YScs
CisgICAgICAgICdXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhJywKICAgICAgICAgJ1dlYktpdDo6VGV4
dENoZWNrZXJTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OldlYk5hdmlnYXRpb25EYXRhU3RvcmUn
LAogICAgICAgICAnV2ViS2l0OjpXZWJPcGVuUGFuZWxQYXJhbWV0ZXJzOjpEYXRhJywKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBA
IHB1YmxpYzoKICAgICAgICAgVHlwZVBhZ2VHcm91cCwKICAgICAgICAgVHlwZVBsdWdpblNpdGVE
YXRhTWFuYWdlciwKICAgICAgICAgVHlwZVByZWZlcmVuY2VzLAorICAgICAgICBUeXBlU3RhdGlz
dGljcywKIAogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgVHlwZUJ1bmRsZSwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBTdGF0aXN0aWNzRGF0YTo6ZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3sKKyAgICAvLyBGSVhN
RTogVG8gYmUgaW1wbGVtZW50ZWQuCit9CisKK2Jvb2wgU3RhdGlzdGljc0RhdGE6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFN0YXRpc3RpY3NEYXRhJiBzdGF0aXN0
aWNzRGF0YSkKK3sKKyAgICAvLyBGSVhNRTogVG8gYmUgaW1wbGVtZW50ZWQuCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK1N0YXRpc3RpY3NEYXRhOjpTdGF0aXN0aWNzRGF0YSgpCit7ICAgIAorICAg
IC8vIEZJWE1FOiBUbyBiZSBpbXBsZW1lbnRlZC4KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTdGF0aXN0aWNzRGF0YV9oCisj
ZGVmaW5lIFN0YXRpc3RpY3NEYXRhX2gKKworI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgor
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Ry
dWN0IFN0YXRpc3RpY3NEYXRhIHsKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKiwgU3RhdGlzdGljc0RhdGEmKTsKKyAgICAKKyAgICBTdGF0aXN0aWNzRGF0YSgpOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBTdGF0aXN0aWNzRGF0YV9o
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RhdGlzdGljcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYlN0YXRpc3RpY3MuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlN0YXRp
c3RpY3M6OldlYlN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRh
KQorICAgIDogbV9zdGF0aXN0aWNzRGF0YShzdGF0aXN0aWNzRGF0YSkKK3sKK30KKworV2ViU3Rh
dGlzdGljczo6fldlYlN0YXRpc3RpY3MoKQoreyAgICAKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RhdGlzdGljcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU3RhdGlzdGljcy5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTdGF0aXN0aWNzX2gKKyNk
ZWZpbmUgV2ViU3RhdGlzdGljc19oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRl
ICJTdGF0aXN0aWNzRGF0YS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKyAgICAKK2NsYXNzIFdl
YlN0YXRpc3RpY3MgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29u
c3QgVHlwZSBBUElUeXBlID0gVHlwZVN0YXRpc3RpY3M7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJTdGF0aXN0aWNzPiBjcmVhdGUoY29uc3QgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NE
YXRhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTdGF0aXN0aWNzKHN0
YXRpc3RpY3NEYXRhKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+V2ViU3RhdGlzdGljcygpOwor
Citwcml2YXRlOgorICAgIFdlYlN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmKTsKKwor
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorICAgIAor
ICAgIFN0YXRpc3RpY3NEYXRhIG1fc3RhdGlzdGljc0RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlN0YXRpc3RpY3NfaApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAgdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlR3JvdXAqIAogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJl
bmNlc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJvdGVjdGlvblNwYWNlKiBX
S1Byb3RlY3Rpb25TcGFjZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3RhdGlz
dGljcyogV0tTdGF0aXN0aWNzUmVmOwogCiAvKiBXZWJLaXQyIEJ1bmRsZSB0eXBlcyAqLwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0YXRpc3RpY3MuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLU3RhdGlzdGljcy5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisjaW5jbHVkZSAiV2ViU3RhdGlzdGljcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS1N0YXRpc3RpY3NHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQ
SShXZWJTdGF0aXN0aWNzOjpBUElUeXBlKTsKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS1N0YXRpc3RpY3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tTdGF0aXN0aWNzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdLU3RhdGlzdGljc19oCisjZGVmaW5lIFdLU3RhdGlzdGlj
c19oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMK
K2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1N0YXRpc3RpY3NH
ZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8q
IFdLU3RhdGlzdGljc19oICovCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIldl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJTdGF0aXN0
aWNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KQEAgLTE4MSw2ICsxODIs
OCBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHktPmludmFsaWRhdGUoKTsKICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkt
PmNsZWFyQ29udGV4dCgpOworICAgIAorICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX3N0YXRp
c3RpY3NDYWxsYmFja3MpOwogCiAgICAgcGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogICAg
IApAQCAtNzg1LDQgKzc4OCwyNSBAQCBib29sIFdlYkNvbnRleHQ6Omh0dHBQaXBlbGluaW5nRW5h
YmxlZCgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGlj
cyhQYXNzUmVmUHRyPFN0YXRpc3RpY3NDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVm
UHRyPFN0YXRpc3RpY3NDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKyAgICAKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX3N0
YXRpc3RpY3NDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKKyAgICBw
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdldFdlYkNvcmVTdGF0aXN0aWNz
KGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJDb250ZXh0OjpkaWRHZXRXZWJDb3JlU3Rh
dGlzdGljcyhjb25zdCBTdGF0aXN0aWNzRGF0YSYgc3RhdGlzdGljc0RhdGEsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpCit7CisgICAgUmVmUHRyPFN0YXRpc3RpY3NDYWxsYmFjaz4gY2FsbGJhY2sgPSBt
X3N0YXRpc3RpY3NDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAgICBpZiAoIWNhbGxiYWNr
KSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0LgorICAgICAgICByZXR1
cm47CisgICAgfQorICAgICAKKyAgICBSZWZQdHI8V2ViU3RhdGlzdGljcz4gc3RhdGlzdGljcyA9
IFdlYlN0YXRpc3RpY3M6OmNyZWF0ZShzdGF0aXN0aWNzRGF0YSk7CisgICAgY2FsbGJhY2stPnBl
cmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShzdGF0aXN0aWNzLmdldCgpKTsKK30KKyAgICAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5oCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2ViQ29u
dGV4dF9oCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQcm9jZXNzTW9k
ZWwuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1Byb3ZpZGVyLmgiCkBAIC01NSw3ICs1NiwxMCBA
QCBjbGFzcyBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwog
Y2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsK
K3N0cnVjdCBTdGF0aXN0aWNzRGF0YTsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOworICAgIAordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tTdGF0aXN0aWNzUmVmPiBTdGF0
aXN0aWNzQ2FsbGJhY2s7CiAKIGNsYXNzIFdlYkNvbnRleHQgOiBwdWJsaWMgQVBJT2JqZWN0IHsK
IHB1YmxpYzoKQEAgLTE3NSw2ICsxNzksOCBAQCBwdWJsaWM6CiAgICAgLy8gRGVmYXVsdHMgdG8g
ZmFsc2UuCiAgICAgdm9pZCBzZXRIVFRQUGlwZWxpbmluZ0VuYWJsZWQoYm9vbCk7CiAgICAgYm9v
bCBodHRwUGlwZWxpbmluZ0VuYWJsZWQoKTsKKyAgICAKKyAgICB2b2lkIGdldFdlYkNvcmVTdGF0
aXN0aWNzKFBhc3NSZWZQdHI8U3RhdGlzdGljc0NhbGxiYWNrPik7CiAKIHByaXZhdGU6CiAgICAg
V2ViQ29udGV4dChQcm9jZXNzTW9kZWwsIGNvbnN0IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRo
KTsKQEAgLTE5Nyw2ICsyMDMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRo
UGx1Z2luRGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogICAgIHZvaWQgZGlkQ2xlYXJQbHVnaW5TaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lE
KTsKICNlbmRpZgorICAgIAorICAgIHZvaWQgZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoY29uc3Qg
U3RhdGlzdGljc0RhdGEmLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICAgICAgCiAgICAgLy8g
SW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwCiAg
ICAgdm9pZCBkaWRSZWNlaXZlV2ViQ29udGV4dE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CkBAIC0yNzAs
NiArMjc4LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9vdmVycmlkZUxvY2FsU3RvcmFnZURp
cmVjdG9yeTsKIAogICAgIGJvb2wgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkOworICAgIAor
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTdGF0aXN0aWNzQ2FsbGJhY2s+ID4gbV9zdGF0
aXN0aWNzQ2FsbGJhY2tzOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIGJvb2wg
V2ViQ29udGV4dDo6c2VuZFRvQWxsUHJvY2Vzc2VzKGNvbnN0IFUmIG1lc3NhZ2UpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNzYWdlcy5pbgkocmV2
aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNDAsNCArNDAsNiBAQCBtZXNzYWdlcyAtPiBXZWJD
b250ZXh0IHsKICAgICB2b2lkIERpZENsZWFyUGx1Z2luU2l0ZURhdGEodWludDY0X3QgY2FsbGJh
Y2tJRCkKICNlbmRpZgogCisgICAgRGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoV2ViS2l0OjpTdGF0
aXN0aWNzRGF0YSBzdGF0aXN0aWNzRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKKwogfQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24g
OTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJXS1Byb3RlY3Rpb25TcGFj
ZVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIgogI2luY2x1ZGUg
IldLU2hhcmVkQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLU3RhdGlzdGljcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CkBAIC03Niw2ICs3Nyw3IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlcjsKIGNsYXNz
IFdlYlByZWZlcmVuY2VzOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNlOworY2xhc3MgV2ViU3Rh
dGlzdGljczsKIAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJS
ZWYsIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkco
V0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eSkKQEAgLTEwNSw2ICsxMDcsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tQYWdlUmVmLCBXZWJQ
YWdlUHJvCiBXS19BRERfQVBJX01BUFBJTkcoV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYsIFdl
YlBsdWdpblNpdGVEYXRhTWFuYWdlcikKIFdLX0FERF9BUElfTUFQUElORyhXS1ByZWZlcmVuY2Vz
UmVmLCBXZWJQcmVmZXJlbmNlcykKIFdLX0FERF9BUElfTUFQUElORyhXS1Byb3RlY3Rpb25TcGFj
ZVJlZiwgV2ViUHJvdGVjdGlvblNwYWNlKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLU3RhdGlzdGlj
c1JlZiwgV2ViU3RhdGlzdGljcykKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHJldmlzaW9uIDk0MDE1
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIzMiwzICsyMzIsOCBAQCB2b2lkIFdLQ29udGV4dFdhcm1Jbml0aWFsUHJv
Y2VzcyhXS0NvbnRlCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT53YXJtSW5pdGlhbFByb2Nlc3Mo
KTsKIH0KIAordm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzKFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmLCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gY2FsbGJhY2ssIHZvaWQqIGNvbnRl
eHQpCit7CisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5nZXRXZWJDb3JlU3RhdGlzdGljcyhTdGF0
aXN0aWNzQ2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBjYWxsYmFjaykpOyAgICAKK30KKwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkocmV2aXNpb24g
OTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsOSBAQCBXS19FWFBPUlQgV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyUmVmIFdLCiBXS19FWFBPUlQgV0tNZWRpYUNhY2hlTWFuYWdlclJlZiBXS0NvbnRl
eHRHZXRNZWRpYUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQg
V0tQbHVnaW5TaXRlRGF0YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Jlc291cmNlQ2FjaGVNYW5h
Z2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKKyAgICAKK3R5cGVkZWYgdm9pZCAoKldLQ29udGV4dEdldFN0YXRpc3RpY3NGdW5jdGlv
bikoV0tTdGF0aXN0aWNzUmVmIHN0YXRpc3RpY3MsIFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqIGZ1
bmN0aW9uQ29udGV4dCk7CitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzKFdL
Q29udGV4dFJlZiBjb250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24gZnVuY3Rp
b24sIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM4NSw2ICszODUsMTIgQEAKIAkJNTFE
MTMwNTUxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEMTMwNTExMzgyRUFDMDAw
MzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwICovOyB9OwogCQk1MUQxMzA1NjEzODJF
QUMwMDAzNTFFREQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEMTMwNTIxMzgyRUFDMDAwMzUxRUREIC8qIFNl
Y0l0ZW1SZXNwb25zZURhdGEuaCAqLzsgfTsKIAkJNTFEMTMwNTgxMzgyRjEwNTAwMzUxRUREIC8q
IFdlYlByb2Nlc3NQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxRDEzMDU3MTM4MkYxMDUwMDM1MUVERCAvKiBXZWJQcm9jZXNzUHJveHlN
YWMubW0gKi87IH07CisJCTUyNzJCMjgxMTQwNjk1QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJC
MjdGMTQwNjk1QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmNwcCAqLzsgfTsKKwkJNTI3MkIy
ODIxNDA2OTVCODAwOTZBNUQwIC8qIFdlYlN0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjgwMTQwNjk1QjgwMDk2QTVEMCAvKiBX
ZWJTdGF0aXN0aWNzLmggKi87IH07CisJCTUyNzJCMjg2MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0
YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTI3MkIyODQxNDA2OTgxOTAwOTZBNUQwIC8qIFdLU3RhdGlzdGljcy5jcHAgKi87IH07CisJ
CTUyNzJCMjg3MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjg1MTQwNjk4MTkwMDk2QTVE
MCAvKiBXS1N0YXRpc3RpY3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMs
ICk7IH07IH07CisJCTUyNzJCMjhBMTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjcyQjI4
ODE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuY3BwICovOyB9OworCQk1MjcyQjI4
QjE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjg5MTQwNjk4NUQwMDk2QTVEMCAvKiBT
dGF0aXN0aWNzRGF0YS5oICovOyB9OwogCQk1RDUxODQ1NTEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJ
Q2xpZW50VHJhaXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVENTE4NDUzMTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMuY3BwICov
OyB9OwogCQk1RDUxODQ1NjEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDUxODQ1NDEzQkNG
OUNDMDBDN0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmggKi87IH07CiAJCTY1MDFCRDFBMTJGMTI0
MzQwMEU5RjI0OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEgLyogV0tC
dW5kbGVJbnNwZWN0b3IuY3BwICovOyB9OwpAQCAtMTMxNiw2ICsxMzIyLDEyIEBACiAJCTUxRDEz
MDUxMTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVzcG9uc2VEYXRhLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MUQxMzA1MjEzODJFQUMwMDAzNTFFREQgLyogU2Vj
SXRlbVJlc3BvbnNlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWNJ
dGVtUmVzcG9uc2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRDEzMDU3
MTM4MkYxMDUwMDM1MUVERCAvKiBXZWJQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzUHJveHlNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNzJCMjdGMTQwNjk1QjgwMDk2QTVEMCAvKiBXZWJTdGF0
aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlN0YXRp
c3RpY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjcyQjI4MDE0MDY5NUI4
MDA5NkE1RDAgLyogV2ViU3RhdGlzdGljcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTdGF0aXN0aWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNzJC
Mjg0MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTI3MkIyODUxNDA2OTgxOTAwOTZBNUQwIC8qIFdLU3RhdGlzdGljcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1N0YXRpc3RpY3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI3MkIyODgxNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3Rp
Y3NEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRpc3Rp
Y3NEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI3MkIyODkxNDA2OTg1
RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0YXRpc3RpY3NEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVE
NTE4NDUzMTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJQ2xpZW50VHJhaXRzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ1MTg0NTQxM0JDRjlDQzAwQzdGRjRBIC8qIEFQSUNsaWVu
dFRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDbGllbnRUcmFp
dHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcyOTQxMTZGRjcwQjAwRUU1
Mzk2IC8qIFdlYlByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gV2ViUHJvY2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIx
ODEsNiArMjE5Myw4IEBACiAJCQkJNTE4RDJDQzkxMkQ1MURGQjAwM0JCOTNCIC8qIFNlc3Npb25T
dGF0ZS5oICovLAogCQkJCTFBNjQyMEUyMTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRt
YXAuY3BwICovLAogCQkJCTFBNjQyMEUzMTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRt
YXAuaCAqLywKKwkJCQk1MjcyQjI4ODE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEu
Y3BwICovLAorCQkJCTUyNzJCMjg5MTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5o
ICovLAogCQkJCUJDQkQzQzNBMTI1QkZBN0EwMEQyQzI5RiAvKiBTdHJpbmdQYWlyVmVjdG9yLmgg
Ki8sCiAJCQkJMUE1RTREQTMxMkQzQkQzRDAwOTlBMkJCIC8qIFRleHRDaGVja2VyU3RhdGUuaCAq
LywKIAkJCQkxQTY0MjQ1RDEyREUyOUExMDBDQUFFMkMgLyogVXBkYXRlSW5mby5jcHAgKi8sCkBA
IC0yMjMyLDYgKzIyNDYsOCBAQAogCQkJCUJDMzA2ODIyMTI1QTZCOTQwMEU3MTI3OCAvKiBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJRjYzNDQ0NTUxMkE4ODVDODAwMDYx
MkQ4IC8qIFdlYlNlY3VyaXR5T3JpZ2luLmggKi8sCiAJCQkJQTcyRDVEN0YxMjM2Q0JBODAwQTg4
QjE1IC8qIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovLAorCQkJCTUyNzJCMjdGMTQwNjk1
QjgwMDk2QTVEMCAvKiBXZWJTdGF0aXN0aWNzLmNwcCAqLywKKwkJCQk1MjcyQjI4MDE0MDY5NUI4
MDA5NkE1RDAgLyogV2ViU3RhdGlzdGljcy5oICovLAogCQkJCUJDRjA0QzhFMTFGRjlGNkUwMEY4
NkE1OCAvKiBXZWJTdHJpbmcuaCAqLywKIAkJCQlDMDMzN0RENzEyN0E1MUI2MDA4RkY0RjQgLyog
V2ViVG91Y2hFdmVudC5jcHAgKi8sCiAJCQkJQkNEQjg2QzAxMjAwRkI5NzAwNzI1NEJFIC8qIFdl
YlVSTC5oICovLApAQCAtMzIyOCw2ICszMjQ0LDggQEAKIAkJCQlCQzQwNzVFODEyNEZGMDI3MDA2
OEYyMEEgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLywKIAkJCQlGNjdERDdCOTEyNUU0
MEQ5MDA3QkRDQjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggKi8sCiAJCQkJ
QkNEREIzMkExMjRFQzJBQjAwNDhEMTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oICovLAorCQkJCTUy
NzJCMjg0MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuY3BwICovLAorCQkJCTUyNzJC
Mjg1MTQwNjk4MTkwMDk2QTVEMCAvKiBXS1N0YXRpc3RpY3MuaCAqLywKIAkJCQlCQzQwNzVFOTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tTdHJpbmcuY3BwICovLAogCQkJCUJDNDA3NUVBMTI0RkYwMjcw
MDY4RjIwQSAvKiBXS1N0cmluZy5oICovLAogCQkJCUJDOTA5OTdGMTI1NkE5ODIwMDA4Mzc1NiAv
KiBXS1N0cmluZ1ByaXZhdGUuaCAqLywKQEAgLTM4MjIsNiArMzg0MCw5IEBACiAJCQkJMUEzRDYx
MDIxM0E3Q0MyQTAwRjk1RDRFIC8qIFBsdWdpbk1vZHVsZUluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTVENTE4NDU2MTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBOUZCQThEMTNGRjA0RTYwMERFRUQ2NyAvKiBQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyNzJCMjgyMTQwNjk1QjgwMDk2QTVE
MCAvKiBXZWJTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MjcyQjI4NzE0MDY5ODE5
MDA5NkE1RDAgLyogV0tTdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MjcyQjI4QjE0
MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDQ4
OSw2ICs0NTEwLDkgQEAKIAkJCQkxQTNENjEwMTEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9k
dWxlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTNENjEwNTEzQTdGMDNBMDBGOTVENEUg
LyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ1MTg0NTUxM0JDRjlD
QzAwQzdGRjRBIC8qIEFQSUNsaWVudFRyYWl0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1Mjcy
QjI4MTE0MDY5NUI4MDA5NkE1RDAgLyogV2ViU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MjcyQjI4NjE0MDY5ODE5MDA5NkE1RDAgLyogV0tTdGF0aXN0aWNzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTUyNzJCMjhBMTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIlJ1bkxvb3AuaCIK
ICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEu
aCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oIgogI2luY2x1ZGUgIldl
YkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXIuaCIKQEAgLTgx
Niw2ICs4MTcsMTUgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhclBsdWdpblNpdGVEYXRhKGNvbgog
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViQ29udGV4dDo6RGlkQ2xlYXJQbHVn
aW5TaXRlRGF0YShjYWxsYmFja0lEKSwgMCk7CiB9CiAjZW5kaWYKKyAgICAKK3ZvaWQgV2ViUHJv
Y2Vzczo6Z2V0V2ViQ29yZVN0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBT
dGF0aXN0aWNzRGF0YSBkYXRhOworICAgIAorICAgIC8vIEZJWE1FOiBHYXRoZXIgcGVyZm9ybWFu
Y2UgZGF0YS4KKyAgICAKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRl
eHQ6OkRpZEdldFdlYkNvcmVTdGF0aXN0aWNzKGRhdGEsIGNhbGxiYWNrSUQpLCAwKTsKK30KIAog
I2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzczo6cGx1Z2luUHJvY2Vz
c0NyYXNoZWQoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKQpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw2ICsxNzYsOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQodWludDY0X3QgZG93bmxvYWRJRCk7
CiAKICAgICB2b2lkIHNldFRleHRDaGVja2VyU3RhdGUoY29uc3QgVGV4dENoZWNrZXJTdGF0ZSYp
OworICAgIAorICAgIHZvaWQgZ2V0V2ViQ29yZVN0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJ
RCk7CiAKICAgICAvLyBDaGlsZFByb2Nlc3MKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVGVybWlu
YXRlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNjcsNCArNjcsNiBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIHsKICAgICBTZXRUZXh0Q2hlY2tlclN0YXRlKFdlYktp
dDo6VGV4dENoZWNrZXJTdGF0ZSB0ZXh0Q2hlY2tlclN0YXRlKQogCiAgICAgU2V0RW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5KGJvb2wgZmxhZykKKworICAgIEdldFdlYkNvcmVTdGF0aXN0aWNzKHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZp
c2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNTU5LDYgKzU1OSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcU3RhdGlzdGljc0RhdGEuY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcU3RhdGlz
dGljc0RhdGEuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXFN0cmluZ1BhaXJWZWN0b3IuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC03
NTUsNiArNzYzLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFNoYXJlZFxXZWJTdGF0aXN0aWNzLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYlN0YXRpc3RpY3MuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdl
YlN0cmluZy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTk0Miw2ICs5NTgsMTQgQEAKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxB
UElcY1xXS1N0YXRpc3RpY3MuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLU3RhdGlzdGljcy5oIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQ
SVxjXFdLU3RyaW5nLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>
<flag name="review"
          id="101788"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105675</attachid>
            <date>2011-08-30 12:56:14 -0700</date>
            <delta_ts>2011-08-30 13:33:46 -0700</delta_ts>
            <desc>First patch which just lays the groundwork to fetch performance statistics from WebProcess.</desc>
            <filename>67160-2.patch.txt</filename>
            <type>text/plain</type>
            <size>20282</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MDk2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDgtMzAgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTGF5aW5nIHNvbWUgZ3JvdW5kd29yayB0
byBmZXRjaCBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIGZyb20gV2ViUHJvY2Vzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTYwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdLQ29udGV4dEdldFN0
YXRpc3RpY3MoKSB3aGljaCBzZW5kcyBhIG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyB0byBmZXRjaCB0
aGUgcGVyZm9ybWFuY2Ugc3RhdGlzdGljcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dEdldFN0YXRpc3RpY3MpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6On5XZWJDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRHZXRXZWJDb3JlU3RhdGlzdGljcyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4
dC5tZXNzYWdlcy5pbjogQWRkIHRoZSBEaWRHZXRXZWJDb3JlU3RhdGlzdGljcyBtZXNzYWdlIHRo
YXQgV2ViUHJvY2VzcyBjYW4gc2VuZCB3aGVuIGl0IGhhcworICAgICAgICB0aGUgcGVyZm9ybWFu
Y2Ugc3RhdGlzdGljcyByZWFkeS4KKworICAgICAgICBBZGQgV2ViUHJvY2Vzczo6Z2V0V2ViQ29y
ZVN0YXRpc3RpY3MoKS4gIEN1cnJlbnRseSBpdCBqdXN0IHNlbmRzIGJhY2sgYW4gZW1wdHkgU3Rh
dGlzdGljc0RhdGEgb2JqZWN0LgorICAgICAgICBJdCB3aWxsIGdhdGhlciB0aGUgcGVyZm9ybWFu
Y2Ugc3RhdGlzdGljcyB0byBzdG9yZSBpbiB0aGUgU3RhdGlzdGljc0RhdGEgb2JqZWN0IGluIGEg
ZnV0dXJlIHBhdGNoLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmdldFdlYkNvcmVTdGF0aXN0aWNzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW46CisKKyAgICAgICAgQWRkIHRoZSBza2VsZXRvbiBmb3IgU3RhdGlzdGlj
c0RhdGEuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpTdGF0
aXN0aWNzRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U3RhdGlzdGljc0RhdGE6OmRl
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjpTdGF0aXN0aWNzRGF0YSk6
CisgICAgICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6IEFkZGVkLgorCisgICAgICAgIEFk
ZCBTdGF0aXN0aWNzRGF0YS5oL2NwcCB0byBwcm9qZWN0LgorICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYktpdDIucHJvOgor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTEtMDgtMjkgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgRHVtcFJlbmRlclRyZWUgc2hvdWxkIGJlZ2luIGVhY2gg
dGVzdCB3aXRoIGFuIGVtcHR5IGNvb2tpZSBzdG9yZQpJbmRleDogU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTE1MCw2ICsxNTAsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBT
aGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3Bw
CisgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNw
cAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmNwcAogICAgIFNoYXJlZC9XZWJCYWNrRm9y
d2FyZExpc3RJdGVtLmNwcApJbmRleDogU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDk0MDE1
KQorKysgU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMx
Niw2ICszMTYsOCBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJCiAJ
U291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAgXAogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2Vzc2lvblN0YXRlLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5j
cHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvU3RyaW5nUGFpclZlY3Rvci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvVGV4dENoZWNrZXJTdGF0ZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3Nh
Z2VDb2RlcnMuaCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gOTQwMTUpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9TYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIFwK
ICAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggXAogICAgIFNoYXJlZC9TZXNzaW9uU3Rh
dGUuaCBcCisgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmggXAogICAgIFNoYXJlZC9TdHJpbmdQ
YWlyVmVjdG9yLmggXAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmggXAogICAgIFNoYXJlZC9Vc2Vy
TWVzc2FnZUNvZGVycy5oIFwKQEAgLTM2OCw2ICszNjksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBT
aGFyZWQvUHJpbnRJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAg
XAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwIFwKKyAgICBTaGFyZWQvU3RhdGlzdGljc0Rh
dGEuY3BwIFwKICAgICBTaGFyZWQvVXBkYXRlSW5mby5jcHAgXAogICAgIFNoYXJlZC9WaXNpdGVk
TGlua1RhYmxlLmNwcCBcCiAgICAgU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIFwK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkJKHJldmlz
aW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0yODUsNiArMjg1LDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhu
YW1lc3BhY2UsIHR5cGUpOgogICAgICAgICAnV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJywKICAgICAgICAgJ1dlYktpdDo6UHJpbnRJbmZvJywKICAgICAgICAgJ1dlYktp
dDo6U2VjdXJpdHlPcmlnaW5EYXRhJywKKyAgICAgICAgJ1dlYktpdDo6U3RhdGlzdGljc0RhdGEn
LAogICAgICAgICAnV2ViS2l0OjpUZXh0Q2hlY2tlclN0YXRlJywKICAgICAgICAgJ1dlYktpdDo6
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZScsCiAgICAgICAgICdXZWJLaXQ6OldlYk9wZW5QYW5lbFBh
cmFtZXRlcnM6OkRhdGEnLApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0Rh
dGEuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NE
YXRhLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgorCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFN0
YXRpc3RpY3NEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBUbyBiZSBpbXBsZW1lbnRlZC4KK30KKworYm9vbCBTdGF0
aXN0aWNzRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU3Rh
dGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhKQoreworICAgIC8vIEZJWE1FOiBUbyBiZSBpbXBs
ZW1lbnRlZC4KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworU3RhdGlzdGljc0RhdGE6OlN0YXRpc3Rp
Y3NEYXRhKCkKK3sgICAgCisgICAgLy8gRklYTUU6IFRvIGJlIGltcGxlbWVudGVkLgorfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0
aWNzRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNz
RGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NE
YXRhLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFN0YXRpc3RpY3NEYXRhX2gKKyNkZWZpbmUgU3RhdGlzdGljc0RhdGFfaAorCisjaW5jbHVkZSAi
QXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVkZSAiQXJndW1lbnRFbmNvZGVyLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU3RhdGlzdGljc0RhdGEgeworICAgIHZvaWQgZW5jb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciopIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRlY29k
ZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBTdGF0aXN0aWNzRGF0YSYpOworICAgIAorICAg
IFN0YXRpc3RpY3NEYXRhKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFN0YXRpc3RpY3NEYXRhX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNiArMTgxLDggQEAgV2ViQ29udGV4
dDo6fldlYkNvbnRleHQoKQogCiAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5pbnZh
bGlkYXRlKCk7CiAgICAgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQo
KTsKKyAgICAKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9kaWN0aW9uYXJ5Q2FsbGJhY2tz
KTsKIAogICAgIHBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKTsKICAgICAKQEAgLTc4NSw0ICs3
ODcsMjYgQEAgYm9vbCBXZWJDb250ZXh0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKQogI2VuZGlm
CiB9CiAKK3ZvaWQgV2ViQ29udGV4dDo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoUGFzc1JlZlB0cjxE
aWN0aW9uYXJ5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIFJlZlB0cjxEaWN0aW9uYXJ5
Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7CisgICAgCisgICAgdWludDY0X3QgY2Fs
bGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9kaWN0aW9uYXJ5Q2FsbGJh
Y2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7CisgICAgcHJvY2VzcygpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXZWJDb3JlU3RhdGlzdGljcyhjYWxsYmFja0lEKSwg
MCk7Cit9CisKK3ZvaWQgV2ViQ29udGV4dDo6ZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoY29uc3Qg
U3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQorewor
ICAgIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9kaWN0aW9uYXJ5Q2Fs
bGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgaWYgKCFjYWxsYmFjaykgeworICAgICAgICAv
LyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICAgCisgICAgLy8gRklYTUU6IFN0b3JlIHN0YXRpc3RpY3MgZGF0YSBpbnRvIGEgZGljdGlvbmFy
eS4KKyAgICBSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gc3RhdGlzdGljcyA9IEltbXV0YWJs
ZURpY3Rpb25hcnk6OmNyZWF0ZSgpOworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRo
UmV0dXJuVmFsdWUoc3RhdGlzdGljcy5nZXQoKSk7Cit9CisgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24g
OTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYkNvbnRleHRfaAogCiAjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
UGx1Z2luSW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgiCiAjaW5jbHVkZSAi
VmlzaXRlZExpbmtQcm92aWRlci5oIgpAQCAtNTUsNyArNTYsMTAgQEAgY2xhc3MgV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBhZ2VQcm94
eTsKIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CitzdHJ1Y3QgU3RhdGlzdGlj
c0RhdGE7CiBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyAgICAKK3R5cGVk
ZWYgR2VuZXJpY0NhbGxiYWNrPFdLRGljdGlvbmFyeVJlZj4gRGljdGlvbmFyeUNhbGxiYWNrOwog
CiBjbGFzcyBXZWJDb250ZXh0IDogcHVibGljIEFQSU9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNzUs
NiArMTc5LDggQEAgcHVibGljOgogICAgIC8vIERlZmF1bHRzIHRvIGZhbHNlLgogICAgIHZvaWQg
c2V0SFRUUFBpcGVsaW5pbmdFbmFibGVkKGJvb2wpOwogICAgIGJvb2wgaHR0cFBpcGVsaW5pbmdF
bmFibGVkKCk7CisgICAgCisgICAgdm9pZCBnZXRXZWJDb3JlU3RhdGlzdGljcyhQYXNzUmVmUHRy
PERpY3Rpb25hcnlDYWxsYmFjaz4pOwogCiBwcml2YXRlOgogICAgIFdlYkNvbnRleHQoUHJvY2Vz
c01vZGVsLCBjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCk7CkBAIC0xOTcsNiArMjAz
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldFNpdGVzV2l0aFBsdWdpbkRhdGEoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRp
ZENsZWFyUGx1Z2luU2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAjZW5kaWYKKyAgICAK
KyAgICB2b2lkIGRpZEdldFdlYkNvcmVTdGF0aXN0aWNzKGNvbnN0IFN0YXRpc3RpY3NEYXRhJiwg
dWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgICAgIAogICAgIC8vIEltcGxlbWVudGVkIGluIGdl
bmVyYXRlZCBXZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYkNvbnRleHRNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwpAQCAtMjcwLDYgKzI3OCw4IEBAIHByaXZh
dGU6CiAgICAgU3RyaW5nIG1fb3ZlcnJpZGVMb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAKICAgICBi
b29sIG1fcHJvY2Vzc1Rlcm1pbmF0aW9uRW5hYmxlZDsKKyAgICAKKyAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPiA+IG1fZGljdGlvbmFyeUNhbGxiYWNrczsK
IH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBib29sIFdlYkNvbnRleHQ6OnNlbmRU
b0FsbFByb2Nlc3Nlcyhjb25zdCBVJiBtZXNzYWdlKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQubWVzc2FnZXMuaW4JKHJldmlzaW9uIDk0MDE1KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDQgKzQwLDYgQEAgbWVzc2FnZXMgLT4gV2ViQ29udGV4dCB7CiAgICAgdm9p
ZCBEaWRDbGVhclBsdWdpblNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjZW5kaWYKIAor
ICAgIERpZEdldFdlYkNvcmVTdGF0aXN0aWNzKFdlYktpdDo6U3RhdGlzdGljc0RhdGEgc3RhdGlz
dGljc0RhdGEsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiA5NDAxNSkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzIsMyArMjMyLDggQEAgdm9pZCBXS0NvbnRleHRXYXJtSW5pdGlhbFByb2Nlc3MoV0tD
b250ZQogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+d2FybUluaXRpYWxQcm9jZXNzKCk7CiB9CiAK
K3ZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgdm9p
ZCogY29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGNhbGxiYWNrKQorewor
ICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Z2V0V2ViQ29yZVN0YXRpc3RpY3MoRGljdGlvbmFyeUNh
bGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsgICAgCit9CisKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHJldmlzaW9uIDk0MDE1KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzcsNiArMTM3LDkgQEAgV0tfRVhQT1JUIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdl
clJlZiBXSwogV0tfRVhQT1JUIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0TWVk
aWFDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUGx1Z2lu
U2l0ZURhdGFNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFBsdWdpblNpdGVEYXRhTWFuYWdlcihXS0Nv
bnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBX
S0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7Cisg
ICAgCit0eXBlZGVmIHZvaWQgKCpXS0NvbnRleHRHZXRTdGF0aXN0aWNzRnVuY3Rpb24pKFdLRGlj
dGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNv
bnRleHQpOworV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRleHRS
ZWYgY29udGV4dCwgdm9pZCogZnVuY3Rpb25Db250ZXh0LCBXS0NvbnRleHRHZXRTdGF0aXN0aWNz
RnVuY3Rpb24gZnVuY3Rpb24pOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zODUsNiArMzg1LDggQEAKIAkJNTFEMTMwNTUxMzgy
RUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEMTMwNTExMzgyRUFDMDAwMzUxRUREIC8q
IFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwICovOyB9OwogCQk1MUQxMzA1NjEzODJFQUMwMDAzNTFF
REQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTFEMTMwNTIxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNw
b25zZURhdGEuaCAqLzsgfTsKIAkJNTFEMTMwNTgxMzgyRjEwNTAwMzUxRUREIC8qIFdlYlByb2Nl
c3NQcm94eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRDEzMDU3MTM4MkYxMDUwMDM1MUVERCAvKiBXZWJQcm9jZXNzUHJveHlNYWMubW0gKi87
IH07CisJCTUyNzJCMjhBMTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjcyQjI4ODE0MDY5
ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuY3BwICovOyB9OworCQk1MjcyQjI4QjE0MDY5
ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNzJCMjg5MTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0
aWNzRGF0YS5oICovOyB9OwogCQk1RDUxODQ1NTEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJQ2xpZW50
VHJhaXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVENTE4NDUzMTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMuY3BwICovOyB9Owog
CQk1RDUxODQ1NjEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1RDUxODQ1NDEzQkNGOUNDMDBD
N0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmggKi87IH07CiAJCTY1MDFCRDFBMTJGMTI0MzQwMEU5
RjI0OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJ
bnNwZWN0b3IuY3BwICovOyB9OwpAQCAtMTMxNiw2ICsxMzE4LDggQEAKIAkJNTFEMTMwNTExMzgy
RUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXNwb25zZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxRDEzMDUyMTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVz
cG9uc2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlY0l0ZW1SZXNw
b25zZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMTMwNTcxMzgyRjEw
NTAwMzUxRUREIC8qIFdlYlByb2Nlc3NQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTI3MkIyODgxNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRpc3RpY3NEYXRh
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI3MkIyODkxNDA2OTg1RDAwOTZB
NUQwIC8qIFN0YXRpc3RpY3NEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFN0YXRpc3RpY3NEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENTE4NDUz
MTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFpdHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQVBJQ2xpZW50VHJhaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUQ1MTg0NTQxM0JDRjlDQzAwQzdGRjRBIC8qIEFQSUNsaWVudFRyYWl0
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDbGllbnRUcmFpdHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcyOTQxMTZGRjcwQjAwRUU1Mzk2IC8q
IFdlYlByb2Nlc3MueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2Vi
UHJvY2Vzcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxODEsNiAr
MjE4NSw4IEBACiAJCQkJNTE4RDJDQzkxMkQ1MURGQjAwM0JCOTNCIC8qIFNlc3Npb25TdGF0ZS5o
ICovLAogCQkJCTFBNjQyMEUyMTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuY3Bw
ICovLAogCQkJCTFBNjQyMEUzMTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuaCAq
LywKKwkJCQk1MjcyQjI4ODE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuY3BwICov
LAorCQkJCTUyNzJCMjg5MTQwNjk4NUQwMDk2QTVEMCAvKiBTdGF0aXN0aWNzRGF0YS5oICovLAog
CQkJCUJDQkQzQzNBMTI1QkZBN0EwMEQyQzI5RiAvKiBTdHJpbmdQYWlyVmVjdG9yLmggKi8sCiAJ
CQkJMUE1RTREQTMxMkQzQkQzRDAwOTlBMkJCIC8qIFRleHRDaGVja2VyU3RhdGUuaCAqLywKIAkJ
CQkxQTY0MjQ1RDEyREUyOUExMDBDQUFFMkMgLyogVXBkYXRlSW5mby5jcHAgKi8sCkBAIC0zODIy
LDYgKzM4MjgsNyBAQAogCQkJCTFBM0Q2MTAyMTNBN0NDMkEwMEY5NUQ0RSAvKiBQbHVnaW5Nb2R1
bGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDUxODQ1NjEzQkNGOUNDMDBDN0ZGNEEgLyog
QVBJQ2xpZW50VHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTlGQkE4RDEzRkYwNEU2MDBE
RUVENjcgLyogUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MjcyQjI4QjE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtNDQ4OSw2ICs0NDk2LDcgQEAKIAkJCQkxQTNENjEwMTEzQTdDQzJBMDBGOTVENEUg
LyogUGx1Z2luTW9kdWxlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTNENjEwNTEzQTdG
MDNBMDBGOTVENEUgLyogQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUQ1
MTg0NTUxM0JDRjlDQzAwQzdGRjRBIC8qIEFQSUNsaWVudFRyYWl0cy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1MjcyQjI4QTE0MDY5ODVEMDA5NkE1RDAgLyogU3RhdGlzdGljc0RhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAJKHJldmlzaW9uIDk0MDE1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAj
aW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb250
ZXh0TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyLmgiCkBAIC04MTYsNiAr
ODE3LDE1IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJQbHVnaW5TaXRlRGF0YShjb24KICAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OldlYkNvbnRleHQ6OkRpZENsZWFyUGx1Z2luU2l0
ZURhdGEoY2FsbGJhY2tJRCksIDApOwogfQogI2VuZGlmCisgICAgCit2b2lkIFdlYlByb2Nlc3M6
OmdldFdlYkNvcmVTdGF0aXN0aWNzKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgU3RhdGlz
dGljc0RhdGEgZGF0YTsKKyAgICAKKyAgICAvLyBGSVhNRTogR2F0aGVyIHBlcmZvcm1hbmNlIGRh
dGEuCisgICAgCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJDb250ZXh0OjpE
aWRHZXRXZWJDb3JlU3RhdGlzdGljcyhkYXRhLCBjYWxsYmFja0lEKSwgMCk7Cit9CiAKICNpZiBF
TkFCTEUoUExVR0lOX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsdWdpblByb2Nlc3NDcmFz
aGVkKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiA5NDAxNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsNiArMTc2LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNhbmNlbERvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQpOwogCiAg
ICAgdm9pZCBzZXRUZXh0Q2hlY2tlclN0YXRlKGNvbnN0IFRleHRDaGVja2VyU3RhdGUmKTsKKyAg
ICAKKyAgICB2b2lkIGdldFdlYkNvcmVTdGF0aXN0aWNzKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
CiAgICAgLy8gQ2hpbGRQcm9jZXNzCiAgICAgdmlydHVhbCBib29sIHNob3VsZFRlcm1pbmF0ZSgp
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgkocmV2aXNpb24gOTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTY3LDQgKzY3LDYgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2VzcyB7CiAgICAgU2V0VGV4dENoZWNrZXJTdGF0ZShXZWJLaXQ6OlRl
eHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZSkKIAogICAgIFNldEVuaGFuY2VkQWNjZXNz
aWJpbGl0eShib29sIGZsYWcpCisKKyAgICBHZXRXZWJDb3JlU3RhdGlzdGljcyh1aW50NjRfdCBj
YWxsYmFja0lEKQogfQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24g
OTQwMTUpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTU1OSw2ICs1NTksMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFN0YXRpc3RpY3NEYXRhLmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFN0YXRpc3RpY3NE
YXRhLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFNoYXJlZFxTdHJpbmdQYWlyVmVjdG9yLmgiCiAJCQkJPgogCQkJPC9GaWxlPgo=
</data>
<flag name="review"
          id="101904"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105812</attachid>
            <date>2011-08-31 12:26:41 -0700</date>
            <delta_ts>2011-08-31 16:53:01 -0700</delta_ts>
            <desc>Gather JavaScript, FastMalloc, icon, font, and glyph page statistics in WebProcess::getWebCoreStatistics()</desc>
            <filename>67160-3.patch.txt</filename>
            <type>text/plain</type>
            <size>10442</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjE1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDgtMzEgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgR2F0aGVyIEphdmFTY3JpcHQsIEZhc3RN
YWxsb2MsIGljb24sIGZvbnQsIGFuZCBnbHlwaCBwYWdlIHN0YXRpc3RpY3MgaW4gV2ViUHJvY2Vz
czo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY3MTYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRW5jb2RlIGFuZCBkZWNvZGUgdGhlIGRhdGEgbWVtYmVycyBpbiBT
dGF0aXN0aWNzRGF0YS4KKyAgICAgICAgKiBTaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTdGF0aXN0aWNzRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6
U3RhdGlzdGljc0RhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRh
OjpTdGF0aXN0aWNzRGF0YSk6CisKKyAgICAgICAgQWRkIHRocmVlIGRhdGEgbWVtYmVycyB0byBT
dGF0aXN0aWNzRGF0YToKKyAgICAgICAgLSBzdGF0aXN0aWNzTnVtYmVyczogTWFwIGNvbnRhaW5p
bmcgc3RhdGlzdGljcyB2YWx1ZXMgdGhhdCBhcmUgbnVtYmVycywgbWFwcGVkIGJ5IHRoZWlyIG5h
bWVzLCBzdWNoIGFzIAorICAgICAgICBKYXZhU2NyaXB0T2JqZWN0c0NvdW50LCBDYWNoZWRGb250
RGF0YUNvdW50LCBldGMuCisgICAgICAgIC0gamF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVD
b3VudHMKKyAgICAgICAgLSBqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cworICAgICAgICAqIFNo
YXJlZC9TdGF0aXN0aWNzRGF0YS5oOgorCisgICAgICAgIENyZWF0ZSBhIFdLOjpEaWN0aW9uYXJ5
IGNvbnRhaW5pbmcgc3RhdGlzdGljcyB2YWx1ZXMgbWFwcGVkIGJ5IHRoZWlyIG5hbWVzIGFuZCBy
ZXR1cm4gdGhhdCBkaWN0aW9uYXJ5CisgICAgICAgIGluIFdlYkNvbnRleHQ6OmRpZEdldFdlYkNv
cmVTdGF0aXN0aWNzKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpjcmVhdGVEaWN0aW9uYXJ5RnJvbUhhc2hNYXApOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpkaWRHZXRXZWJDb3JlU3RhdGlzdGljcyk6CisKKyAgICAgICAgUGFj
a2FnZSBKYXZhU2NyaXB0LCBGYXN0TWFsbG9jLCBpY29uLCBmb250LCBhbmQgZ2x5cGggcGFnZSBz
dGF0aXN0aWNzIGludG8gYSBTdGF0aXN0aWNzRGF0YSBvYmplY3QKKyAgICAgICAgYW5kIHNlbmQg
aXQgdG8gdGhlIFVJUHJvY2Vzcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0Ojpmcm9tQ291bnRlZFNldFRvSGFzaE1hcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmdldFdlYkNvcmVTdGF0aXN0aWNzKToKKwogMjAxMS0wOC0zMCAg
QmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTUwCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvU3RhdGlzdGljc0RhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9TdGF0aXN0aWNzRGF0YS5jcHAJKHJldmlzaW9uIDk0MjE0KQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTggKzMyLDI1
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFN0YXRpc3RpY3NEYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBU
byBiZSBpbXBsZW1lbnRlZC4KKyAgICBlbmNvZGVyLT5lbmNvZGUoc3RhdGlzdGljc051bWJlcnMp
OworICAgIGVuY29kZXItPmVuY29kZShqYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50
cyk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRzKTsKIH0K
IAogYm9vbCBTdGF0aXN0aWNzRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhKQogewotICAgIC8vIEZJWE1F
OiBUbyBiZSBpbXBsZW1lbnRlZC4KKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzdGF0aXN0aWNz
RGF0YS5zdGF0aXN0aWNzTnVtYmVycykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShzdGF0aXN0aWNzRGF0YS5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0
VHlwZUNvdW50cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRl
Y29kZShzdGF0aXN0aWNzRGF0YS5qYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cykpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCiBTdGF0aXN0aWNzRGF0YTo6
U3RhdGlzdGljc0RhdGEoKQogeyAgICAKLSAgICAvLyBGSVhNRTogVG8gYmUgaW1wbGVtZW50ZWQu
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L1N0YXRpc3RpY3NEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1N0
YXRpc3RpY3NEYXRhLmgJKHJldmlzaW9uIDk0MjE0KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L1N0YXRpc3RpY3NEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2lu
Y2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IApAQCAtMzUsNiArMzgsMTAgQEAgc3RydWN0IFN0YXRpc3RpY3NEYXRhIHsKICAgICB2b2lkIGVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgU3RhdGlzdGljc0RhdGEmKTsKICAgICAK
KyAgICBIYXNoTWFwPFN0cmluZywgdWludDMyX3Q+IHN0YXRpc3RpY3NOdW1iZXJzOworICAgIEhh
c2hNYXA8U3RyaW5nLCB1aW50MzJfdD4gamF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3Vu
dHM7CisgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQzMl90PiBqYXZhU2NyaXB0T2JqZWN0VHlwZUNv
dW50czsgICAgCisgICAgCiAgICAgU3RhdGlzdGljc0RhdGEoKTsKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDk0MjE0KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw4ICszMCwxMCBAQAogI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiTXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIgpAQCAtNzk2LDYgKzc5OCwxNiBA
QCB2b2lkIFdlYkNvbnRleHQ6OmdldFdlYkNvcmVTdGF0aXN0aWNzKFBhCiAgICAgcHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXZWJDb3JlU3RhdGlzdGljcyhjYWxsYmFj
a0lEKSwgMCk7CiB9CiAKK3N0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVEaWN0aW9uYXJ5PiBjcmVh
dGVEaWN0aW9uYXJ5RnJvbUhhc2hNYXAoY29uc3QgSGFzaE1hcDxTdHJpbmcsIHVpbnQzMl90PiYg
bWFwKQoreworICAgIFJlZlB0cjxNdXRhYmxlRGljdGlvbmFyeT4gcmVzdWx0ID0gTXV0YWJsZURp
Y3Rpb25hcnk6OmNyZWF0ZSgpOworICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50MzJfdD46OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCB1aW50
MzJfdD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
KyAgICAgICAgcmVzdWx0LT5zZXQoaXQtPmZpcnN0LCBSZWZQdHI8V2ViVUludDY0PihXZWJVSW50
NjQ6OmNyZWF0ZShpdC0+c2Vjb25kKSkuZ2V0KCkpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7
Cit9CisKIHZvaWQgV2ViQ29udGV4dDo6ZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoY29uc3QgU3Rh
dGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewogICAg
IFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9kaWN0aW9uYXJ5Q2FsbGJh
Y2tzLnRha2UoY2FsbGJhY2tJRCk7CkBAIC04MDMsOSArODE1LDExIEBAIHZvaWQgV2ViQ29udGV4
dDo6ZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MKICAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBv
ciBhc3NlcnQuCiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgIAotICAgIC8vIEZJWE1FOiBT
dG9yZSBzdGF0aXN0aWNzIGRhdGEgaW50byBhIGRpY3Rpb25hcnkuCi0gICAgUmVmUHRyPEltbXV0
YWJsZURpY3Rpb25hcnk+IHN0YXRpc3RpY3MgPSBJbW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUo
KTsKKworICAgIFJlZlB0cjxNdXRhYmxlRGljdGlvbmFyeT4gc3RhdGlzdGljcyA9IGNyZWF0ZURp
Y3Rpb25hcnlGcm9tSGFzaE1hcChzdGF0aXN0aWNzRGF0YS5zdGF0aXN0aWNzTnVtYmVycyk7Cisg
ICAgc3RhdGlzdGljcy0+c2V0KCJKYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cyIs
IFJlZlB0cjxNdXRhYmxlRGljdGlvbmFyeT4oY3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKHN0
YXRpc3RpY3NEYXRhLmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKSkuZ2V0KCkp
OworICAgIHN0YXRpc3RpY3MtPnNldCgiSmF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMiLCBSZWZQ
dHI8TXV0YWJsZURpY3Rpb25hcnk+KGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChzdGF0aXN0
aWNzRGF0YS5qYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cykpLmdldCgpKTsKKyAgICAKICAgICBj
YWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKHN0YXRpc3RpY3MuZ2V0KCkp
OwogfQogICAgIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CShyZXZpc2lvbiA5NDIxNCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDEwICs1MiwxNiBAQAogI2luY2x1ZGUgIldlYlBy
b2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmln
aW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRm9udENhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HbHlwaFBhZ2VU
cmVlTm9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9KU0RPTVdpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hl
Lmg+CkBAIC02OCw2ICs3NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3Jh
Z2VUcmFja2VyLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmFuZG9tTnVtYmVyLmg+CiAKQEAgLTgz
LDYgKzkwLDcgQEAKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgogI2VuZGlmCiAK
K3VzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC04MTgsMTEgKzgyNiw1OSBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFy
UGx1Z2luU2l0ZURhdGEoY29uCiB9CiAjZW5kaWYKICAgICAKK3N0YXRpYyB2b2lkIGZyb21Db3Vu
dGVkU2V0VG9IYXNoTWFwKFR5cGVDb3VudFNldCogY291bnRlZFNldCwgSGFzaE1hcDxTdHJpbmcs
IHVpbnQzMl90PiYgbWFwKQoreworICAgIFR5cGVDb3VudFNldDo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gY291bnRlZFNldC0+ZW5kKCk7CisgICAgZm9yIChUeXBlQ291bnRTZXQ6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gY291bnRlZFNldC0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBt
YXAuc2V0KGl0LT5maXJzdCwgaXQtPnNlY29uZCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzczo6Z2V0
V2ViQ29yZVN0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBTdGF0aXN0aWNz
RGF0YSBkYXRhOwogICAgIAotICAgIC8vIEZJWE1FOiBHYXRoZXIgcGVyZm9ybWFuY2UgZGF0YS4K
KyAgICAvLyBHYXRoZXIgSmF2YVNjcmlwdCBzdGF0aXN0aWNzLgorICAgIHsKKyAgICAgICAgSlNM
b2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsKKyAgICAgICAgZGF0YS5zdGF0aXN0aWNz
TnVtYmVycy5zZXQoIkphdmFTY3JpcHRPYmplY3RzQ291bnQiLCBKU0RPTVdpbmRvdzo6Y29tbW9u
SlNHbG9iYWxEYXRhKCktPmhlYXAub2JqZWN0Q291bnQoKSk7CisgICAgICAgIGRhdGEuc3RhdGlz
dGljc051bWJlcnMuc2V0KCJKYXZhU2NyaXB0R2xvYmFsT2JqZWN0c0NvdW50IiwgSlNET01XaW5k
b3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLmdsb2JhbE9iamVjdENvdW50KCkpOworICAg
ICAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiSmF2YVNjcmlwdFByb3RlY3RlZE9iamVj
dHNDb3VudCIsIEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVhcC5wcm90ZWN0
ZWRPYmplY3RDb3VudCgpKTsKKyAgICAgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkph
dmFTY3JpcHRQcm90ZWN0ZWRHbG9iYWxPYmplY3RzQ291bnQiLCBKU0RPTVdpbmRvdzo6Y29tbW9u
SlNHbG9iYWxEYXRhKCktPmhlYXAucHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnQoKSk7CisgICAg
ICAgIAorICAgICAgICBPd25QdHI8VHlwZUNvdW50U2V0PiBwcm90ZWN0ZWRPYmplY3RUeXBlQ291
bnRzKEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVhcC5wcm90ZWN0ZWRPYmpl
Y3RUeXBlQ291bnRzKCkpOworICAgICAgICBmcm9tQ291bnRlZFNldFRvSGFzaE1hcChwcm90ZWN0
ZWRPYmplY3RUeXBlQ291bnRzLmdldCgpLCBkYXRhLmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RU
eXBlQ291bnRzKTsKKyAgICAgICAgCisgICAgICAgIE93blB0cjxUeXBlQ291bnRTZXQ+IG9iamVj
dFR5cGVDb3VudHMoSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLm9iamVj
dFR5cGVDb3VudHMoKSk7CisgICAgICAgIGZyb21Db3VudGVkU2V0VG9IYXNoTWFwKG9iamVjdFR5
cGVDb3VudHMuZ2V0KCksIGRhdGEuamF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMpOworICAgICAg
ICAKKyAgICAgICAgdWludDMyX3QgamF2YVNjcmlwdEhlYXBTaXplID0gSlNET01XaW5kb3c6OmNv
bW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLnNpemUoKTsKKyAgICAgICAgZGF0YS5zdGF0aXN0aWNz
TnVtYmVycy5zZXQoIkphdmFTY3JpcHRIZWFwU2l6ZSIsIGphdmFTY3JpcHRIZWFwU2l6ZSk7Cisg
ICAgICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJKYXZhU2NyaXB0RnJlZVNpemUiLCBK
U0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAuY2FwYWNpdHkoKSAtIGphdmFT
Y3JpcHRIZWFwU2l6ZSk7CisgICAgICAgIAorICAgICAgICBHbG9iYWxNZW1vcnlTdGF0aXN0aWNz
IGdsb2JhbE1lbW9yeVN0YXRzID0gZ2xvYmFsTWVtb3J5U3RhdGlzdGljcygpOworICAgICAgICBk
YXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiSmF2YVNjcmlwdFN0YWNrU2l6ZSIsIGdsb2JhbE1l
bW9yeVN0YXRzLnN0YWNrQnl0ZXMpOworICAgICAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNl
dCgiSmF2YVNjcmlwdEpJVFNpemUiLCBnbG9iYWxNZW1vcnlTdGF0cy5KSVRCeXRlcyk7CisgICAg
fQorCisgICAgV1RGOjpGYXN0TWFsbG9jU3RhdGlzdGljcyBmYXN0TWFsbG9jU3RhdGlzdGljcyA9
IFdURjo6ZmFzdE1hbGxvY1N0YXRpc3RpY3MoKTsKKyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJz
LnNldCgiRmFzdE1hbGxvY1Jlc2VydmVkVk1CeXRlcyIsIGZhc3RNYWxsb2NTdGF0aXN0aWNzLnJl
c2VydmVkVk1CeXRlcyk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkZhc3RNYWxs
b2NDb21taXR0ZWRWTUJ5dGVzIiwgZmFzdE1hbGxvY1N0YXRpc3RpY3MuY29tbWl0dGVkVk1CeXRl
cyk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkZhc3RNYWxsb2NGcmVlTGlzdEJ5
dGVzIiwgZmFzdE1hbGxvY1N0YXRpc3RpY3MuZnJlZUxpc3RCeXRlcyk7CisgICAgCisgICAgLy8g
R2F0aGVyIGljb24gc3RhdGlzdGljcy4KKyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgi
SWNvblBhZ2VVUkxNYXBwaW5nQ291bnQiLCBpY29uRGF0YWJhc2UoKS5wYWdlVVJMTWFwcGluZ0Nv
dW50KCkpOworICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJJY29uUmV0YWluZWRQYWdl
VVJMQ291bnQiLCBpY29uRGF0YWJhc2UoKS5yZXRhaW5lZFBhZ2VVUkxDb3VudCgpKTsKKyAgICBk
YXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiSWNvblJlY29yZENvdW50IiwgaWNvbkRhdGFiYXNl
KCkuaWNvblJlY29yZENvdW50KCkpOworICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJJ
Y29uc1dpdGhEYXRhQ291bnQiLCBpY29uRGF0YWJhc2UoKS5pY29uUmVjb3JkQ291bnRXaXRoRGF0
YSgpKTsKKyAgICAKKyAgICAvLyBHYXRoZXIgZm9udCBzdGF0aXN0aWNzLgorICAgIGRhdGEuc3Rh
dGlzdGljc051bWJlcnMuc2V0KCJDYWNoZWRGb250RGF0YUNvdW50IiwgZm9udENhY2hlKCktPmZv
bnREYXRhQ291bnQoKSk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkNhY2hlZEZv
bnREYXRhSW5hY3RpdmVDb3VudCIsIGZvbnRDYWNoZSgpLT5pbmFjdGl2ZUZvbnREYXRhQ291bnQo
KSk7CisgICAgCisgICAgLy8gR2F0aGVyIGdseXBoIHBhZ2Ugc3RhdGlzdGljcy4KKyAgICBkYXRh
LnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiR2x5cGhQYWdlQ291bnQiLCBHbHlwaFBhZ2VUcmVlTm9k
ZTo6dHJlZUdseXBoUGFnZUNvdW50KCkpOworICAgIAorICAgIC8vIEZJWE1FOiBHYXRoZXIgV2Vi
Q29yZSBjYWNoZSBzdGF0aXN0aWNzLgogICAgIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6V2ViQ29udGV4dDo6RGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoZGF0YSwgY2FsbGJhY2tJ
RCksIDApOwogfQo=
</data>
<flag name="review"
          id="102066"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105860</attachid>
            <date>2011-08-31 16:53:01 -0700</date>
            <delta_ts>2011-08-31 16:54:35 -0700</delta_ts>
            <desc>Gather JavaScript, FastMalloc, icon, font, and glyph page statistics in WebProcess::getWebCoreStatistics()</desc>
            <filename>67160-3.patch.txt</filename>
            <type>text/plain</type>
            <size>11861</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTQyNDcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAK
KzIwMTEtMDgtMzEgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgRXhw
b3J0IGZhc3RNYWxsb2NTdGF0aXN0aWNzIGFuZCBIZWFwOjpvYmplY3RUeXBlQ291bnRzIGZvciBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcxNjAuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmOgorCiAyMDExLTA4LTMxICBQ
ZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgQW5kcm9p
ZCdzIHBsYXRmb3JtIHNwZWNpZmljYXRpb24gYW5kIHRoZSByaWdodCBhdG9taWMgZnVuY3Rpb25z
LgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5kZWYJKHJldmlzaW9uIDk0MTA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYJKHdvcmtp
bmcgY29weSkKQEAgLTE2Miw2ICsxNjIsNyBAQCBFWFBPUlRTCiAgICAgP2Zhc3RNYWxsb2NAV1RG
QEBZQVBBWElAWgogICAgID9mYXN0TWFsbG9jTWF0Y2hGYWlsZWRASW50ZXJuYWxAV1RGQEBZQVhQ
QVhAWgogICAgID9mYXN0TWFsbG9jU2l6ZUBXVEZAQFlBSVBCWEBaCisgICAgP2Zhc3RNYWxsb2NT
dGF0aXN0aWNzQFdURkBAWUE/QVVGYXN0TWFsbG9jU3RhdGlzdGljc0AxQFhaCiAgICAgP2Zhc3RS
ZWFsbG9jQFdURkBAWUFQQVhQQVhJQFoKICAgICA/ZmFzdFN0ckR1cEBXVEZAQFlBUEFEUEJEQFoK
ICAgICA/ZmFzdFplcm9lZE1hbGxvY0BXVEZAQFlBUEFYSUBaCkBAIC0yNTMsNiArMjU0LDcgQEAg
RVhQT1JUUwogICAgID9udW1iZXJUb1N0cmluZ0BXVEZAQFlBSU5RQV9XQFoKICAgICA/b2JqZWN0
Q291bnRASGVhcEBKU0NAQFFBRUlYWgogICAgID9vYmplY3RQcm90b0Z1bmNUb1N0cmluZ0BKU0NA
QFlJX0pQQVZFeGVjU3RhdGVAMUBAWgorICAgID9vYmplY3RUeXBlQ291bnRzQEhlYXBASlNDQEBR
QUU/QVY/JFBhc3NPd25QdHJAVj8kSGFzaENvdW50ZWRTZXRAUEJEVT8kUHRySGFzaEBQQkRAV1RG
QEBVPyRIYXNoVHJhaXRzQFBCREAyQEBXVEZAQEBXVEZAQFhaCiAgICAgP3BhcnNlRGF0ZUZyb21O
dWxsVGVybWluYXRlZENoYXJhY3RlcnNAV1RGQEBZQU5QQkRAWgogICAgID9wcmV2ZW50RXh0ZW5z
aW9uc0BKU09iamVjdEBKU0NAQFVBRVhBQVZKU0dsb2JhbERhdGFAMkBAWgogICAgID9wcm9maWxl
ckBQcm9maWxlckBKU0NAQFNBUEFWMTJAWFoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MjQ3
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MzUgQEAKKzIwMTEtMDgtMzEgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgR2F0aGVyIEphdmFTY3JpcHQsIEZhc3RNYWxsb2MsIGljb24sIGZvbnQsIGFuZCBnbHlwaCBw
YWdlIHN0YXRpc3RpY3MgaW4gV2ViUHJvY2Vzczo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTYwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5jb2RlIGFuZCBk
ZWNvZGUgdGhlIGRhdGEgbWVtYmVycyBpbiBTdGF0aXN0aWNzRGF0YS4KKyAgICAgICAgKiBTaGFy
ZWQvU3RhdGlzdGljc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdGF0aXN0aWNzRGF0YTo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U3RhdGlzdGljc0RhdGE6OmRlY29kZSk6CisgICAg
ICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NEYXRhOjpTdGF0aXN0aWNzRGF0YSk6CisKKyAgICAgICAg
QWRkIHRocmVlIGRhdGEgbWVtYmVycyB0byBTdGF0aXN0aWNzRGF0YToKKyAgICAgICAgLSBzdGF0
aXN0aWNzTnVtYmVyczogTWFwIGNvbnRhaW5pbmcgc3RhdGlzdGljcyB2YWx1ZXMgdGhhdCBhcmUg
bnVtYmVycywgbWFwcGVkIGJ5IHRoZWlyIG5hbWVzLCBzdWNoIGFzIAorICAgICAgICBKYXZhU2Ny
aXB0T2JqZWN0c0NvdW50LCBDYWNoZWRGb250RGF0YUNvdW50LCBldGMuCisgICAgICAgIC0gamF2
YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMKKyAgICAgICAgLSBqYXZhU2NyaXB0T2Jq
ZWN0VHlwZUNvdW50cworICAgICAgICAqIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5oOgorCisgICAg
ICAgIENyZWF0ZSBhIFdLOjpEaWN0aW9uYXJ5IGNvbnRhaW5pbmcgc3RhdGlzdGljcyB2YWx1ZXMg
bWFwcGVkIGJ5IHRoZWlyIG5hbWVzIGFuZCByZXR1cm4gdGhhdCBkaWN0aW9uYXJ5CisgICAgICAg
IGluIFdlYkNvbnRleHQ6OmRpZEdldFdlYkNvcmVTdGF0aXN0aWNzKCkuCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVEaWN0aW9uYXJ5
RnJvbUhhc2hNYXApOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRHZXRXZWJDb3Jl
U3RhdGlzdGljcyk6CisKKyAgICAgICAgUGFja2FnZSBKYXZhU2NyaXB0LCBGYXN0TWFsbG9jLCBp
Y29uLCBmb250LCBhbmQgZ2x5cGggcGFnZSBzdGF0aXN0aWNzIGludG8gYSBTdGF0aXN0aWNzRGF0
YSBvYmplY3QKKyAgICAgICAgYW5kIHNlbmQgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0Ojpmcm9tQ291bnRl
ZFNldFRvSGFzaE1hcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmdldFdlYkNvcmVT
dGF0aXN0aWNzKToKKwogMjAxMS0wOC0zMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MzIy
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAJKHJldmlzaW9u
IDk0MjI4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsMTggKzMyLDI1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lk
IFN0YXRpc3RpY3NEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVy
KSBjb25zdAogewotICAgIC8vIEZJWE1FOiBUbyBiZSBpbXBsZW1lbnRlZC4KKyAgICBlbmNvZGVy
LT5lbmNvZGUoc3RhdGlzdGljc051bWJlcnMpOworICAgIGVuY29kZXItPmVuY29kZShqYXZhU2Ny
aXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cyk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKGphdmFT
Y3JpcHRPYmplY3RUeXBlQ291bnRzKTsKIH0KIAogYm9vbCBTdGF0aXN0aWNzRGF0YTo6ZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgU3RhdGlzdGljc0RhdGEmIHN0YXRp
c3RpY3NEYXRhKQogewotICAgIC8vIEZJWE1FOiBUbyBiZSBpbXBsZW1lbnRlZC4KKyAgICBpZiAo
IWRlY29kZXItPmRlY29kZShzdGF0aXN0aWNzRGF0YS5zdGF0aXN0aWNzTnVtYmVycykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzdGF0aXN0aWNzRGF0
YS5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cykpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShzdGF0aXN0aWNzRGF0YS5qYXZhU2NyaXB0
T2JqZWN0VHlwZUNvdW50cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0
cnVlOwogfQogCiBTdGF0aXN0aWNzRGF0YTo6U3RhdGlzdGljc0RhdGEoKQogeyAgICAKLSAgICAv
LyBGSVhNRTogVG8gYmUgaW1wbGVtZW50ZWQuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgJKHJldmlzaW9uIDk0MjI4
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2lu
Y2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzUsNiArMzgsMTAgQEAgc3RydWN0IFN0
YXRpc3RpY3NEYXRhIHsKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIq
KSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
KiwgU3RhdGlzdGljc0RhdGEmKTsKICAgICAKKyAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+
IHN0YXRpc3RpY3NOdW1iZXJzOworICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gamF2YVNj
cmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHM7CisgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2
NF90PiBqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50czsgICAgCisgICAgCiAgICAgU3RhdGlzdGlj
c0RhdGEoKTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAJKHJldmlzaW9uIDk0MjI4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgIkltbXV0
YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNs
dWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
IlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJX
S0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQ
cm94eS5oIgpAQCAtNzk2LDYgKzc5OCwxNiBAQCB2b2lkIFdlYkNvbnRleHQ6OmdldFdlYkNvcmVT
dGF0aXN0aWNzKFBhCiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpH
ZXRXZWJDb3JlU3RhdGlzdGljcyhjYWxsYmFja0lEKSwgMCk7CiB9CiAKK3N0YXRpYyBQYXNzUmVm
UHRyPE11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVEaWN0aW9uYXJ5RnJvbUhhc2hNYXAoY29uc3Qg
SGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiYgbWFwKQoreworICAgIFJlZlB0cjxNdXRhYmxlRGlj
dGlvbmFyeT4gcmVzdWx0ID0gTXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZSgpOworICAgIEhhc2hN
YXA8U3RyaW5nLCB1aW50NjRfdD46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1hcC5lbmQoKTsKKyAg
ICBmb3IgKEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWFw
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgcmVzdWx0LT5zZXQoaXQtPmZpcnN0
LCBSZWZQdHI8V2ViVUludDY0PihXZWJVSW50NjQ6OmNyZWF0ZShpdC0+c2Vjb25kKSkuZ2V0KCkp
OworICAgIAorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgV2ViQ29udGV4dDo6ZGlkR2V0
V2ViQ29yZVN0YXRpc3RpY3MoY29uc3QgU3RhdGlzdGljc0RhdGEmIHN0YXRpc3RpY3NEYXRhLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogewogICAgIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+IGNh
bGxiYWNrID0gbV9kaWN0aW9uYXJ5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CkBAIC04MDMs
OSArODE1LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MKICAg
ICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgIAotICAgIC8vIEZJWE1FOiBTdG9yZSBzdGF0aXN0aWNzIGRhdGEgaW50byBhIGRp
Y3Rpb25hcnkuCi0gICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IHN0YXRpc3RpY3MgPSBJ
bW11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoKTsKKworICAgIFJlZlB0cjxNdXRhYmxlRGljdGlv
bmFyeT4gc3RhdGlzdGljcyA9IGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChzdGF0aXN0aWNz
RGF0YS5zdGF0aXN0aWNzTnVtYmVycyk7CisgICAgc3RhdGlzdGljcy0+c2V0KCJKYXZhU2NyaXB0
UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cyIsIGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChz
dGF0aXN0aWNzRGF0YS5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cykuZ2V0KCkp
OworICAgIHN0YXRpc3RpY3MtPnNldCgiSmF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMiLCBjcmVh
dGVEaWN0aW9uYXJ5RnJvbUhhc2hNYXAoc3RhdGlzdGljc0RhdGEuamF2YVNjcmlwdE9iamVjdFR5
cGVDb3VudHMpLmdldCgpKTsKKyAgICAKICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0
aFJldHVyblZhbHVlKHN0YXRpc3RpY3MuZ2V0KCkpOwogfQogICAgIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA5NDIyOCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDEwICs1MiwxNiBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9i
amVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm9udENhY2hlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9HbHlwaFBhZ2VUcmVlTm9kZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSWNvbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTVdpbmRvdy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CkBAIC02OCw2ICs3NCw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VUcmFja2VyLmg+CisjaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmFuZG9tTnVtYmVyLmg+CiAKQEAgLTgzLDYgKzkwLDcgQEAKICNpbmNsdWRlICJOZXRz
Y2FwZVBsdWdpbk1vZHVsZS5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC04MTgsMTEgKzgy
Niw1NSBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUGx1Z2luU2l0ZURhdGEoY29uCiB9CiAjZW5k
aWYKICAgICAKK3N0YXRpYyB2b2lkIGZyb21Db3VudGVkU2V0VG9IYXNoTWFwKFR5cGVDb3VudFNl
dCogY291bnRlZFNldCwgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiYgbWFwKQoreworICAgIFR5
cGVDb3VudFNldDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY291bnRlZFNldC0+ZW5kKCk7CisgICAg
Zm9yIChUeXBlQ291bnRTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY291bnRlZFNldC0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBtYXAuc2V0KGl0LT5maXJzdCwgaXQtPnNlY29u
ZCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzczo6Z2V0V2ViQ29yZVN0YXRpc3RpY3ModWludDY0X3Qg
Y2FsbGJhY2tJRCkKIHsKICAgICBTdGF0aXN0aWNzRGF0YSBkYXRhOwogICAgIAotICAgIC8vIEZJ
WE1FOiBHYXRoZXIgcGVyZm9ybWFuY2UgZGF0YS4KKyAgICAvLyBHYXRoZXIgSmF2YVNjcmlwdCBz
dGF0aXN0aWNzLgorICAgIHsKKyAgICAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNP
bmx5KTsKKyAgICAgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkphdmFTY3JpcHRPYmpl
Y3RzQ291bnQiLCBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAub2JqZWN0
Q291bnQoKSk7CisgICAgICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJKYXZhU2NyaXB0
R2xvYmFsT2JqZWN0c0NvdW50IiwgSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5o
ZWFwLmdsb2JhbE9iamVjdENvdW50KCkpOworICAgICAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJz
LnNldCgiSmF2YVNjcmlwdFByb3RlY3RlZE9iamVjdHNDb3VudCIsIEpTRE9NV2luZG93Ojpjb21t
b25KU0dsb2JhbERhdGEoKS0+aGVhcC5wcm90ZWN0ZWRPYmplY3RDb3VudCgpKTsKKyAgICAgICAg
ZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkphdmFTY3JpcHRQcm90ZWN0ZWRHbG9iYWxPYmpl
Y3RzQ291bnQiLCBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAucHJvdGVj
dGVkR2xvYmFsT2JqZWN0Q291bnQoKSk7CisgICAgICAgIAorICAgICAgICBPd25QdHI8VHlwZUNv
dW50U2V0PiBwcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKEpTRE9NV2luZG93Ojpjb21tb25KU0ds
b2JhbERhdGEoKS0+aGVhcC5wcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKCkpOworICAgICAgICBm
cm9tQ291bnRlZFNldFRvSGFzaE1hcChwcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzLmdldCgpLCBk
YXRhLmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKTsKKyAgICAgICAgCisgICAg
ICAgIE93blB0cjxUeXBlQ291bnRTZXQ+IG9iamVjdFR5cGVDb3VudHMoSlNET01XaW5kb3c6OmNv
bW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLm9iamVjdFR5cGVDb3VudHMoKSk7CisgICAgICAgIGZy
b21Db3VudGVkU2V0VG9IYXNoTWFwKG9iamVjdFR5cGVDb3VudHMuZ2V0KCksIGRhdGEuamF2YVNj
cmlwdE9iamVjdFR5cGVDb3VudHMpOworICAgICAgICAKKyAgICAgICAgdWludDY0X3QgamF2YVNj
cmlwdEhlYXBTaXplID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLnNp
emUoKTsKKyAgICAgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkphdmFTY3JpcHRIZWFw
U2l6ZSIsIGphdmFTY3JpcHRIZWFwU2l6ZSk7CisgICAgICAgIGRhdGEuc3RhdGlzdGljc051bWJl
cnMuc2V0KCJKYXZhU2NyaXB0RnJlZVNpemUiLCBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxE
YXRhKCktPmhlYXAuY2FwYWNpdHkoKSAtIGphdmFTY3JpcHRIZWFwU2l6ZSk7CisgICAgfQorCisg
ICAgV1RGOjpGYXN0TWFsbG9jU3RhdGlzdGljcyBmYXN0TWFsbG9jU3RhdGlzdGljcyA9IFdURjo6
ZmFzdE1hbGxvY1N0YXRpc3RpY3MoKTsKKyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgi
RmFzdE1hbGxvY1Jlc2VydmVkVk1CeXRlcyIsIGZhc3RNYWxsb2NTdGF0aXN0aWNzLnJlc2VydmVk
Vk1CeXRlcyk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkZhc3RNYWxsb2NDb21t
aXR0ZWRWTUJ5dGVzIiwgZmFzdE1hbGxvY1N0YXRpc3RpY3MuY29tbWl0dGVkVk1CeXRlcyk7Cisg
ICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkZhc3RNYWxsb2NGcmVlTGlzdEJ5dGVzIiwg
ZmFzdE1hbGxvY1N0YXRpc3RpY3MuZnJlZUxpc3RCeXRlcyk7CisgICAgCisgICAgLy8gR2F0aGVy
IGljb24gc3RhdGlzdGljcy4KKyAgICBkYXRhLnN0YXRpc3RpY3NOdW1iZXJzLnNldCgiSWNvblBh
Z2VVUkxNYXBwaW5nQ291bnQiLCBpY29uRGF0YWJhc2UoKS5wYWdlVVJMTWFwcGluZ0NvdW50KCkp
OworICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJJY29uUmV0YWluZWRQYWdlVVJMQ291
bnQiLCBpY29uRGF0YWJhc2UoKS5yZXRhaW5lZFBhZ2VVUkxDb3VudCgpKTsKKyAgICBkYXRhLnN0
YXRpc3RpY3NOdW1iZXJzLnNldCgiSWNvblJlY29yZENvdW50IiwgaWNvbkRhdGFiYXNlKCkuaWNv
blJlY29yZENvdW50KCkpOworICAgIGRhdGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJJY29uc1dp
dGhEYXRhQ291bnQiLCBpY29uRGF0YWJhc2UoKS5pY29uUmVjb3JkQ291bnRXaXRoRGF0YSgpKTsK
KyAgICAKKyAgICAvLyBHYXRoZXIgZm9udCBzdGF0aXN0aWNzLgorICAgIGRhdGEuc3RhdGlzdGlj
c051bWJlcnMuc2V0KCJDYWNoZWRGb250RGF0YUNvdW50IiwgZm9udENhY2hlKCktPmZvbnREYXRh
Q291bnQoKSk7CisgICAgZGF0YS5zdGF0aXN0aWNzTnVtYmVycy5zZXQoIkNhY2hlZEZvbnREYXRh
SW5hY3RpdmVDb3VudCIsIGZvbnRDYWNoZSgpLT5pbmFjdGl2ZUZvbnREYXRhQ291bnQoKSk7Cisg
ICAgCisgICAgLy8gR2F0aGVyIGdseXBoIHBhZ2Ugc3RhdGlzdGljcy4KKyAgICBkYXRhLnN0YXRp
c3RpY3NOdW1iZXJzLnNldCgiR2x5cGhQYWdlQ291bnQiLCBHbHlwaFBhZ2VUcmVlTm9kZTo6dHJl
ZUdseXBoUGFnZUNvdW50KCkpOworICAgIAorICAgIC8vIEZJWE1FOiBHYXRoZXIgV2ViQ29yZSBj
YWNoZSBzdGF0aXN0aWNzLgogICAgIAogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
V2ViQ29udGV4dDo6RGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MoZGF0YSwgY2FsbGJhY2tJRCksIDAp
OwogfQo=
</data>
<flag name="review"
          id="102134"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105986</attachid>
            <date>2011-09-01 10:20:37 -0700</date>
            <delta_ts>2011-09-01 10:22:06 -0700</delta_ts>
            <desc>Gather memory cache statistics in WebProcess::getWebCoreStatistics()</desc>
            <filename>67160-4.patch.txt</filename>
            <type>text/plain</type>
            <size>7990</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MzAxKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDktMDEgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgR2F0aGVyIG1lbW9yeSBjYWNoZSBzdGF0
aXN0aWNzIGluIFdlYlByb2Nlc3M6OmdldFdlYkNvcmVTdGF0aXN0aWNzKCkuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5jb2RlIGFuZCBkZWNvZGUg
d2ViQ29yZUNhY2hlU3RhdGlzdGljcyBkYXRhIG1lbWJlciBpbiBTdGF0aXN0aWNzRGF0YS4KKyAg
ICAgICAgKiBTaGFyZWQvU3RhdGlzdGljc0RhdGEuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdGF0
aXN0aWNzRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6U3RhdGlzdGljc0RhdGE6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmg6CisKKyAgICAgICAgQ29u
dmVydCB0aGUgY2FjaGUgc3RhdGlzdGljcyBkYXRhIGludG8gYW4gSW1tdXRhYmxlQXJyYXkgYW5k
IHJldHVybiBpdCBpbiBXZWJDb250ZXh0OjpkaWRHZXRXZWJDb3JlU3RhdGlzdGljcygpLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6ZGlkR2V0V2ViQ29yZVN0YXRpc3RpY3MpOgorCisgICAgICAgIFN0b3JlIG1lbW9yeSBj
YWNoZSBzdGF0aXN0aWNzIGludG8gdGhlIFN0YXRpc3RpY3NEYXRhIG9iamVjdC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpnZXRXZWJDb3Jl
TWVtb3J5Q2FjaGVTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0
V2ViQ29yZVN0YXRpc3RpY3MpOgorCiAyMDExLTA5LTAxICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEdhdGhlciBKYXZhU2NyaXB0LCBGYXN0TWFsbG9jLCBpY29uLCBm
b250LCBhbmQgZ2x5cGggcGFnZSBzdGF0aXN0aWNzIGluIFdlYlByb2Nlc3M6OmdldFdlYkNvcmVT
dGF0aXN0aWNzKCkuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU3RhdGlzdGljc0RhdGEu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5j
cHAJKHJldmlzaW9uIDk0Mjk4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1N0YXRpc3RpY3NE
YXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQCB2b2lkIFN0YXRpc3RpY3NE
YXRhOjplbmNvZGUoQ29yZUlQQzo6QXJnCiAgICAgZW5jb2Rlci0+ZW5jb2RlKHN0YXRpc3RpY3NO
dW1iZXJzKTsKICAgICBlbmNvZGVyLT5lbmNvZGUoamF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5
cGVDb3VudHMpOwogICAgIGVuY29kZXItPmVuY29kZShqYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50
cyk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHdlYkNvcmVDYWNoZVN0YXRpc3RpY3MpOwogfQogCiBi
b29sIFN0YXRpc3RpY3NEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNv
ZGVyLCBTdGF0aXN0aWNzRGF0YSYgc3RhdGlzdGljc0RhdGEpCkBAIC00NSw2ICs0Niw4IEBAIGJv
b2wgU3RhdGlzdGljc0RhdGE6OmRlY29kZShDb3JlSVBDOjpBcmcKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHN0YXRpc3RpY3NEYXRhLmphdmFTY3JpcHRP
YmplY3RUeXBlQ291bnRzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHN0YXRpc3RpY3NEYXRhLndlYkNvcmVDYWNoZVN0YXRpc3RpY3MpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCShyZXZpc2lvbiA5NDI5OCkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TdGF0aXN0aWNzRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXJndW1lbnRFbmNv
ZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC00MSw2ICs0Miw3IEBAIHN0cnVjdCBTdGF0aXN0aWNzRGF0YSB7CiAg
ICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBzdGF0aXN0aWNzTnVtYmVyczsKICAgICBIYXNo
TWFwPFN0cmluZywgdWludDY0X3Q+IGphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRz
OwogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gamF2YVNjcmlwdE9iamVjdFR5cGVDb3Vu
dHM7ICAgIAorICAgIFZlY3RvcjxIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+ID4gd2ViQ29yZUNh
Y2hlU3RhdGlzdGljczsKICAgICAKICAgICBTdGF0aXN0aWNzRGF0YSgpOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDk0Mjk4KQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04MjAsNiArODIwLDEyIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkR2V0V2ViQ29yZVN0YXRpc3Rp
Y3MKICAgICBzdGF0aXN0aWNzLT5zZXQoIkphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291
bnRzIiwgY3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKHN0YXRpc3RpY3NEYXRhLmphdmFTY3Jp
cHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKS5nZXQoKSk7CiAgICAgc3RhdGlzdGljcy0+c2V0
KCJKYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cyIsIGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1h
cChzdGF0aXN0aWNzRGF0YS5qYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cykuZ2V0KCkpOwogICAg
IAorICAgIHNpemVfdCBjYWNoZVN0YXRpc3RpY3NDb3VudCA9IHN0YXRpc3RpY3NEYXRhLndlYkNv
cmVDYWNoZVN0YXRpc3RpY3Muc2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+
IGNhY2hlU3RhdGlzdGljc1ZlY3RvcihjYWNoZVN0YXRpc3RpY3NDb3VudCk7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBjYWNoZVN0YXRpc3RpY3NDb3VudDsgKytpKQorICAgICAgICBjYWNo
ZVN0YXRpc3RpY3NWZWN0b3JbaV0gPSBjcmVhdGVEaWN0aW9uYXJ5RnJvbUhhc2hNYXAoc3RhdGlz
dGljc0RhdGEud2ViQ29yZUNhY2hlU3RhdGlzdGljc1tpXSk7CisgICAgc3RhdGlzdGljcy0+c2V0
KCJXZWJDb3JlQ2FjaGVTdGF0aXN0aWNzIiwgSW1tdXRhYmxlQXJyYXk6OmFkb3B0KGNhY2hlU3Rh
dGlzdGljc1ZlY3RvcikuZ2V0KCkpOworICAgIAogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJh
Y2tXaXRoUmV0dXJuVmFsdWUoc3RhdGlzdGljcy5nZXQoKSk7CiB9CiAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDk0Mjk4KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODMzLDYgKzgzMyw4MiBAQCBzdGF0aWMgdm9pZCBmcm9tQ291bnRlZFNldFRvSGFzaE1hcChU
eXBlCiAgICAgICAgIG1hcC5zZXQoaXQtPmZpcnN0LCBpdC0+c2Vjb25kKTsKIH0KIAorc3RhdGlj
IHZvaWQgZ2V0V2ViQ29yZU1lbW9yeUNhY2hlU3RhdGlzdGljcyhWZWN0b3I8SGFzaE1hcDxTdHJp
bmcsIHVpbnQ2NF90PiA+JiByZXN1bHQpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIGltYWdlc1N0cmluZywgKCJJbWFnZXMiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChT
dHJpbmcsIGNzc1N0cmluZywgKCJDU1MiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJp
bmcsIHhzbFN0cmluZywgKCJYU0wiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGphdmFTY3JpcHRTdHJpbmcsICgiSmF2YVNjcmlwdCIpKTsKKyAgICAKKyAgICBNZW1vcnlDYWNo
ZTo6U3RhdGlzdGljcyBtZW1vcnlDYWNoZVN0YXRpc3RpY3MgPSBtZW1vcnlDYWNoZSgpLT5nZXRT
dGF0aXN0aWNzKCk7CisgICAgCisgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBjb3VudHM7
CisgICAgY291bnRzLnNldChpbWFnZXNTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5pbWFn
ZXMuY291bnQpOworICAgIGNvdW50cy5zZXQoY3NzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3Rp
Y3MuY3NzU3R5bGVTaGVldHMuY291bnQpOworI2lmIEVOQUJMRShYU0xUKQorICAgIGNvdW50cy5z
ZXQoeHNsU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MueHNsU3R5bGVTaGVldHMuY291bnQp
OworI2Vsc2UKKyAgICBjb3VudHMuc2V0KHhzbFN0cmluZywgMCk7CisjZW5kaWYKKyAgICBjb3Vu
dHMuc2V0KGphdmFTY3JpcHRTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5zY3JpcHRzLmNv
dW50KTsKKyAgICByZXN1bHQuYXBwZW5kKGNvdW50cyk7CisgICAgCisgICAgSGFzaE1hcDxTdHJp
bmcsIHVpbnQ2NF90PiBzaXplczsKKyAgICBzaXplcy5zZXQoaW1hZ2VzU3RyaW5nLCBtZW1vcnlD
YWNoZVN0YXRpc3RpY3MuaW1hZ2VzLnNpemUpOworICAgIHNpemVzLnNldChjc3NTdHJpbmcsIG1l
bW9yeUNhY2hlU3RhdGlzdGljcy5jc3NTdHlsZVNoZWV0cy5zaXplKTsKKyNpZiBFTkFCTEUoWFNM
VCkKKyAgICBzaXplcy5zZXQoeHNsU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MueHNsU3R5
bGVTaGVldHMuc2l6ZSk7CisjZWxzZQorICAgIHNpemVzLnNldCh4c2xTdHJpbmcsIDApOworI2Vu
ZGlmCisgICAgc2l6ZXMuc2V0KGphdmFTY3JpcHRTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGlj
cy5zY3JpcHRzLnNpemUpOworICAgIHJlc3VsdC5hcHBlbmQoc2l6ZXMpOworICAgIAorICAgIEhh
c2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gbGl2ZVNpemVzOworICAgIGxpdmVTaXplcy5zZXQoaW1h
Z2VzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuaW1hZ2VzLmxpdmVTaXplKTsKKyAgICBs
aXZlU2l6ZXMuc2V0KGNzc1N0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLmNzc1N0eWxlU2hl
ZXRzLmxpdmVTaXplKTsKKyNpZiBFTkFCTEUoWFNMVCkKKyAgICBsaXZlU2l6ZXMuc2V0KHhzbFN0
cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLnhzbFN0eWxlU2hlZXRzLmxpdmVTaXplKTsKKyNl
bHNlCisgICAgbGl2ZVNpemVzLnNldCh4c2xTdHJpbmcsIDApOworI2VuZGlmCisgICAgbGl2ZVNp
emVzLnNldChqYXZhU2NyaXB0U3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3Muc2NyaXB0cy5s
aXZlU2l6ZSk7CisgICAgcmVzdWx0LmFwcGVuZChsaXZlU2l6ZXMpOworICAgIAorICAgIEhhc2hN
YXA8U3RyaW5nLCB1aW50NjRfdD4gZGVjb2RlZFNpemVzOworICAgIGRlY29kZWRTaXplcy5zZXQo
aW1hZ2VzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuaW1hZ2VzLmRlY29kZWRTaXplKTsK
KyAgICBkZWNvZGVkU2l6ZXMuc2V0KGNzc1N0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLmNz
c1N0eWxlU2hlZXRzLmRlY29kZWRTaXplKTsKKyNpZiBFTkFCTEUoWFNMVCkKKyAgICBkZWNvZGVk
U2l6ZXMuc2V0KHhzbFN0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLnhzbFN0eWxlU2hlZXRz
LmRlY29kZWRTaXplKTsKKyNlbHNlCisgICAgZGVjb2RlZFNpemVzLnNldCh4c2xTdHJpbmcsIDAp
OworI2VuZGlmCisgICAgZGVjb2RlZFNpemVzLnNldChqYXZhU2NyaXB0U3RyaW5nLCBtZW1vcnlD
YWNoZVN0YXRpc3RpY3Muc2NyaXB0cy5kZWNvZGVkU2l6ZSk7CisgICAgcmVzdWx0LmFwcGVuZChk
ZWNvZGVkU2l6ZXMpOworICAgIAorICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gcHVyZ2Vh
YmxlU2l6ZXM7CisgICAgcHVyZ2VhYmxlU2l6ZXMuc2V0KGltYWdlc1N0cmluZywgbWVtb3J5Q2Fj
aGVTdGF0aXN0aWNzLmltYWdlcy5wdXJnZWFibGVTaXplKTsKKyAgICBwdXJnZWFibGVTaXplcy5z
ZXQoY3NzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuY3NzU3R5bGVTaGVldHMucHVyZ2Vh
YmxlU2l6ZSk7CisjaWYgRU5BQkxFKFhTTFQpCisgICAgcHVyZ2VhYmxlU2l6ZXMuc2V0KHhzbFN0
cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLnhzbFN0eWxlU2hlZXRzLnB1cmdlYWJsZVNpemUp
OworI2Vsc2UKKyAgICBwdXJnZWFibGVTaXplcy5zZXQoeHNsU3RyaW5nLCAwKTsKKyNlbmRpZgor
ICAgIHB1cmdlYWJsZVNpemVzLnNldChqYXZhU2NyaXB0U3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRp
c3RpY3Muc2NyaXB0cy5wdXJnZWFibGVTaXplKTsKKyAgICByZXN1bHQuYXBwZW5kKHB1cmdlYWJs
ZVNpemVzKTsKKyAgICAKKyAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IHB1cmdlZFNpemVz
OworICAgIHB1cmdlZFNpemVzLnNldChpbWFnZXNTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGlj
cy5pbWFnZXMucHVyZ2VkU2l6ZSk7CisgICAgcHVyZ2VkU2l6ZXMuc2V0KGNzc1N0cmluZywgbWVt
b3J5Q2FjaGVTdGF0aXN0aWNzLmNzc1N0eWxlU2hlZXRzLnB1cmdlZFNpemUpOworI2lmIEVOQUJM
RShYU0xUKQorICAgIHB1cmdlZFNpemVzLnNldCh4c2xTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlz
dGljcy54c2xTdHlsZVNoZWV0cy5wdXJnZWRTaXplKTsKKyNlbHNlCisgICAgcHVyZ2VkU2l6ZXMu
c2V0KHhzbFN0cmluZywgMCk7CisjZW5kaWYKKyAgICBwdXJnZWRTaXplcy5zZXQoamF2YVNjcmlw
dFN0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLnNjcmlwdHMucHVyZ2VkU2l6ZSk7CisgICAg
cmVzdWx0LmFwcGVuZChwdXJnZWRTaXplcyk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzczo6Z2V0V2Vi
Q29yZVN0YXRpc3RpY3ModWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBTdGF0aXN0aWNzRGF0
YSBkYXRhOwpAQCAtODc0LDcgKzk1MCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z2V0V2ViQ29yZVN0
YXRpc3RpY3ModWkKICAgICAvLyBHYXRoZXIgZ2x5cGggcGFnZSBzdGF0aXN0aWNzLgogICAgIGRh
dGEuc3RhdGlzdGljc051bWJlcnMuc2V0KCJHbHlwaFBhZ2VDb3VudCIsIEdseXBoUGFnZVRyZWVO
b2RlOjp0cmVlR2x5cGhQYWdlQ291bnQoKSk7CiAgICAgCi0gICAgLy8gRklYTUU6IEdhdGhlciBX
ZWJDb3JlIGNhY2hlIHN0YXRpc3RpY3MuCisgICAgLy8gR2V0IFdlYkNvcmUgbWVtb3J5IGNhY2hl
IHN0YXRpc3RpY3MKKyAgICBnZXRXZWJDb3JlTWVtb3J5Q2FjaGVTdGF0aXN0aWNzKGRhdGEud2Vi
Q29yZUNhY2hlU3RhdGlzdGljcyk7CiAgICAgCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJDb250ZXh0OjpEaWRHZXRXZWJDb3JlU3RhdGlzdGljcyhkYXRhLCBjYWxsYmFja0lE
KSwgMCk7CiB9Cg==
</data>
<flag name="review"
          id="102315"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106033</attachid>
            <date>2011-09-01 14:42:44 -0700</date>
            <delta_ts>2011-09-01 15:38:55 -0700</delta_ts>
            <desc>Cut down ifdefs in WebKit::getWebCoreMemoryCacheStatistics()</desc>
            <filename>67160-4.patch.txt</filename>
            <type>text/plain</type>
            <size>4992</size>
            <attacher name="Ada Chan">adachan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk0MzQ0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMDEgIEFkYSBDaGFu
ICA8YWRhY2hhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCByZWZhY3RvcmluZyBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTYwCisKKyAgICAgICAg
RG9uJ3QgaWZkZWYgb3V0IHRoZSBkYXRhIG1lbWJlciB4c2xTdHlsZVNoZWV0cyBpbiBNZW1vcnlD
YWNoZTo6U3RhdGlzdGljcyB0byBjdXQgZG93biAKKyAgICAgICAgdGhlIGlmZGVmcyBpbiBnZXRX
ZWJDb3JlTWVtb3J5Q2FjaGVTdGF0aXN0aWNzKCkgaW4gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyByZXF1aXJlZC4gIEp1c3Qgc21hbGwgY29kZSByZWZhY3RvcmluZy4K
KworICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oOgorCiAyMDExLTA5LTAxICBF
cmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxNZWRp
YUVsZW1lbnQgc2hvdWxkIHVzZSBmYXN0SGFzQXR0cmlidXRlIGluc3RlYWQgb2YgaGFzQXR0cmli
dXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaAkocmV2
aXNpb24gOTQzNDApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
aAkod29ya2luZyBjb3B5KQpAQCAtOTksOSArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVT
dGF0aXN0aWMgaW1hZ2VzOwogICAgICAgICBUeXBlU3RhdGlzdGljIGNzc1N0eWxlU2hlZXRzOwog
ICAgICAgICBUeXBlU3RhdGlzdGljIHNjcmlwdHM7Ci0jaWYgRU5BQkxFKFhTTFQpCiAgICAgICAg
IFR5cGVTdGF0aXN0aWMgeHNsU3R5bGVTaGVldHM7Ci0jZW5kaWYKICAgICAgICAgVHlwZVN0YXRp
c3RpYyBmb250czsKICAgICB9OwogICAgIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gOTQzNDQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAxMS0wOS0wMSAgQWRhIENoYW4gIDxhZGFjaGFuQGFwcGxlLmNvbT4KKworICAgICAg
ICBDdXQgZG93biB0aGUgaWZkZWZzIGluIFdlYktpdDo6Z2V0V2ViQ29yZU1lbW9yeUNhY2hlU3Rh
dGlzdGljcygpIG5vdyB0aGF0IAorICAgICAgICBNZW1vcnlDYWNoZTo6U3RhdGlzdGljcyBhbHdh
eXMgaGFzIHRoZSB4c2xTdHlsZVNoZWV0cyBmaWVsZC4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmdldFdlYkNvcmVNZW1vcnlDYWNoZVN0YXRpc3RpY3MpOgorCiAyMDEx
LTA5LTAxICBBZGEgQ2hhbiAgPGFkYWNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEdhdGhlciBt
ZW1vcnkgY2FjaGUgc3RhdGlzdGljcyBpbiBXZWJQcm9jZXNzOjpnZXRXZWJDb3JlU3RhdGlzdGlj
cygpLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZp
c2lvbiA5NDM0MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg0NSw2NiArODQ1LDQyIEBAIHN0YXRpYyB2b2lkIGdldFdlYkNv
cmVNZW1vcnlDYWNoZVN0YXRpc3QKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IGNvdW50
czsKICAgICBjb3VudHMuc2V0KGltYWdlc1N0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLmlt
YWdlcy5jb3VudCk7CiAgICAgY291bnRzLnNldChjc3NTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlz
dGljcy5jc3NTdHlsZVNoZWV0cy5jb3VudCk7Ci0jaWYgRU5BQkxFKFhTTFQpCiAgICAgY291bnRz
LnNldCh4c2xTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy54c2xTdHlsZVNoZWV0cy5jb3Vu
dCk7Ci0jZWxzZQotICAgIGNvdW50cy5zZXQoeHNsU3RyaW5nLCAwKTsKLSNlbmRpZgogICAgIGNv
dW50cy5zZXQoamF2YVNjcmlwdFN0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0aWNzLnNjcmlwdHMu
Y291bnQpOwogICAgIHJlc3VsdC5hcHBlbmQoY291bnRzKTsKICAgICAKICAgICBIYXNoTWFwPFN0
cmluZywgdWludDY0X3Q+IHNpemVzOwogICAgIHNpemVzLnNldChpbWFnZXNTdHJpbmcsIG1lbW9y
eUNhY2hlU3RhdGlzdGljcy5pbWFnZXMuc2l6ZSk7CiAgICAgc2l6ZXMuc2V0KGNzc1N0cmluZywg
bWVtb3J5Q2FjaGVTdGF0aXN0aWNzLmNzc1N0eWxlU2hlZXRzLnNpemUpOwotI2lmIEVOQUJMRShY
U0xUKQogICAgIHNpemVzLnNldCh4c2xTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy54c2xT
dHlsZVNoZWV0cy5zaXplKTsKLSNlbHNlCi0gICAgc2l6ZXMuc2V0KHhzbFN0cmluZywgMCk7Ci0j
ZW5kaWYKICAgICBzaXplcy5zZXQoamF2YVNjcmlwdFN0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0
aWNzLnNjcmlwdHMuc2l6ZSk7CiAgICAgcmVzdWx0LmFwcGVuZChzaXplcyk7CiAgICAgCiAgICAg
SGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBsaXZlU2l6ZXM7CiAgICAgbGl2ZVNpemVzLnNldChp
bWFnZXNTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5pbWFnZXMubGl2ZVNpemUpOwogICAg
IGxpdmVTaXplcy5zZXQoY3NzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MuY3NzU3R5bGVT
aGVldHMubGl2ZVNpemUpOwotI2lmIEVOQUJMRShYU0xUKQogICAgIGxpdmVTaXplcy5zZXQoeHNs
U3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MueHNsU3R5bGVTaGVldHMubGl2ZVNpemUpOwot
I2Vsc2UKLSAgICBsaXZlU2l6ZXMuc2V0KHhzbFN0cmluZywgMCk7Ci0jZW5kaWYKICAgICBsaXZl
U2l6ZXMuc2V0KGphdmFTY3JpcHRTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5zY3JpcHRz
LmxpdmVTaXplKTsKICAgICByZXN1bHQuYXBwZW5kKGxpdmVTaXplcyk7CiAgICAgCiAgICAgSGFz
aE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBkZWNvZGVkU2l6ZXM7CiAgICAgZGVjb2RlZFNpemVzLnNl
dChpbWFnZXNTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5pbWFnZXMuZGVjb2RlZFNpemUp
OwogICAgIGRlY29kZWRTaXplcy5zZXQoY3NzU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3Mu
Y3NzU3R5bGVTaGVldHMuZGVjb2RlZFNpemUpOwotI2lmIEVOQUJMRShYU0xUKQogICAgIGRlY29k
ZWRTaXplcy5zZXQoeHNsU3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MueHNsU3R5bGVTaGVl
dHMuZGVjb2RlZFNpemUpOwotI2Vsc2UKLSAgICBkZWNvZGVkU2l6ZXMuc2V0KHhzbFN0cmluZywg
MCk7Ci0jZW5kaWYKICAgICBkZWNvZGVkU2l6ZXMuc2V0KGphdmFTY3JpcHRTdHJpbmcsIG1lbW9y
eUNhY2hlU3RhdGlzdGljcy5zY3JpcHRzLmRlY29kZWRTaXplKTsKICAgICByZXN1bHQuYXBwZW5k
KGRlY29kZWRTaXplcyk7CiAgICAgCiAgICAgSGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBwdXJn
ZWFibGVTaXplczsKICAgICBwdXJnZWFibGVTaXplcy5zZXQoaW1hZ2VzU3RyaW5nLCBtZW1vcnlD
YWNoZVN0YXRpc3RpY3MuaW1hZ2VzLnB1cmdlYWJsZVNpemUpOwogICAgIHB1cmdlYWJsZVNpemVz
LnNldChjc3NTdHJpbmcsIG1lbW9yeUNhY2hlU3RhdGlzdGljcy5jc3NTdHlsZVNoZWV0cy5wdXJn
ZWFibGVTaXplKTsKLSNpZiBFTkFCTEUoWFNMVCkKICAgICBwdXJnZWFibGVTaXplcy5zZXQoeHNs
U3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3MueHNsU3R5bGVTaGVldHMucHVyZ2VhYmxlU2l6
ZSk7Ci0jZWxzZQotICAgIHB1cmdlYWJsZVNpemVzLnNldCh4c2xTdHJpbmcsIDApOwotI2VuZGlm
CiAgICAgcHVyZ2VhYmxlU2l6ZXMuc2V0KGphdmFTY3JpcHRTdHJpbmcsIG1lbW9yeUNhY2hlU3Rh
dGlzdGljcy5zY3JpcHRzLnB1cmdlYWJsZVNpemUpOwogICAgIHJlc3VsdC5hcHBlbmQocHVyZ2Vh
YmxlU2l6ZXMpOwogICAgIAogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gcHVyZ2VkU2l6
ZXM7CiAgICAgcHVyZ2VkU2l6ZXMuc2V0KGltYWdlc1N0cmluZywgbWVtb3J5Q2FjaGVTdGF0aXN0
aWNzLmltYWdlcy5wdXJnZWRTaXplKTsKICAgICBwdXJnZWRTaXplcy5zZXQoY3NzU3RyaW5nLCBt
ZW1vcnlDYWNoZVN0YXRpc3RpY3MuY3NzU3R5bGVTaGVldHMucHVyZ2VkU2l6ZSk7Ci0jaWYgRU5B
QkxFKFhTTFQpCiAgICAgcHVyZ2VkU2l6ZXMuc2V0KHhzbFN0cmluZywgbWVtb3J5Q2FjaGVTdGF0
aXN0aWNzLnhzbFN0eWxlU2hlZXRzLnB1cmdlZFNpemUpOwotI2Vsc2UKLSAgICBwdXJnZWRTaXpl
cy5zZXQoeHNsU3RyaW5nLCAwKTsKLSNlbmRpZgogICAgIHB1cmdlZFNpemVzLnNldChqYXZhU2Ny
aXB0U3RyaW5nLCBtZW1vcnlDYWNoZVN0YXRpc3RpY3Muc2NyaXB0cy5wdXJnZWRTaXplKTsKICAg
ICByZXN1bHQuYXBwZW5kKHB1cmdlZFNpemVzKTsKIH0K
</data>
<flag name="review"
          id="102373"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>