<?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>54501</bug_id>
          
          <creation_ts>2011-02-15 15:05:53 -0800</creation_ts>
          <short_desc>WebKit2: Need a way to manage the WebCore Cache</short_desc>
          <delta_ts>2011-02-17 11:46:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351630</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 15:05:53 -0800</bug_when>
    <thetext>We need a way in WebKit2 to manager the WebCore cache. We need to expose methods to get a list of origins for where there are cached resources, evict the cached resources for a given origin, and evict all cached resources.

&lt;rdar://problem/8764016&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351631</commentid>
    <comment_count>1</comment_count>
      <attachid>82530</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 15:07:01 -0800</bug_when>
    <thetext>Created attachment 82530
WIP Patch - No ChangeLogs + Only Windows Build System</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351817</commentid>
    <comment_count>2</comment_count>
      <attachid>82571</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 19:07:36 -0800</bug_when>
    <thetext>Created attachment 82571
[PATCH] Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351832</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-15 19:35:55 -0800</bug_when>
    <thetext>Attachment 82571 did not build on qt:
Build output: http://queues.webkit.org/results/7917161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351839</commentid>
    <comment_count>4</comment_count>
      <attachid>82576</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 19:55:27 -0800</bug_when>
    <thetext>Created attachment 82576
[PATCH] Fix + Qt Build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351845</commentid>
    <comment_count>5</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-15 20:05:03 -0800</bug_when>
    <thetext>Attachment 82576 did not build on qt:
Build output: http://queues.webkit.org/results/7920118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351851</commentid>
    <comment_count>6</comment_count>
      <attachid>82581</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 20:15:10 -0800</bug_when>
    <thetext>Created attachment 82581
[PATCH] Fix + Qt (take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351852</commentid>
    <comment_count>7</comment_count>
      <attachid>82582</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 20:17:54 -0800</bug_when>
    <thetext>Created attachment 82582
[PATCH] Fix + Qt (Take 3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351854</commentid>
    <comment_count>8</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-15 20:39:42 -0800</bug_when>
    <thetext>Attachment 82582 did not build on qt:
Build output: http://queues.webkit.org/results/7918144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351860</commentid>
    <comment_count>9</comment_count>
      <attachid>82585</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-15 20:54:37 -0800</bug_when>
    <thetext>Created attachment 82585
[PATCH] Fix + Qt (Take 4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351888</commentid>
    <comment_count>10</comment_count>
      <attachid>82585</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-02-15 22:28:13 -0800</bug_when>
    <thetext>Comment on attachment 82585
[PATCH] Fix + Qt (Take 4)

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

r=me. Please investigate whether it&apos;s possible to send SecurityOrigins without converting to string and back.

&gt; Source/WebCore/loader/cache/MemoryCache.cpp:477
&gt; +void MemoryCache::removeResourcesWithOrigin(RefPtr&lt;SecurityOrigin&gt; origin)

I think this should take a raw pointer.

&gt; Source/WebCore/loader/cache/MemoryCache.cpp:495
&gt; +void MemoryCache::originsWithCache(HashSet&lt;String&gt;&amp; origins)

&quot;getOriginsWithCache&quot; would better indicate the purpose.

&gt; Source/WebKit2/UIProcess/WebCacheManagerProxy.cpp:86
&gt; +    Vector&lt;RefPtr&lt;APIObject&gt; &gt; securityOrigins(originIdentifiersCount);
&gt; +
&gt; +    for (size_t i = 0; i &lt; originIdentifiersCount; ++i) {
&gt; +        RefPtr&lt;APIObject&gt; origin = WebSecurityOrigin::createFromString(originIdentifiers[i]);
&gt; +        if (!origin)
&gt; +            continue;
&gt; +        securityOrigins[i] = origin;
&gt; +    }

If WebSecurityOrigin::createFromString() can return null, it might be better to use reserveCapacity and uncheckedAppend to prevent null entries in the vector.

&gt; Source/WebKit2/UIProcess/API/C/WKCacheManager.cpp:60
&gt; +#ifdef __BLOCKS__
&gt; +static void callGetCacheOriginsBlockBlockAndDispose(WKArrayRef resultValue, WKErrorRef errorRef, void* context)
&gt; +{
&gt; +    WKCacheManagerGetCacheOriginsBlock block = (WKCacheManagerGetCacheOriginsBlock)context;
&gt; +    block(resultValue, errorRef);
&gt; +    Block_release(block);
&gt; +}
&gt; +
&gt; +void WKCacheManagerGetCacheOrigins_b(WKCacheManagerRef cacheManagerRef, WKCacheManagerGetCacheOriginsBlock block)
&gt; +{
&gt; +    WKCacheManagerGetCacheOrigins(cacheManagerRef, Block_copy(block), callGetCacheOriginsBlockBlockAndDispose);
&gt; +}
&gt; +#endif

You might remove this and add it later as needed.

&gt; Source/WebKit2/UIProcess/API/C/WKCacheManager.h:42
&gt; +#ifdef __BLOCKS__
&gt; +typedef void (^WKCacheManagerGetCacheOriginsBlock)(WKArrayRef, WKErrorRef);
&gt; +WK_EXPORT void WKCacheManagerGetCacheOrigins_b(WKCacheManagerRef databaseManager, WKCacheManagerGetCacheOriginsBlock block);
&gt; +#endif

Ditto.

&gt; Source/WebKit2/WebProcess/WebProcess.cpp:637
&gt; +    // If the memory cache is currently enabled, toggle it on and off to evict its resources.
&gt; +    if (!memoryCache()-&gt;disabled()) {
&gt; +        memoryCache()-&gt;setDisabled(true);
&gt; +        memoryCache()-&gt;setDisabled(false);
&gt; +    }

It&apos;d be nicer if MemoryCache had an &quot;evictResources()&quot; function that did this.

&gt; Source/WebKit2/WebProcess/MemoryCache/WebCacheManager.cpp:73
&gt; +    size_t numOrigins = origins.size();
&gt; +
&gt; +    Vector&lt;String&gt; identifiers(numOrigins);
&gt; +    HashSet&lt;String&gt;::iterator end = origins.end();
&gt; +
&gt; +    unsigned i = 0;
&gt; +    for (HashSet&lt;String&gt;::iterator it = origins.begin(); it != end; ++it)
&gt; +        identifiers[i++] = *it;

You can use WTF::copyToVector() to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352233</commentid>
    <comment_count>11</comment_count>
      <attachid>82585</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-16 11:51:40 -0800</bug_when>
    <thetext>Comment on attachment 82585
[PATCH] Fix + Qt (Take 4)

Doing some refactoring to make this API easier to handle under kinds of cache types. Clearing review flags for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352310</commentid>
    <comment_count>12</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-16 13:49:27 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 82585 [details])
&gt; Doing some refactoring to make this API easier to handle under kinds of cache types. Clearing review flags for now.

After more discussion, keeping the API the way it is currently, and doing some renaming - will send out a new patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352397</commentid>
    <comment_count>13</comment_count>
      <attachid>82585</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-16 15:21:45 -0800</bug_when>
    <thetext>Comment on attachment 82585
[PATCH] Fix + Qt (Take 4)

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

&gt;&gt; Source/WebCore/loader/cache/MemoryCache.cpp:477
&gt;&gt; +void MemoryCache::removeResourcesWithOrigin(RefPtr&lt;SecurityOrigin&gt; origin)
&gt; 
&gt; I think this should take a raw pointer.

Fixed.

&gt;&gt; Source/WebCore/loader/cache/MemoryCache.cpp:495
&gt;&gt; +void MemoryCache::originsWithCache(HashSet&lt;String&gt;&amp; origins)
&gt; 
&gt; &quot;getOriginsWithCache&quot; would better indicate the purpose.

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/WebCacheManagerProxy.cpp:86
&gt;&gt; +    }
&gt; 
&gt; If WebSecurityOrigin::createFromString() can return null, it might be better to use reserveCapacity and uncheckedAppend to prevent null entries in the vector.

Fixed.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKCacheManager.cpp:60
&gt;&gt; +#endif
&gt; 
&gt; You might remove this and add it later as needed.

Removed.

&gt;&gt; Source/WebKit2/UIProcess/API/C/WKCacheManager.h:42
&gt;&gt; +#endif
&gt; 
&gt; Ditto.

Removed as well.

&gt;&gt; Source/WebKit2/WebProcess/WebProcess.cpp:637
&gt;&gt; +    }
&gt; 
&gt; It&apos;d be nicer if MemoryCache had an &quot;evictResources()&quot; function that did this.

Fixed.

&gt;&gt; Source/WebKit2/WebProcess/MemoryCache/WebCacheManager.cpp:73
&gt;&gt; +        identifiers[i++] = *it;
&gt; 
&gt; You can use WTF::copyToVector() to do this.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352449</commentid>
    <comment_count>14</comment_count>
      <attachid>82720</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-16 16:32:34 -0800</bug_when>
    <thetext>Created attachment 82720
[PATCH] Fix + Jon&apos;s Comments + Renames</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352453</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 16:35:53 -0800</bug_when>
    <thetext>Attachment 82720 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/UIProcess/API/C/WKResourceCacheManager.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 32 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>352645</commentid>
    <comment_count>16</comment_count>
      <attachid>82762</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-17 00:35:59 -0800</bug_when>
    <thetext>Created attachment 82762
[PATCH] Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352648</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 00:38:45 -0800</bug_when>
    <thetext>Attachment 82762 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/WebProcess/ResourceCache/WebResourceCacheManager.h:58:  The parameter name &quot;origin&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/Shared/SecurityOriginData.h:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 34 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>353042</commentid>
    <comment_count>18</comment_count>
      <attachid>82762</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-02-17 11:18:14 -0800</bug_when>
    <thetext>Comment on attachment 82762
[PATCH] Fix

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

&gt; Source/WebKit2/Shared/SecurityOriginData.h:43
&gt; +    // FIXME: We should be sending more state across the wire than just the protocol,
&gt; +    // host, and port.

Could you file a bug for this?

&gt; Source/WebKit2/Shared/WebSecurityOrigin.h:55
&gt; +    static PassRefPtr&lt;WebSecurityOrigin&gt; createFromString(const String&amp; string)

Is this from an older version of the patch and is no longer needed?

&gt; Source/WebKit2/UIProcess/API/C/WKAPICast.h:99
&gt; -inline CacheModel toCacheModel(WKCacheModel wkCacheModel)
&gt; +inline CacheModel toCacheModel(WKCacheModel WKCacheModel)
&gt;  {
&gt; -    switch (wkCacheModel) {
&gt; +    switch (WKCacheModel) {

Surprised this compiled.  Please remove this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353046</commentid>
    <comment_count>19</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-17 11:24:35 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 82762 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82762&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/SecurityOriginData.h:43
&gt; &gt; +    // FIXME: We should be sending more state across the wire than just the protocol,
&gt; &gt; +    // host, and port.
&gt; 
&gt; Could you file a bug for this?

Done - &lt;rdar://problem/9018386&gt;.

&gt; 
&gt; &gt; Source/WebKit2/Shared/WebSecurityOrigin.h:55
&gt; &gt; +    static PassRefPtr&lt;WebSecurityOrigin&gt; createFromString(const String&amp; string)
&gt; 
&gt; Is this from an older version of the patch and is no longer needed?

Yes, it is. Removed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKAPICast.h:99
&gt; &gt; -inline CacheModel toCacheModel(WKCacheModel wkCacheModel)
&gt; &gt; +inline CacheModel toCacheModel(WKCacheModel WKCacheModel)
&gt; &gt;  {
&gt; &gt; -    switch (wkCacheModel) {
&gt; &gt; +    switch (WKCacheModel) {
&gt; 
&gt; Surprised this compiled.  Please remove this change.

Reverted.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353062</commentid>
    <comment_count>20</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-17 11:32:44 -0800</bug_when>
    <thetext>Landed in r78848.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353067</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 11:46:42 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78848 might have broken SnowLeopard Intel Release (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82530</attachid>
            <date>2011-02-15 15:07:01 -0800</date>
            <delta_ts>2011-02-15 19:07:36 -0800</delta_ts>
            <desc>WIP Patch - No ChangeLogs + Only Windows Build System</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>39800</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAkocmV2
aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzQsNiArNDc0LDM1IEBAIHZvaWQgTWVtb3J5Q2FjaGU6
OnJlc291cmNlQWNjZXNzZWQoQ2FjaGUKICAgICBpbnNlcnRJbkxSVUxpc3QocmVzb3VyY2UpOwog
fQogCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFJlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gb3JpZ2luKQoreworICAgIFZlY3RvcjxDYWNoZWRSZXNvdXJjZSo+IHJl
c291cmNlc1dpdGhPcmlnaW47CisKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9
IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBpdC0+c2Vjb25kOworICAgICAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHJlc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJp
bmcocmVzb3VyY2UtPnVybCgpKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZU9yaWdpbikKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAocmVzb3VyY2VPcmlnaW4tPmVxdWFsKG9yaWdp
bi5nZXQoKSkpCisgICAgICAgICAgICByZXNvdXJjZXNXaXRoT3JpZ2luLmFwcGVuZChyZXNvdXJj
ZSk7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZXNvdXJjZXNXaXRoT3Jp
Z2luLnNpemUoKTsgKytpKQorICAgICAgICByZW1vdmUocmVzb3VyY2VzV2l0aE9yaWdpbltpXSk7
Cit9CisKK3ZvaWQgTWVtb3J5Q2FjaGU6Om9yaWdpbnNXaXRoQ2FjaGUoSGFzaFNldDxTdHJpbmc+
JiBvcmlnaW5zKQoreworICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gbV9yZXNv
dXJjZXMuZW5kKCk7CisgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIFN0cmluZyBvcmln
aW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhpdC0+c2Vjb25kLT51cmwoKSkt
PnRvU3RyaW5nKCk7CisgICAgICAgIGlmIChvcmlnaW4uaXNFbXB0eSgpKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIG9yaWdpbnMuYWRkKG9yaWdpbik7CisgICAgfQorfQorCiB2b2lk
IE1lbW9yeUNhY2hlOjpyZW1vdmVGcm9tTGl2ZURlY29kZWRSZXNvdXJjZXNMaXN0KENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkKIHsKICAgICAvLyBJZiB3ZSd2ZSBuZXZlciBiZWVuIGFjY2Vzc2Vk
LCB0aGVuIHdlJ3JlIGJyYW5kIG5ldyBhbmQgbm90IGluIGFueSBsaXN0LgpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgJKHJldmlzaW9uIDc4NTAxKQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgQ2FjaGVkQ1NTU3R5bGVTaGVldDsKIGNsYXNzIENhY2hl
ZFJlc291cmNlOwogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBLVVJMOworY2xh
c3MgU2VjdXJpdHlPcmlnaW47CiAKIC8vIFRoaXMgY2FjaGUgaG9sZHMgc3VicmVzb3VyY2VzIHVz
ZWQgYnkgV2ViIHBhZ2VzOiBpbWFnZXMsIHNjcmlwdHMsIHN0eWxlc2hlZXRzLCBldGMuCiAKQEAg
LTE2Myw2ICsxNjQsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCByZXNvdXJjZUFjY2Vzc2Vk
KENhY2hlZFJlc291cmNlKik7CiAKKyAgICB2b2lkIHJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4o
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPik7CisgICAgdm9pZCBvcmlnaW5zV2l0aENhY2hlKEhhc2hT
ZXQ8U3RyaW5nPiYgb3JpZ2lucyk7CisKIHByaXZhdGU6CiAgICAgTWVtb3J5Q2FjaGUoKTsKICAg
ICB+TWVtb3J5Q2FjaGUoKTsgLy8gTm90IGltcGxlbWVudGVkIHRvIG1ha2Ugc3VyZSBub2JvZHkg
YWNjaWRlbnRhbGx5IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0ZSBzaW5n
bGV0b25zLgpJbmRleDogU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA3ODUw
MSkKKysrIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUGx1Z2luUHJvY2Vz
c1Byb3h5IFwKICAgICBQbHVnaW5Qcm94eSBcCiAgICAgV2ViQ29udGV4dCBcCisgICAgV2ViQ2Fj
aGVNYW5hZ2VyIFwKKyAgICBXZWJDYWNoZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViRGF0YWJhc2VN
YW5hZ2VyIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSBcCiAgICAgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNz
YWdlSUQuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL01lc3NhZ2VJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIGVudW0gTWVz
c2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYSwKICAgICBNZXNzYWdlQ2xh
c3NEcmF3aW5nQXJlYUxlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKKyAg
ICBNZXNzYWdlQ2xhc3NXZWJDYWNoZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJh
c2VNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAog
ICAgIE1lc3NhZ2VDbGFzc1dlYkluc3BlY3RvciwKQEAgLTQ5LDYgKzUwLDcgQEAgZW51bSBNZXNz
YWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHksCiAgICAgTWVzc2FnZUNs
YXNzRHJhd2luZ0FyZWFQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5TGVn
YWN5LAorICAgIE1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBN
ZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJT2JqZWN0LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICAg
ICAgLy8gVUlQcm9jZXNzIHR5cGVzCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3QsCiAgICAg
ICAgIFR5cGVCYWNrRm9yd2FyZExpc3RJdGVtLAorICAgICAgICBUeXBlQ2FjaGVNYW5hZ2VyLAog
ICAgICAgICBUeXBlQ29udGV4dCwKICAgICAgICAgVHlwZURhdGFiYXNlTWFuYWdlciwKICAgICAg
ICAgVHlwZURvd25sb2FkLApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5
T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5
T3JpZ2luLmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNl
Y3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDEwICs1MiwxOSBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlP
cmlnaW4ucmVsZWFzZSgpKSk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2Vj
dXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAg
eworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2lu
ID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc3RyaW5nKTsKKyAg
ICAgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luLnJl
bGVhc2UoKSkpOworICAgIH0KKwogICAgIGNvbnN0IFN0cmluZyBwcm90b2NvbCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPnByb3RvY29sKCk7IH0KICAgICBjb25zdCBTdHJpbmcg
aG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPmhvc3QoKTsgfQogICAgIHVu
c2lnbmVkIHNob3J0IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5wb3J0
KCk7IH0KIAorICAgIGNvbnN0IFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2Vj
dXJpdHlPcmlnaW4tPnRvU3RyaW5nKCk7IH0KICAgICBjb25zdCBTdHJpbmcgZGF0YWJhc2VJZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+ZGF0YWJhc2VJZGVudGlm
aWVyKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLQXV0aGVudGljYXQKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQXV0aGVu
dGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKiBXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
clJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0KiBXS0Jh
Y2tGb3J3YXJkTGlzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0Zvcndh
cmRMaXN0SXRlbSogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tDYWNoZU1hbmFnZXIqIFdLQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS0NyZWRlbnRpYWwqIFdLQ3JlZGVudGlhbFJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLRGF0YWJhc2VNYW5hZ2VyKiBXS0RhdGFiYXNlTWFuYWdlclJlZjsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1h
bmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5Lmgi
CisKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rp
b25hcnkuaCIKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2Vi
Q2FjaGVNYW5hZ2VyUHJveHk+IFdlYkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4
dCogd2ViQ29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNhY2hlTWFuYWdl
clByb3h5KHdlYkNvbnRleHQpKTsKK30KKworV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OldlYkNhY2hl
TWFuYWdlclByb3h5KFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQo
d2ViQ29udGV4dCkKK3sKK30KKworV2ViQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJDYWNoZU1hbmFn
ZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUo
KQoreworICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwor
dm9pZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmlnaW5zKFBhc3NSZWZQdHI8QXJy
YXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNh
bGxiYWNrID0gcHJwQ2FsbGJhY2s7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJv
Y2VzcygpKSB7CisgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lE
KCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFz
ZSgpKTsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQ2Fj
aGVNYW5hZ2VyOjpHZXRDYWNoZU9yaWdpbnMoY2FsbGJhY2tJRCksIDApOworfQorCit2b2lkIFdl
YkNhY2hlTWFuYWdlclByb3h5OjpkaWRHZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0
cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFrZShjYWxsYmFj
a0lEKTsKKyAgICBpZiAoIWNhbGxiYWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Ig
b3IgYXNzZXJ0LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2l6ZV90IG9yaWdpbklk
ZW50aWZpZXJzQ291bnQgPSBvcmlnaW5JZGVudGlmaWVycy5zaXplKCk7CisgICAgVmVjdG9yPFJl
ZlB0cjxBUElPYmplY3Q+ID4gc2VjdXJpdHlPcmlnaW5zKG9yaWdpbklkZW50aWZpZXJzQ291bnQp
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5JZGVudGlmaWVyc0NvdW50OyAr
K2kpIHsKKyAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luSWRlbnRpZmllcnNbaV0pOworICAgICAgICBpZiAo
IW9yaWdpbikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzZWN1cml0eU9yaWdpbnNb
aV0gPSBvcmlnaW47CisgICAgfQorCisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhS
ZXR1cm5WYWx1ZShJbW11dGFibGVBcnJheTo6YWRvcHQoc2VjdXJpdHlPcmlnaW5zKS5nZXQoKSk7
Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdl
YlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1Zh
bGlkUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6OldlYkNhY2hlTWFuYWdlcjo6RGVsZXRlQ2FjaGVGb3JPcmlnaW4o
b3JpZ2luLT50b1N0cmluZygpKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6
OmRlbGV0ZUFsbENhY2hlKCkKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9j
ZXNzKCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViQ2FjaGVNYW5hZ2VyOjpEZWxldGVBbGxDYWNoZSgpLCAwKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q2FjaGVNYW5hZ2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDYWNoZU1hbmFnZXJQcm94eV9oCisjZGVm
aW5lIFdlYkNhY2hlTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNw
YWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K2NsYXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNv
bnRleHQ7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKwordHlwZWRlZiBHZW5lcmljQ2FsbGJh
Y2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKworY2xhc3MgV2ViQ2FjaGVNYW5hZ2VyUHJv
eHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBB
UElUeXBlID0gVHlwZUNhY2hlTWFuYWdlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNh
Y2hlTWFuYWdlclByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYkNh
Y2hlTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNs
ZWFyQ29udGV4dCgpIHsgbV93ZWJDb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBnZXRDYWNoZU9y
aWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxldGVDYWNoZUZv
ck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOworICAgIHZvaWQgZGVsZXRlQWxsQ2FjaGUoKTsK
KworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJDYWNoZU1hbmFnZXJQcm94eShXZWJD
b250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5
cGU7IH0KKworICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCBkaWRHZXRDYWNoZU9y
aWdpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKKworICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKKyAgICBIYXNoTWFw
PHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBEYXRhYmFzZU1hbmFnZXJQcm94
eV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK21lc3NhZ2VzIC0+IFdlYkNhY2hlTWFuYWdlclByb3h5IHsKKyAgICBEaWRHZXRDYWNoZU9y
aWdpbnMoVmVjdG9yPFdURjo6U3RyaW5nPiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2Fn
ZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtOTUsNiAr
OTYsNyBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NNb2RlbCBwcm9jCiAgICAgLCBt
X2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3MoZmFsc2UpCiAgICAgLCBtX21l
bW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwo
MTQwMC4wKQorICAgICwgbV9jYWNoZU1hbmFnZXJQcm94eShXZWJDYWNoZU1hbmFnZXJQcm94eTo6
Y3JlYXRlKHRoaXMpKQogICAgICwgbV9kYXRhYmFzZU1hbmFnZXJQcm94eShXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94
eShXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogI2lmIFBMQVRGT1JN
KFdJTikKQEAgLTExNCw2ICsxMTYsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAg
ICBXZWJQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkuY29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsK
IAorICAgIG1fY2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2NhY2hlTWFu
YWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsKKwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHktPmludmFsaWRhdGUoKTsKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5jbGVhckNv
bnRleHQoKTsKIApAQCAtNDgzLDYgKzQ4OCwxMSBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlclByb3h5PigpKSB7Cisg
ICAgICAgIG1fY2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NX
ZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2RhdGFiYXNlTWFuYWdlclBy
b3h5LT5kaWRSZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24s
IG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcg
QEAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OworY2xhc3MgV2Vi
Q2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKIGNsYXNz
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwpAQCAtMTI3
LDYgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZywgQ2FzZUZv
bGRpbmdIYXNoPiBwZGZBbmRQb3N0U2NyaXB0TUlNRVR5cGVzKCk7CiAKKyAgICBXZWJDYWNoZU1h
bmFnZXJQcm94eSogY2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTWFu
YWdlclByb3h5LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkqIGRhdGFiYXNl
TWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eS5nZXQo
KTsgfQogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXJQ
cm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuZ2V0KCk7IH0K
IApAQCAtMjAyLDYgKzIwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21lbW9yeVNhbXBsZXJF
bmFibGVkOwogICAgIGRvdWJsZSBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbDsKIAorICAgIFJlZlB0
cjxXZWJDYWNoZU1hbmFnZXJQcm94eT4gbV9jYWNoZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CiAgICAgUmVm
UHRyPFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDYgKzIzMCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSgKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHQ+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKICAgICAgICAgfHwgbWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkKKyAgICAgICAgfHwg
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlclByb3h5Pigp
CiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9jb250ZXh0
LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lv
biA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xh
c3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKK2NsYXNzIFdlYkNhY2hlTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYkNyZWRlbnRpYWw7CiBjbGFz
cyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKQEAgLTY4LDYgKzY5LDcgQEAgV0tfQUREX0FQSV9N
QVBQSU5HKFdLQXV0aGVudGljYXRpb25DaGFsbAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVu
dGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVu
ZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0UmVm
LCBXZWJCYWNrRm9yd2FyZExpc3QpCitXS19BRERfQVBJX01BUFBJTkcoV0tDYWNoZU1hbmFnZXJS
ZWYsIFdlYkNhY2hlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29udGV4dFJl
ZiwgV2ViQ29udGV4dCkKIFdLX0FERF9BUElfTUFQUElORyhXS0NyZWRlbnRpYWxSZWYsIFdlYkNy
ZWRlbnRpYWwpCiBXS19BRERfQVBJX01BUFBJTkcoV0tEYXRhYmFzZU1hbmFnZXJSZWYsIFdlYkRh
dGFiYXNlTWFuYWdlclByb3h5KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ2FjaGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
S0NhY2hlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKKworI2lmZGVmIF9fQkxPQ0tTX18KKyNpbmNsdWRlIDxCbG9j
ay5oPgorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLQ2Fj
aGVNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViQ2FjaGVNYW5hZ2Vy
UHJveHk6OkFQSVR5cGUpOworfQorCit2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5z
KFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tDYWNo
ZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwo
Y2FjaGVNYW5hZ2VyUmVmKS0+Z2V0Q2FjaGVPcmlnaW5zKEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShj
b250ZXh0LCBjYWxsYmFjaykpOworfQorCisjaWZkZWYgX19CTE9DS1NfXworc3RhdGljIHZvaWQg
Y2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKFdLQXJyYXlSZWYgcmVzdWx0
VmFsdWUsIFdLRXJyb3JSZWYgZXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgV0tDYWNo
ZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jayBibG9jayA9IChXS0NhY2hlTWFuYWdlckdldENh
Y2hlT3JpZ2luc0Jsb2NrKWNvbnRleHQ7CisgICAgYmxvY2socmVzdWx0VmFsdWUsIGVycm9yUmVm
KTsKKyAgICBCbG9ja19yZWxlYXNlKGJsb2NrKTsKK30KKwordm9pZCBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc19iKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJlZiwgV0tDYWNo
ZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jayBibG9jaykKK3sKKyAgICBXS0NhY2hlTWFuYWdl
ckdldENhY2hlT3JpZ2lucyhjYWNoZU1hbmFnZXJSZWYsIEJsb2NrX2NvcHkoYmxvY2spLCBjYWxs
R2V0Q2FjaGVPcmlnaW5zQmxvY2tCbG9ja0FuZERpc3Bvc2UpOworfQorI2VuZGlmCisKK3ZvaWQg
V0tDYWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbihXS0NhY2hlTWFuYWdlclJlZiBjYWNo
ZU1hbmFnZXJSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1w
bChjYWNoZU1hbmFnZXJSZWYpLT5kZWxldGVDYWNoZUZvck9yaWdpbih0b0ltcGwob3JpZ2luUmVm
KSk7Cit9CisKK3ZvaWQgV0tDYWNoZU1hbmFnZXJEZWxldGVBbGxDYWNoZShXS0NhY2hlTWFuYWdl
clJlZiBjYWNoZU1hbmFnZXJSZWYpCit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJlZiktPmRl
bGV0ZUFsbENhY2hlKCk7ICAgIAorfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tDYWNoZU1hbmFnZXJfaAorI2RlZmluZSBX
S0NhY2hlTWFuYWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBX
S0NhY2hlTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS0NhY2hlTWFuYWdl
ckdldENhY2hlT3JpZ2luc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7
CitXS19FWFBPUlQgdm9pZCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2lucyhXS0NhY2hlTWFu
YWdlclJlZiBjb250ZXh0UmVmLCB2b2lkKiBjb250ZXh0LCBXS0NhY2hlTWFuYWdlckdldENhY2hl
T3JpZ2luc0Z1bmN0aW9uIGZ1bmN0aW9uKTsKKyNpZmRlZiBfX0JMT0NLU19fCit0eXBlZGVmIHZv
aWQgKF5XS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2luc0Jsb2NrKShXS0FycmF5UmVmLCBXS0Vy
cm9yUmVmKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2Io
V0tDYWNoZU1hbmFnZXJSZWYgZGF0YWJhc2VNYW5hZ2VyLCBXS0NhY2hlTWFuYWdlckdldENhY2hl
T3JpZ2luc0Jsb2NrIGJsb2NrKTsKKyNlbmRpZgorCitXS19FWFBPUlQgdm9pZCBXS0NhY2hlTWFu
YWdlckRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuZ2VyLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS0NhY2hlTWFuYWdl
ckRlbGV0ZUFsbENhY2hlKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlcik7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS0NhY2hlTWFuYWdlcl9oCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkocmV2
aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMSBAQCB2b2lkIFdLQ29udGV4dENs
ZWFyQXBwbGljYXRpb25DYWNoZShXS0NvCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jbGVhckFw
cGxpY2F0aW9uQ2FjaGUoKTsKIH0KIAorV0tDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q2Fj
aGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0
b0ltcGwoY29udGV4dFJlZiktPmNhY2hlTWFuYWdlclByb3h5KCkpOworfQorCiBXS0RhdGFiYXNl
TWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYpCiB7CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+ZGF0YWJhc2VN
YW5hZ2VyUHJveHkoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMyw3IEBAIFdLX0VY
UE9SVCB2b2lkIFdLQ29udGV4dENsZWFyQXBwbGljYXRpb24KIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFN0YXJ0TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tEb3VibGVSZWYg
aW50ZXJ2YWwpOwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9yeVNhbXBsZXIoV0tD
b250ZXh0UmVmIGNvbnRleHQpOwogCitXS19FWFBPUlQgV0tDYWNoZU1hbmFnZXJSZWYgV0tDb250
ZXh0R2V0Q2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0Rh
dGFiYXNlTWFuYWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdl
dEdlb2xvY2F0aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNzg1MDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVy
cy5oIgogI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
RGF0YWJhc2VNYW5hZ2VyLmgiCkBAIC01MTAsNiArNTExLDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlm
IChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyPigpKSB7
CisgICAgICAgIFdlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgIH0KKwogICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyPigpKSB7CiAgICAg
ICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVj
dGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkBAIC02MjMsNiAr
NjI4LDEyIEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNhY2hlcygpCiAgICAgc2V0
Q2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpOwogICAgIHNldENhY2hlTW9kZWwo
Y2FjaGVNb2RlbCk7CiAKKyAgICAvLyBJZiB0aGUgbWVtb3J5IGNhY2hlIGlzIGN1cnJlbnRseSBl
bmFibGVkLCB0b2dnbGUgaXQgb24gYW5kIG9mZiB0byBldmljdCBpdHMgcmVzb3VyY2VzLgorICAg
IGlmICghbWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkgeworICAgICAgICBtZW1vcnlDYWNoZSgp
LT5zZXREaXNhYmxlZCh0cnVlKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQo
ZmFsc2UpOworICAgIH0KKwogICAgIC8vIEVtcHR5IHRoZSBjcm9zcy1vcmlnaW4gcHJlZmxpZ2h0
IGNhY2hlLgogICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmVt
cHR5KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2
aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAko
d29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICAvLyBHZW9sb2Nh
dGlvbgogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRpb25NYW5hZ2VyKCkgeyBy
ZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KIAorICAgIHZvaWQgY2xlYXJSZXNvdXJjZUNh
Y2hlcygpOworCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTM5LDcgKzE0MSw2
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlQ2FjaGVTaXplcyhDYWNoZU1v
ZGVsIGNhY2hlTW9kZWwsIHVpbnQ2NF90IG1lbW9yeVNpemUsIHVpbnQ2NF90IGRpc2tGcmVlU2l6
ZSwKICAgICAgICAgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hl
TWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRvdWJsZSYg
ZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKICAgICAgICAgdW5zaWduZWQmIHBhZ2VD
YWNoZUNhcGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1bnNp
Z25lZCBsb25nJiB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci0gICAgdm9pZCBjbGVhclJlc291cmNl
Q2FjaGVzKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2
b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDYWNoZU1hbmFnZXIu
Y3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdl
ci5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgor
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJDYWNoZU1hbmFnZXImIFdlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBzdGF0aWMg
V2ViQ2FjaGVNYW5hZ2VyJiBzaGFyZWQgPSAqbmV3IFdlYkNhY2hlTWFuYWdlcjsKKyAgICByZXR1
cm4gc2hhcmVkOworfQorCitXZWJDYWNoZU1hbmFnZXI6OldlYkNhY2hlTWFuYWdlcigpCit7Cit9
CisKK1dlYkNhY2hlTWFuYWdlcjo6fldlYkNhY2hlTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2Vi
Q2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKKwordm9pZCBXZWJDYWNo
ZU1hbmFnZXI6OmdldENhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdAorewor
ICAgIEhhc2hTZXQ8U3RyaW5nPiBvcmlnaW5zOworICAgIG1lbW9yeUNhY2hlKCktPm9yaWdpbnNX
aXRoQ2FjaGUob3JpZ2lucyk7CisKKyAgICBzaXplX3QgbnVtT3JpZ2lucyA9IG9yaWdpbnMuc2l6
ZSgpOworCisgICAgVmVjdG9yPFN0cmluZz4gaWRlbnRpZmllcnMobnVtT3JpZ2lucyk7CisgICAg
SGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOworCisgICAgdW5z
aWduZWQgaSA9IDA7CisgICAgZm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gb3Jp
Z2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGlkZW50aWZpZXJzW2krK10g
PSAqaXQ7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYkNhY2hlTWFuYWdlclByb3h5OjpEaWRHZXRDYWNoZU9yaWdpbnMoaWRlbnRpZmll
cnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUNh
Y2hlRm9yT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKSBjb25zdAoreworICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcob3JpZ2luU3RyaW5nKTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihvcmlnaW4pOwor
fQorCit2b2lkIFdlYkNhY2hlTWFuYWdlcjo6ZGVsZXRlQWxsQ2FjaGUoKSBjb25zdAoreworICAg
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNhY2hlTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNhY2hlTWFuYWdl
ci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJDYWNoZU1hbmFnZXJfaAorI2RlZmluZSBXZWJDYWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSAi
QXJndW1lbnRzLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50
RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDYWNoZU1hbmFnZXIgeworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFdlYkNhY2hlTWFuYWdlcik7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNhY2hl
TWFuYWdlciYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworCitwcml2YXRlOgorICAgIFdlYkNhY2hlTWFuYWdlcigpOworICAgIHZpcnR1YWwgfldl
YkNhY2hlTWFuYWdlcigpOworCisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNh
Y2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDYWNo
ZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQs
IENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnMo
dWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CisgICAgdm9pZCBkZWxldGVDYWNoZUZvck9yaWdp
bihjb25zdCBTdHJpbmcmIG9yaWdpbikgY29uc3Q7CisgICAgdm9pZCBkZWxldGVBbGxDYWNoZSgp
IGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDYWNo
ZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4J
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBX
ZWJDYWNoZU1hbmFnZXIgeworICAgIHZvaWQgR2V0Q2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxi
YWNrSUQpCisgICAgdm9pZCBEZWxldGVDYWNoZUZvck9yaWdpbihXVEY6OlN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQorICAgIHZvaWQgRGVsZXRlQWxsQ2FjaGUoKQorfQpJbmRleDogU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNDUsNiArMTM0NSwxOCBAQAogCQkJ
PEZpbHRlcgogCQkJCU5hbWU9IldlYkNvcmVTdXBwb3J0IgogCQkJCT4KKyAgICAgICAgICAgICAg
ICA8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRc
V2ViQ2FjaGVNYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ2FjaGVNYW5h
Z2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5p
biIKKwkJCQkJPgorCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ2hyb21lQ2xpZW50LmNwcCIKIAkJCQkJPgpA
QCAtMjI1OCw2ICsyMjcwLDE4IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2Vi
QmFja0ZvcndhcmRMaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4iCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xXZWJDb250ZXh0LmNwcCIKIAkJCQk+CkBAIC0yNTYwLDYgKzI1ODQsMTQg
QEAKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRM
aXN0SXRlbS5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgIDxG
aWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NhY2hlTWFuYWdl
ci5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ2FjaGVNYW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJ
CTwvRmlsZT4KIAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQ29udGV4dC5jcHAiCiAJCQkJCQk+CkBAIC0zMjk0LDYgKzMzMjYsMjIgQEAKIAkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAJCQkJPgogCQkJPC9G
aWxlPgorICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ29udGV4dE1lc3NhZ2VS
ZWNlaXZlci5jcHAiCiAJCQkJPgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5l
cmF0ZWQubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVy
YXRlZC5tYWtlCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
R2VuZXJhdGVkLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgYWxsOgogICAg
IHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAg
ICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0LmgiICIl
Q29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2Qg
Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIgIiVDb25maWd1cmF0
aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9j
ZXNzXEFQSVxDXFdLQ2FjaGVNYW5hZ2VyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNs
dWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NvbnRl
eHQuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29w
eSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dFByaXZhdGUuaCIgIiVDb25maWd1
cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlhbC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82571</attachid>
            <date>2011-02-15 19:07:36 -0800</date>
            <delta_ts>2011-02-15 19:55:27 -0800</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>64315</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw4IEBAIF9fWk43V2ViQ29yZTEx
SGlzdG9yeUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXREaXNhYmxlZEVi
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMTZvcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0
cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTM19FRUVFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMjVyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luRU4zV1RGNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxSZWN0VG9WaXNpYmxl
RVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUx
MWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTFtZW1vcnlD
YWNoZUV2CkBAIC0xMDU4LDYgKzEwNjAsNyBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRl
cjN1cmxFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyTGlzdEl0ZW0xMG1hcmtlclRleHRFdgogX19a
Tks3V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxMGNvbm5lY3Rpb25FdgogX19aTks3V2ViQ29yZTE0
UmVzb3VyY2VMb2FkZXIxMWZyYW1lTG9hZGVyRXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luOHRvU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5
RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVu
dGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCwzNSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXNv
dXJjZUFjY2Vzc2VkKENhY2hlCiAgICAgaW5zZXJ0SW5MUlVMaXN0KHJlc291cmNlKTsKIH0KIAor
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbikKK3sKKyAgICBWZWN0b3I8Q2FjaGVkUmVzb3VyY2UqPiByZXNvdXJj
ZXNXaXRoT3JpZ2luOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jl
c291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHJl
c291cmNlLT51cmwoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4uZ2V0
KCkpKQorICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwor
ICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9yaWdpbi5z
aXplKCk7ICsraSkKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlc1dpdGhPcmlnaW5baV0pOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3RyaW5nPiYgb3Jp
Z2lucykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2Vz
LmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNv
dXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBTdHJpbmcgb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnNlY29uZC0+dXJsKCkpLT50b1N0
cmluZygpOworICAgICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBvcmlnaW5zLmFkZChvcmlnaW4pOworICAgIH0KK30KKwogdm9pZCBNZW1v
cnlDYWNoZTo6cmVtb3ZlRnJvbUxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiB7CiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgYmVlbiBhY2Nlc3NlZCwgdGhl
biB3ZSdyZSBicmFuZCBuZXcgYW5kIG5vdCBpbiBhbnkgbGlzdC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCw3IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNv
dXJjZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgS1VSTDsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNhY2hlIGhvbGRzIHN1YnJlc291cmNlcyB1c2VkIGJ5
IFdlYiBwYWdlczogaW1hZ2VzLCBzY3JpcHRzLCBzdHlsZXNoZWV0cywgZXRjLgogCkBAIC0xNjMs
NiArMTY0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNo
ZWRSZXNvdXJjZSopOwogCisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHZvaWQgb3JpZ2luc1dpdGhDYWNoZShIYXNoU2V0PFN0
cmluZz4mIG9yaWdpbnMpOworCiBwcml2YXRlOgogICAgIE1lbW9yeUNhY2hlKCk7CiAgICAgfk1l
bW9yeUNhY2hlKCk7IC8vIE5vdCBpbXBsZW1lbnRlZCB0byBtYWtlIHN1cmUgbm9ib2R5IGFjY2lk
ZW50YWxseSBjYWxscyBkZWxldGUgLS0gV2ViQ29yZSBkb2VzIG5vdCBkZWxldGUgc2luZ2xldG9u
cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODcgQEAKKzIwMTEtMDItMTUgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdl
IHRoZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBB
UEkgdG8gbWFuYWdlIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZS4gVGhpcyBBUEkgZXhwb3NlcyB0
aHJlZSBmdW5jdGlvbnM6CisgICAgICAgIAorICAgICAgICAxKSBBIG1ldGhvZCB0byBnZXQgYSBs
aXN0IG9mIGFsbCBzZWN1cml0eSBvcmlnaW5zIHRoYXQgaGF2ZSBlbnRyaWVzIGluIHRoZSBXZWJD
b3JlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgMikgQSBtZXRob2QgdG8gcmVtb3ZlIGFsbCBlbnRy
aWVzIGluIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZSBmcm9tIGEgU2VjdXJpdHlPcmlnaW4uCisg
ICAgICAgIDMpIEEgbWV0aG9kIHRvIHJlbW92ZSBhbGwgZW50cmllcyBmcm9tIHRoZSBXZWJDb3Jl
IG1lbW9yeSBjYWNoZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6
IEFkZCB0d28gbmV3IE1lc3NhZ2VDbGFzc2VzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jh
c2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZCBhIENhY2hlTWFuYWdlciB0
eXBlLgorICAgICAgICAqIFNoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oOiBUeXBlZGVmIFdLQ2Fj
aGVNYW5hZ2VyUmVmLgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyk6IENyZWF0ZXMgYSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiB1c2luZyAKKyAg
ICAgICAgICAgIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcpOiBDYWxscyB0aHJvdWdoIHRvIFNlY3Vy
aXR5T3JpZ2luOjp0b1N0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKTogUmV0dXJucyB0aGUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkgdHlwZS4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmln
aW5zLgorICAgICAgICAoY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKToK
KyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IpOgorICAgICAgICAoV0tD
YWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luLgorICAgICAgICAoV0tDYWNoZU1h
bmFnZXJEZWxldGVBbGxDYWNoZSk6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFu
YWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
OgorICAgICAgICAoV0tDb250ZXh0R2V0Q2FjaGVNYW5hZ2VyKTogQ2FsbHMgdG8gZ2V0IHRoZSBX
ZWJDYWNoZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENhbGxz
IHRocm91Z2ggdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOiBJbml0aWFsaXplIHRoZSBtX3dlYkNv
bnRleHQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp+
V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQ
cm94eTo6aW52YWxpZGF0ZSk6IEludmFsaWRhdGUgdGhlIGNhbGxiYWNrIG1hcC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyk6IENhbGwgdGhy
b3VnaCB0byB0aGUgd2ViIHByb2Nlc3MgdG8gZ2V0IHRoZSBjYWNoZQorICAgICAgICAgICAgb3Jp
Z2lucy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldENhY2hl
T3JpZ2lucyk6IENhbGwgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4pOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdl
YiBwcm9jZXNzIHRvIGRlbGV0ZSBjYWNoZQorICAgICAgICAgICAgZm9yIHRoZSBnaXZlbiBvcmln
aW4uIAorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ2Fj
aGUpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwgb2YgdGhl
IGNhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6ICBJbnZhbGlkYXRlcyBuZXcg
bWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZSk6IFBhc3NlcyBjYWNoZSBtZXNzYWdlcyB0byB0aGUgY2FjaGUgbWFuYWdlci4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpjYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOiBBZGQgYSBuZXcgbWVzc2FnZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpXZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6
On5XZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQ2FsbHMgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9y
aWdpbnMpOiBHZXRzIGEgbGlzdCBvZiBvcmlnaW5zIHdpdGggY2FjaGUgZW50cmllcyBmcm9tIHRo
ZSBtZW1vcnkKKyAgICAgICAgICAgIGNhY2hlLCBhbmQgcHV0cyB0aGVtIGludG8gYSB2ZWN0b3Ig
dG8gc2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpkZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gbWVtb3J5Q2FjaGUg
dG8gZGVsZXRlIGFsbCBjYWNoZSBlbnRyaWVzCisgICAgICAgICAgICBmcm9tIGEgZ2l2ZW4gb3Jp
Z2luLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbENhY2hlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMpOiBEaXNhYmxlIGFuZCBy
ZS1lbmFibGUgdGhlIG1lbW9yeSBjYWNoZSwgdG8gbWFrZSBzdXJlIGl0IGV2aWN0cworICAgICAg
ICAgICAgYWxsIG9mIGl0cyByZXNvdXJjZXMuIFRoaXMgd2FzIGRvbmUgb24gV2ViS2l0MSwgYnV0
IG5vdCBXZWJLaXQyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5l
dyBmaWxlcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6IEFkZGVkIG5ldyBpbmNsdWRlIGRpcmVjdG9yeS4K
KyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOiBBZGRlZCBuZXcgaGVhZGVyLgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQCBWUEFUSCA9IFwKICAgICAk
KFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lbW9yeUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NSw2ICs0Niw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAg
UGx1Z2luUHJveHkgXAogICAgIFdlYkNvbnRleHQgXAorICAgIFdlYkNhY2hlTWFuYWdlciBcCisg
ICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgJKHJldmlz
aW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAg
ICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWEsCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFM
ZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzSW5qZWN0ZWRCdW5kbGUsCisgICAgTWVzc2FnZUNsYXNz
V2ViQ2FjaGVNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlciwKICAg
ICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xh
c3NXZWJJbnNwZWN0b3IsCkBAIC00OSw2ICs1MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAg
ICBNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVh
UHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxlZ2FjeSwKKyAgICBNZXNz
YWdlQ2xhc3NXZWJDYWNoZU1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0
LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHksCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShy
ZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIFVJUHJvY2Vz
cyB0eXBlcwogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0LAogICAgICAgICBUeXBlQmFja0Zv
cndhcmRMaXN0SXRlbSwKKyAgICAgICAgVHlwZUNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUNv
bnRleHQsCiAgICAgICAgIFR5cGVEYXRhYmFzZU1hbmFnZXIsCiAgICAgICAgIFR5cGVEb3dubG9h
ZCwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCShyZXZp
c2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMCArNTIsMTkgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luLnJlbGVhc2Uo
KSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBj
cmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgUmVm
UHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHN0cmluZyk7CisgICAgICAgIGlmICghc2Vj
dXJpdHlPcmlnaW4pCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBXZWJTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbi5yZWxlYXNlKCkpKTsKKyAg
ICB9CisKICAgICBjb25zdCBTdHJpbmcgcHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3NlY3Vy
aXR5T3JpZ2luLT5wcm90b2NvbCgpOyB9CiAgICAgY29uc3QgU3RyaW5nIGhvc3QoKSBjb25zdCB7
IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5ob3N0KCk7IH0KICAgICB1bnNpZ25lZCBzaG9ydCBw
b3J0KCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+cG9ydCgpOyB9CiAKKyAgICBj
b25zdCBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT50
b1N0cmluZygpOyB9CiAgICAgY29uc3QgU3RyaW5nIGRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpOyB9CiAKIHBy
aXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCShyZXZpc2lvbiA3
ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBj
b3B5KQpAQCAtNzEsNiArNzEsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhl
bnRpY2F0CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uRGVjaXNp
b25MaXN0ZW5lciogV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXJSZWY7CiB0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdCogV0tCYWNrRm9yd2FyZExpc3RS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdEl0ZW0qIFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ2Fj
aGVNYW5hZ2VyKiBXS0NhY2hlTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLQ29udGV4dCogV0tDb250ZXh0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tD
cmVkZW50aWFsKiBXS0NyZWRlbnRpYWxSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0RhdGFiYXNlTWFuYWdlciogV0tEYXRhYmFzZU1hbmFnZXJSZWY7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAi
SW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5j
bHVkZSAiV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFdlYkNhY2hlTWFuYWdlclBy
b3h5PiBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIHdlYkNvbnRleHQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJDYWNoZU1hbmFnZXJQcm94eSh3ZWJDb250
ZXh0KSk7Cit9CisKK1dlYkNhY2hlTWFuYWdlclByb3h5OjpXZWJDYWNoZU1hbmFnZXJQcm94eShX
ZWJDb250ZXh0KiB3ZWJDb250ZXh0KQorICAgIDogbV93ZWJDb250ZXh0KHdlYkNvbnRleHQpCit7
Cit9CisKK1dlYkNhY2hlTWFuYWdlclByb3h5Ojp+V2ViQ2FjaGVNYW5hZ2VyUHJveHkoKQorewor
fQorCit2b2lkIFdlYkNhY2hlTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBpbnZh
bGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVN
YW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBy
cENhbGxiYWNrKQoreworICAgIFJlZlB0cjxBcnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENh
bGxiYWNrOworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkgeworICAg
ICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJy
YXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLnJlbGVhc2UoKSk7CisgICAgbV93
ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkNhY2hlTWFuYWdlcjo6R2V0
Q2FjaGVPcmlnaW5zKGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXJQ
cm94eTo6ZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVu
dGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFj
az4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgaWYg
KCFjYWxsYmFjaykgeworICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNpemVfdCBvcmlnaW5JZGVudGlmaWVyc0NvdW50
ID0gb3JpZ2luSWRlbnRpZmllcnMuc2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0
PiA+IHNlY3VyaXR5T3JpZ2lucyhvcmlnaW5JZGVudGlmaWVyc0NvdW50KTsKKworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgb3JpZ2luSWRlbnRpZmllcnNDb3VudDsgKytpKSB7CisgICAgICAg
IFJlZlB0cjxBUElPYmplY3Q+IG9yaWdpbiA9IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKG9yaWdpbklkZW50aWZpZXJzW2ldKTsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc2VjdXJpdHlPcmlnaW5zW2ldID0gb3JpZ2luOwor
ICAgIH0KKworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoSW1t
dXRhYmxlQXJyYXk6OmFkb3B0KHNlY3VyaXR5T3JpZ2lucykuZ2V0KCkpOworfQorCit2b2lkIFdl
YkNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVDYWNoZUZvck9yaWdpbihXZWJTZWN1cml0eU9yaWdp
biogb3JpZ2luKQoreworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJDYWNoZU1hbmFnZXI6OkRlbGV0ZUNhY2hlRm9yT3JpZ2luKG9yaWdpbi0+dG9TdHJp
bmcoKSksIDApOworfQorCit2b2lkIFdlYkNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVBbGxDYWNo
ZSgpCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAg
ICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YkNhY2hlTWFuYWdlcjo6RGVsZXRlQWxsQ2FjaGUoKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclBy
b3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFu
YWdlclByb3h5LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViQ2FjaGVNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJDYWNoZU1h
bmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJBcmd1bWVu
dHMuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsK
K2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdl
SUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb250ZXh0OworY2xhc3Mg
V2ViU2VjdXJpdHlPcmlnaW47CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+
IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYkNhY2hlTWFuYWdlclByb3h5IDogcHVibGljIEFQ
SU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVD
YWNoZU1hbmFnZXI7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDYWNoZU1hbmFnZXJQcm94
eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJDYWNoZU1hbmFnZXJQcm94
eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7
IG1fd2ViQ29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgZ2V0Q2FjaGVPcmlnaW5zKFBhc3NSZWZQ
dHI8QXJyYXlDYWxsYmFjaz4pOworICAgIHZvaWQgZGVsZXRlQ2FjaGVGb3JPcmlnaW4oV2ViU2Vj
dXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRlbGV0ZUFsbENhY2hlKCk7CisKKyAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgV2ViQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworCisg
ICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICAv
LyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisK
KyAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPEFycmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRGF0YWJhc2VNYW5hZ2VyUHJveHlfaApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
NSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAt
PiBXZWJDYWNoZU1hbmFnZXJQcm94eSB7CisgICAgRGlkR2V0Q2FjaGVPcmlnaW5zKFZlY3RvcjxX
VEY6OlN0cmluZz4gb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiA3ODUw
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNz
YWdlS2luZHMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKQEAgLTk1LDYgKzk2LDcgQEAgV2ViQ29u
dGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9kZWwgcHJvYwogICAgICwgbV9jbGVhckFwcGxpY2F0
aW9uQ2FjaGVGb3JOZXdXZWJQcm9jZXNzKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVyRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlckludGVydmFsKDE0MDAuMCkKKyAgICAs
IG1fY2FjaGVNYW5hZ2VyUHJveHkoV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkK
ICAgICAsIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNy
ZWF0ZSh0aGlzKSkKICAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQTEFURk9STShXSU4pCkBAIC0xMTQs
NiArMTE2LDkgQEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogCiAgICAgV2ViUHJvY2Vzc01h
bmFnZXI6OnNoYXJlZCgpLmNvbnRleHRXYXNEZXN0cm95ZWQodGhpcyk7CiAKKyAgICBtX2NhY2hl
TWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CisgICAgbV9jYWNoZU1hbmFnZXJQcm94eS0+Y2xl
YXJDb250ZXh0KCk7CisKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRl
KCk7CiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CiAKQEAg
LTQ4Myw2ICs0ODgsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NXZWJDYWNoZU1hbmFnZXJQcm94eT4oKSkgeworICAgICAgICBtX2NhY2hl
TWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2
ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFy
Z3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKK2NsYXNzIFdlYkNhY2hlTWFuYWdlclBy
b3h5OwogY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKQEAgLTEyNyw2ICsxMjgsNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gcGRm
QW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpOwogCisgICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkqIGNh
Y2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU1hbmFnZXJQcm94eS5nZXQo
KTsgfQogICAgIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXJQcm94eSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7
IHJldHVybiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LmdldCgpOyB9CiAKQEAgLTIwMiw2ICsy
MDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZDsKICAgICBk
b3VibGUgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWw7CiAKKyAgICBSZWZQdHI8V2ViQ2FjaGVNYW5h
Z2VyUHJveHk+IG1fY2FjaGVNYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJHZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eT4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsKIApJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDc4
NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xh
c3NXZWJDb250ZXh0PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdl
Q2xhc3NXZWJDb250ZXh0TGVnYWN5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBD
OjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxD
b3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDYWNoZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBt
ZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+
KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gNzg1MDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CitjbGFzcyBXZWJDYWNoZU1hbmFnZXJQcm94eTsKIGNs
YXNzIFdlYkNvbnRleHQ7CiBjbGFzcyBXZWJDcmVkZW50aWFsOwogY2xhc3MgV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHk7CkBAIC02OCw2ICs2OSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhl
bnRpY2F0aW9uQ2hhbGwKIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNp
b25MaXN0ZW5lclJlZiwgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSkKIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdFJlZiwgV2ViQmFja0Zvcndh
cmRMaXN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQ2FjaGVNYW5hZ2VyUmVmLCBXZWJDYWNoZU1h
bmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0NvbnRleHRSZWYsIFdlYkNvbnRleHQp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tDcmVkZW50aWFsUmVmLCBXZWJDcmVkZW50aWFsKQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLRGF0YWJhc2VNYW5hZ2VyUmVmLCBXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2Fj
aGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0NhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tDYWNoZU1hbmFnZXIu
aCIKKworI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCisKKyNpZmRlZiBfX0JMT0NLU19fCisjaW5jbHVkZSA8QmxvY2suaD4KKyNlbmRpZgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0NhY2hlTWFuYWdlckdldFR5
cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkNhY2hlTWFuYWdlclByb3h5OjpBUElUeXBl
KTsKK30KKwordm9pZCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2lucyhXS0NhY2hlTWFuYWdl
clJlZiBjYWNoZU1hbmFnZXJSZWYsIHZvaWQqIGNvbnRleHQsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2Fj
aGVPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJl
ZiktPmdldENhY2hlT3JpZ2lucyhBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJh
Y2spKTsKK30KKworI2lmZGVmIF9fQkxPQ0tTX18KK3N0YXRpYyB2b2lkIGNhbGxHZXRDYWNoZU9y
aWdpbnNCbG9ja0Jsb2NrQW5kRGlzcG9zZShXS0FycmF5UmVmIHJlc3VsdFZhbHVlLCBXS0Vycm9y
UmVmIGVycm9yUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFdLQ2FjaGVNYW5hZ2VyR2V0Q2Fj
aGVPcmlnaW5zQmxvY2sgYmxvY2sgPSAoV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9j
ayljb250ZXh0OworICAgIGJsb2NrKHJlc3VsdFZhbHVlLCBlcnJvclJlZik7CisgICAgQmxvY2tf
cmVsZWFzZShibG9jayk7Cit9CisKK3ZvaWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNf
YihXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmFnZXJSZWYsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2Fj
aGVPcmlnaW5zQmxvY2sgYmxvY2spCit7CisgICAgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdp
bnMoY2FjaGVNYW5hZ2VyUmVmLCBCbG9ja19jb3B5KGJsb2NrKSwgY2FsbEdldENhY2hlT3JpZ2lu
c0Jsb2NrQmxvY2tBbmREaXNwb3NlKTsKK30KKyNlbmRpZgorCit2b2lkIFdLQ2FjaGVNYW5hZ2Vy
RGVsZXRlQ2FjaGVGb3JPcmlnaW4oV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJlZikKK3sKKyAgICB0b0ltcGwoY2FjaGVNYW5hZ2Vy
UmVmKS0+ZGVsZXRlQ2FjaGVGb3JPcmlnaW4odG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lk
IFdLQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsQ2FjaGUoV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5h
Z2VyUmVmKQoreworICAgIHRvSW1wbChjYWNoZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxDYWNoZSgp
OyAgICAKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFu
YWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nh
Y2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdLQ2FjaGVNYW5hZ2VyX2gKKyNkZWZpbmUgV0tDYWNoZU1hbmFnZXJf
aAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitl
eHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tDYWNoZU1hbmFnZXJH
ZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lkICgqV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdp
bnNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZv
aWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnMoV0tDYWNoZU1hbmFnZXJSZWYgY29udGV4
dFJlZiwgdm9pZCogY29udGV4dCwgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNGdW5jdGlv
biBmdW5jdGlvbik7CisjaWZkZWYgX19CTE9DS1NfXwordHlwZWRlZiB2b2lkICheV0tDYWNoZU1h
bmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jaykoV0tBcnJheVJlZiwgV0tFcnJvclJlZik7CitXS19F
WFBPUlQgdm9pZCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2luc19iKFdLQ2FjaGVNYW5hZ2Vy
UmVmIGRhdGFiYXNlTWFuYWdlciwgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jayBi
bG9jayk7CisjZW5kaWYKKworV0tfRVhQT1JUIHZvaWQgV0tDYWNoZU1hbmFnZXJEZWxldGVDYWNo
ZUZvck9yaWdpbihXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmdlciwgV0tTZWN1cml0eU9yaWdp
blJlZiBvcmlnaW4pOworV0tfRVhQT1JUIHZvaWQgV0tDYWNoZU1hbmFnZXJEZWxldGVBbGxDYWNo
ZShXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmFnZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tDYWNoZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHJldmlzaW9uIDc4NTAxKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1OCw2ICsxNTgsMTEgQEAgdm9pZCBXS0NvbnRleHRDbGVhckFwcGxpY2F0aW9u
Q2FjaGUoV0tDbwogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Y2xlYXJBcHBsaWNhdGlvbkNhY2hl
KCk7CiB9CiAKK1dLQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENhY2hlTWFuYWdlcihXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRS
ZWYpLT5jYWNoZU1hbmFnZXJQcm94eSgpKTsKK30KKwogV0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tD
b250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAg
IHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPmRhdGFiYXNlTWFuYWdlclByb3h5KCkp
OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkocmV2
aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2ICsxMjMsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRDbGVhckFwcGxpY2F0aW9uCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdGFydE1lbW9y
eVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLRG91YmxlUmVmIGludGVydmFsKTsKIFdL
X0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0b3BNZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKIAorV0tfRVhQT1JUIFdLQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldENhY2hlTWFu
YWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tEYXRhYmFzZU1hbmFnZXJS
ZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdL
X0VYUE9SVCBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1h
bmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3ODUwMSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMjQxLDYgKzI0MSwxNiBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUM4RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5t
bSAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3Qu
aCAqLzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQ
YWdlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
Lm1tICovOyB9OworCQkzMzVDNDY5NDEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNUM0
NjkxMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuY3BwICovOyB9OworCQkzMzVD
NDY5NTEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzVDNDY5MjEzMEI1N0ZDMDAyNDRCRDAg
LyogV2ViQ2FjaGVNYW5hZ2VyLmggKi87IH07CisJCTMzQkEyOTM2MTMwQjRERjAwMDJCQjlFQyAv
KiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JBMjkzNTEzMEI0REYwMDAyQkI5RUMgLyogV2ViQ2Fj
aGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQkzM0JBMjkzQTEzMEI0RTAyMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkEyOTM3MTMwQjRFMDIwMDJCQjlFQyAv
KiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkzM0JBMjkzQjEz
MEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkEyOTM4MTMwQjRFMDIwMDJCQjlF
QyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkzM0JBMjkzQzEzMEI0RTAy
MDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCQTI5MzkxMzBCNEUw
MjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJMzNFNUVGMDIxMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTVFRjAwMTMwQjRB
RDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5jcHAgKi87IH07CisJCTMzRTVFRjAzMTMwQjRB
RDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzNFNUVGMDExMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVN
YW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9Owor
CQkzM0U1RUYwNjEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNFNUVGMDQxMzBC
NEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMzNFNUVG
MDcxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U1RUYwNTEzMEI0QjJCMDBBQzg4
NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJMzdGNjIzQjgxMkE1N0I2MjAw
RTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTAy
MUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4
MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07CiAJCTUxMEZCQjlB
MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk4MTI4OEM5NUUwMEFG
RkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLzsgfTsKQEAgLTEwMTQsNiArMTAy
NCwxOCBAQAogCQkyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlDRDU1QTkx
MjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUwMEM5
MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdDJQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzM1QzQ2OTEx
MzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXIuY3BwOyBwYXRoID0gTWVtb3J5Q2Fj
aGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzM1
QzQ2OTIxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXIuaDsgcGF0aCA9IE1lbW9yeUNhY2hl
L1dlYkNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzVDNDY5
MzEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IE1lbW9y
eUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzNCQTI5MTgxMzBCNEM1MTAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkNhY2hlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0JBMjkzNTEzMEI0
REYwMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBh
dGggPSAvVXNlcnMvYnJpYW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNv
dXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTMzQkEyOTM3MTMwQjRFMDIwMDJCQjlFQyAv
KiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IC9Vc2Vycy9icmlhbl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1Zy9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTMzQkEyOTM4MTMwQjRFMDIwMDJCQjlF
QyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gL1VzZXJzL2JyaWFuX3dl
aW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKKwkJMzNCQTI5MzkxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IC9Vc2Vycy9icmlh
bl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJMzNFNUVGMDAxMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2Fj
aGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ2Fj
aGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNFNUVGMDExMzBC
NEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLQ2FjaGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMzRTVFRjA0MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDYWNoZU1hbmFnZXJQcm94eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzRTVFRjA1MTMwQjRCMkIwMEFDODg0
QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJDYWNoZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNs
aWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNv
bnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBG
QkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMTMsNiArMjAzNSwxNiBAQAogCQkJ
dGFiV2lkdGggPSA4OwogCQkJdXNlc1RhYnMgPSAwOwogCQl9OworCQkzMzVDNDY5MDEzMEI1N0My
MDAyNDRCRDAgLyogTWVtb3J5Q2FjaGUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTMzNUM0NjkxMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFn
ZXIuY3BwICovLAorCQkJCTMzNUM0NjkyMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFn
ZXIuaCAqLywKKwkJCQkzMzVDNDY5MzEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCW5hbWUgPSBNZW1vcnlDYWNoZTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTUxMkY1ODg2MTJBODgzNDcwMDYyOTUzMCAvKiBB
dXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC0yMDU2LDYgKzIwODgsNyBAQAogCQkJCUJDMEU1RkNCMTJENjk2REQwMDEyQTcyQSAvKiBH
ZW9sb2NhdGlvbiAqLywKIAkJCQlCQzIwNEVERjExQzgzRTcyMDA4RjMzNzUgLyogSW5qZWN0ZWRC
dW5kbGUgKi8sCiAJCQkJMUE2RkEwMUMxMUUxNTI2MzAwREIxMzcxIC8qIG1hYyAqLywKKwkJCQkz
MzVDNDY5MDEzMEI1N0MyMDAyNDRCRDAgLyogTWVtb3J5Q2FjaGUgKi8sCiAJCQkJMUE2RkI3QUEx
MUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCiAJCQkJQkMwMzJENUQxMEY0MzcyMjAwNThD
MTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovLAogCQkJCUJDMDMyRDVFMTBGNDM3MkIwMDU4QzE1QSAv
KiBXZWJQYWdlICovLApAQCAtMjE4Niw2ICsyMjE5LDkgQEAKIAkJCQkxQTBGMjlFMjEyMEI0NDQy
MDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92aWRlci5oICovLAogCQkJCUJDNzJCQTFCMTFFNjQ5
MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJCUJDNzJCQTFDMTFF
NjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2FyZExpc3QuaCAqLywKKwkJCQkzM0U1RUYwNDEz
MEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTMzRTVF
RjA1MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5oICovLAorCQkJCTMz
QkEyOTE4MTMwQjRDNTEwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
biAqLywKIAkJCQlCQ0I5RTI0MjExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8s
CiAJCQkJQkNCOUUyNDExMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuaCAqLywKIAkJCQlC
Q0VFN0QwOTEyODQ2QUVEMDA5ODI3REEgLyogV2ViQ29udGV4dC5tZXNzYWdlcy5pbiAqLywKQEAg
LTIyODEsNiArMjMxNyw4IEBACiAJCQkJQkM2NDZDMTcxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFj
a0ZvcndhcmRMaXN0LmggKi8sCiAJCQkJQkM2NDZDMTgxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8sCiAJCQkJQkM2NDZDMTkxMUREMzk5RjAwNjQ1NUIwIC8q
IFdLQmFja0ZvcndhcmRMaXN0SXRlbS5oICovLAorCQkJCTMzRTVFRjAwMTMwQjRBRDkwMEFDODg0
QiAvKiBXS0NhY2hlTWFuYWdlci5jcHAgKi8sCisJCQkJMzNFNUVGMDExMzBCNEFEOTAwQUM4ODRC
IC8qIFdLQ2FjaGVNYW5hZ2VyLmggKi8sCiAJCQkJQkNCOUUyNEExMTIwRTE1QzAwQTEzN0UwIC8q
IFdLQ29udGV4dC5jcHAgKi8sCiAJCQkJQkNCOUUyNDkxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29u
dGV4dC5oICovLAogCQkJCUJDQzkzOEUwMTE4MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQcml2
YXRlLmggKi8sCkBAIC0yNzY0LDYgKzI4MDIsMTAgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBG
RkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2RTEy
NTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJ
CTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJ
CQkJMzNCQTI5MzcxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCisJCQkJMzNCQTI5MzgxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFu
YWdlck1lc3NhZ2VzLmggKi8sCisJCQkJMzNCQTI5MzkxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzM0JBMjkzNTEzMEI0
REYwMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUJD
RUU3RDBCMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKIAkJCQlCQ0VFN0QwQzEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VzLmgg
Ki8sCiAJCQkJRjYyQTc2QjIxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0zMTc1LDYgKzMyMTcsMTEgQEAKIAkJCQlCQ0E1NkEx
QzEyRjkwMjhFMDBDNTY2QzcgLyogV2ViR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0E1NkE2NTEyRjlDOEY5MDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDQTU2QTY5MTJGOUM5QUQwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29u
dGV4dENHLmggaW4gSGVhZGVycyAqLywKKwkJCQkzM0U1RUYwMzEzMEI0QUQ5MDBBQzg4NEIgLyog
V0tDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzRTVFRjA3MTMwQjRCMkIwMEFD
ODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzNCQTI5
MzYxMzBCNERGMDAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTMzQkEyOTNCMTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzM1QzQ2OTUxMzBCNTdGQzAwMjQ0QkQw
IC8qIFdlYkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0zNjUyLDYgKzM2OTksMTEg
QEAKIAkJCQlCQ0E1NkE2NjEyRjlDOEY5MDBDNTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBNTZBNkExMkY5QzlBRDAwQzU2NkM3IC8qIFdLR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjU5QzU1MUUxMzAwMDY0MTAwMjVD
MEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzM0U1RUYwMjEzMEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMzNFNUVGMDYxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hl
TWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzQkEyOTNBMTMwQjRFMDIwMDJC
QjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMzNCQTI5M0MxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzNUM0Njk0MTMwQjU3RkMwMDI0
NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMu
aCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRh
dGFiYXNlTWFuYWdlci5oIgpAQCAtNTEwLDYgKzUxMSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAo
bWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlcj4oKSkgewor
ICAgICAgICBXZWJDYWNoZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5h
Z2VyPigpKSB7CiAgICAgICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2
ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1
cm47CkBAIC02MjMsNiArNjI5LDEyIEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNh
Y2hlcygpCiAgICAgc2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpOwogICAg
IHNldENhY2hlTW9kZWwoY2FjaGVNb2RlbCk7CiAKKyAgICAvLyBJZiB0aGUgbWVtb3J5IGNhY2hl
IGlzIGN1cnJlbnRseSBlbmFibGVkLCB0b2dnbGUgaXQgb24gYW5kIG9mZiB0byBldmljdCBpdHMg
cmVzb3VyY2VzLgorICAgIGlmICghbWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkgeworICAgICAg
ICBtZW1vcnlDYWNoZSgpLT5zZXREaXNhYmxlZCh0cnVlKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUo
KS0+c2V0RGlzYWJsZWQoZmFsc2UpOworICAgIH0KKwogICAgIC8vIEVtcHR5IHRoZSBjcm9zcy1v
cmlnaW4gcHJlZmxpZ2h0IGNhY2hlLgogICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2Fj
aGU6OnNoYXJlZCgpLmVtcHR5KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoK
ICAgICAvLyBHZW9sb2NhdGlvbgogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRp
b25NYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KIAorICAgIHZvaWQg
Y2xlYXJSZXNvdXJjZUNhY2hlcygpOworCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApA
QCAtMTM5LDcgKzE0MSw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlQ2Fj
aGVTaXplcyhDYWNoZU1vZGVsIGNhY2hlTW9kZWwsIHVpbnQ2NF90IG1lbW9yeVNpemUsIHVpbnQ2
NF90IGRpc2tGcmVlU2l6ZSwKICAgICAgICAgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwg
dW5zaWduZWQmIGNhY2hlTWluRGVhZENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2Fw
YWNpdHksIGRvdWJsZSYgZGVhZERlY29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKICAgICAgICAg
dW5zaWduZWQmIHBhZ2VDYWNoZUNhcGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9y
eUNhcGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci0gICAgdm9p
ZCBjbGVhclJlc291cmNlQ2FjaGVzKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNsZWFyUmVzb3VyY2VD
YWNoZXMoKTsKICAgICB2b2lkIGNsZWFyQXBwbGljYXRpb25DYWNoZSgpOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNo
ZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9N
ZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDky
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNhY2hl
TWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJ
RC5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlP
cmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJDYWNoZU1hbmFnZXImIFdlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBz
dGF0aWMgV2ViQ2FjaGVNYW5hZ2VyJiBzaGFyZWQgPSAqbmV3IFdlYkNhY2hlTWFuYWdlcjsKKyAg
ICByZXR1cm4gc2hhcmVkOworfQorCitXZWJDYWNoZU1hbmFnZXI6OldlYkNhY2hlTWFuYWdlcigp
Cit7Cit9CisKK1dlYkNhY2hlTWFuYWdlcjo6fldlYkNhY2hlTWFuYWdlcigpCit7Cit9CisKK3Zv
aWQgV2ViQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2Vy
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKKwordm9pZCBX
ZWJDYWNoZU1hbmFnZXI6OmdldENhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25z
dAoreworICAgIEhhc2hTZXQ8U3RyaW5nPiBvcmlnaW5zOworICAgIG1lbW9yeUNhY2hlKCktPm9y
aWdpbnNXaXRoQ2FjaGUob3JpZ2lucyk7CisKKyAgICBzaXplX3QgbnVtT3JpZ2lucyA9IG9yaWdp
bnMuc2l6ZSgpOworCisgICAgVmVjdG9yPFN0cmluZz4gaWRlbnRpZmllcnMobnVtT3JpZ2lucyk7
CisgICAgSGFzaFNldDxTdHJpbmc+OjppdGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOworCisg
ICAgdW5zaWduZWQgaSA9IDA7CisgICAgZm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0
ID0gb3JpZ2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGlkZW50aWZpZXJz
W2krK10gPSAqaXQ7CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYkNhY2hlTWFuYWdlclByb3h5OjpEaWRHZXRDYWNoZU9yaWdpbnMoaWRl
bnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmRl
bGV0ZUNhY2hlRm9yT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKSBjb25zdAorewor
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21TdHJpbmcob3JpZ2luU3RyaW5nKTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbWVtb3J5Q2FjaGUoKS0+cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihvcmln
aW4pOworfQorCit2b2lkIFdlYkNhY2hlTWFuYWdlcjo6ZGVsZXRlQWxsQ2FjaGUoKSBjb25zdAor
eworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01l
bW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJD
YWNoZU1hbmFnZXJfaAorI2RlZmluZSBXZWJDYWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVj
b2RlcjsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJDYWNoZU1hbmFnZXIgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFdlYkNhY2hlTWFuYWdlcik7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNhY2hlTWFu
YWdlciYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciop
OworCitwcml2YXRlOgorICAgIFdlYkNhY2hlTWFuYWdlcigpOworICAgIHZpcnR1YWwgfldlYkNh
Y2hlTWFuYWdlcigpOworCisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNhY2hl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDYWNoZU1h
bmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnModWlu
dDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7CisgICAgdm9pZCBkZWxldGVDYWNoZUZvck9yaWdpbihj
b25zdCBTdHJpbmcmIG9yaWdpbikgY29uc3Q7CisgICAgdm9pZCBkZWxldGVBbGxDYWNoZSgpIGNv
bnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDYWNoZU1h
bmFnZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJD
YWNoZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFu
YWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJDYWNoZU1hbmFn
ZXIgeworICAgIHZvaWQgR2V0Q2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAg
dm9pZCBEZWxldGVDYWNoZUZvck9yaWdpbihXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQor
ICAgIHZvaWQgRGVsZXRlQWxsQ2FjaGUoKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNDIsNiArMTM0MiwyMiBAQAogCQkJCQk+CiAJCQkJPC9G
aWxlPgogCQkJPC9GaWx0ZXI+CisgICAgICAgICAgICA8RmlsdGVyCisgICAgICAgICAgICAgICAg
TmFtZT0iTWVtb3J5Q2FjaGUiCisgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xNZW1vcnlDYWNoZVxXZWJDYWNo
ZU1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xNZW1vcnlDYWNoZVxXZWJDYWNoZU1hbmFnZXIuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlBy
b2Nlc3NcTWVtb3J5Q2FjaGVcV2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIgorCQkJCQk+CisJ
CQkJPC9GaWxlPgorICAgICAgICAgICAgPC9GaWx0ZXI+CiAJCQk8RmlsdGVyCiAJCQkJTmFtZT0i
V2ViQ29yZVN1cHBvcnQiCiAJCQkJPgpAQCAtMjI1OCw2ICsyMjc0LDE4IEBACiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQmFja0ZvcndhcmRMaXN0LmgiCiAJCQkJPgogCQkJPC9G
aWxlPgorICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xX
ZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
V2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJPgorCQkJPC9GaWxlPgogCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb250ZXh0LmNwcCIKIAkJ
CQk+CkBAIC0yNTYwLDYgKzI1ODgsMTQgQEAKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+
CisgICAgICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS0NhY2hlTWFuYWdlci5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJ
CQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ2FjaGVN
YW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5jcHAiCiAJCQkJCQk+CkBAIC0z
Mjk0LDYgKzMzMzAsMjIgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcRHJhd2luZ0FyZWFQcm94eU1l
c3NhZ2VzLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJN
ZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAiCiAJCQkJPgpJbmRleDogU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCShyZXZpc2lvbiA3ODUwMSkKKysrIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAg
LTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29y
ZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJ
XENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50
aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGly
KVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJ
bmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGlu
Z0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQo
UHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBs
dWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNc
TmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
QVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNh
dGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9y
dCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZW1v
cnlDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHBy
aXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3
YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxX
ZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztGUkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdf
V0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJU
aHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkdlbmVyYXRlZC5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
R2VuZXJhdGVkLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJHZW5lcmF0ZWQubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBhbGw6
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0F1dGhlbnRpY2F0aW9uRGVj
aXNpb25MaXN0ZW5lci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQy
IgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExpc3Qu
aCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAv
eSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0SXRlbS5oIiAiJUNvbmZp
Z3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxV
SVByb2Nlc3NcQVBJXENcV0tDYWNoZU1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIl
XGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdL
Q29udGV4dC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0UHJpdmF0ZS5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tDcmVkZW50aWFsLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGly
JVxpbmNsdWRlXFdlYktpdDIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82576</attachid>
            <date>2011-02-15 19:55:27 -0800</date>
            <delta_ts>2011-02-15 20:15:10 -0800</delta_ts>
            <desc>[PATCH] Fix + Qt Build</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>68164</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw4IEBAIF9fWk43V2ViQ29yZTEx
SGlzdG9yeUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXREaXNhYmxlZEVi
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMTZvcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0
cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTM19FRUVFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMjVyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luRU4zV1RGNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxSZWN0VG9WaXNpYmxl
RVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUx
MWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTFtZW1vcnlD
YWNoZUV2CkBAIC0xMDU4LDYgKzEwNjAsNyBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRl
cjN1cmxFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyTGlzdEl0ZW0xMG1hcmtlclRleHRFdgogX19a
Tks3V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxMGNvbm5lY3Rpb25FdgogX19aTks3V2ViQ29yZTE0
UmVzb3VyY2VMb2FkZXIxMWZyYW1lTG9hZGVyRXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luOHRvU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5
RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVu
dGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCwzNSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXNv
dXJjZUFjY2Vzc2VkKENhY2hlCiAgICAgaW5zZXJ0SW5MUlVMaXN0KHJlc291cmNlKTsKIH0KIAor
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbikKK3sKKyAgICBWZWN0b3I8Q2FjaGVkUmVzb3VyY2UqPiByZXNvdXJj
ZXNXaXRoT3JpZ2luOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jl
c291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHJl
c291cmNlLT51cmwoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4uZ2V0
KCkpKQorICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwor
ICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9yaWdpbi5z
aXplKCk7ICsraSkKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlc1dpdGhPcmlnaW5baV0pOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3RyaW5nPiYgb3Jp
Z2lucykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2Vz
LmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNv
dXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBTdHJpbmcgb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnNlY29uZC0+dXJsKCkpLT50b1N0
cmluZygpOworICAgICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBvcmlnaW5zLmFkZChvcmlnaW4pOworICAgIH0KK30KKwogdm9pZCBNZW1v
cnlDYWNoZTo6cmVtb3ZlRnJvbUxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiB7CiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgYmVlbiBhY2Nlc3NlZCwgdGhl
biB3ZSdyZSBicmFuZCBuZXcgYW5kIG5vdCBpbiBhbnkgbGlzdC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCw3IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNv
dXJjZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgS1VSTDsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNhY2hlIGhvbGRzIHN1YnJlc291cmNlcyB1c2VkIGJ5
IFdlYiBwYWdlczogaW1hZ2VzLCBzY3JpcHRzLCBzdHlsZXNoZWV0cywgZXRjLgogCkBAIC0xNjMs
NiArMTY0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNo
ZWRSZXNvdXJjZSopOwogCisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHZvaWQgb3JpZ2luc1dpdGhDYWNoZShIYXNoU2V0PFN0
cmluZz4mIG9yaWdpbnMpOworCiBwcml2YXRlOgogICAgIE1lbW9yeUNhY2hlKCk7CiAgICAgfk1l
bW9yeUNhY2hlKCk7IC8vIE5vdCBpbXBsZW1lbnRlZCB0byBtYWtlIHN1cmUgbm9ib2R5IGFjY2lk
ZW50YWxseSBjYWxscyBkZWxldGUgLS0gV2ViQ29yZSBkb2VzIG5vdCBkZWxldGUgc2luZ2xldG9u
cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODcgQEAKKzIwMTEtMDItMTUgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdl
IHRoZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBB
UEkgdG8gbWFuYWdlIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZS4gVGhpcyBBUEkgZXhwb3NlcyB0
aHJlZSBmdW5jdGlvbnM6CisgICAgICAgIAorICAgICAgICAxKSBBIG1ldGhvZCB0byBnZXQgYSBs
aXN0IG9mIGFsbCBzZWN1cml0eSBvcmlnaW5zIHRoYXQgaGF2ZSBlbnRyaWVzIGluIHRoZSBXZWJD
b3JlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgMikgQSBtZXRob2QgdG8gcmVtb3ZlIGFsbCBlbnRy
aWVzIGluIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZSBmcm9tIGEgU2VjdXJpdHlPcmlnaW4uCisg
ICAgICAgIDMpIEEgbWV0aG9kIHRvIHJlbW92ZSBhbGwgZW50cmllcyBmcm9tIHRoZSBXZWJDb3Jl
IG1lbW9yeSBjYWNoZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6
IEFkZCB0d28gbmV3IE1lc3NhZ2VDbGFzc2VzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jh
c2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZCBhIENhY2hlTWFuYWdlciB0
eXBlLgorICAgICAgICAqIFNoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oOiBUeXBlZGVmIFdLQ2Fj
aGVNYW5hZ2VyUmVmLgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyk6IENyZWF0ZXMgYSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiB1c2luZyAKKyAg
ICAgICAgICAgIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcpOiBDYWxscyB0aHJvdWdoIHRvIFNlY3Vy
aXR5T3JpZ2luOjp0b1N0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKTogUmV0dXJucyB0aGUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkgdHlwZS4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmln
aW5zLgorICAgICAgICAoY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKToK
KyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IpOgorICAgICAgICAoV0tD
YWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luLgorICAgICAgICAoV0tDYWNoZU1h
bmFnZXJEZWxldGVBbGxDYWNoZSk6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFu
YWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
OgorICAgICAgICAoV0tDb250ZXh0R2V0Q2FjaGVNYW5hZ2VyKTogQ2FsbHMgdG8gZ2V0IHRoZSBX
ZWJDYWNoZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENhbGxz
IHRocm91Z2ggdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOiBJbml0aWFsaXplIHRoZSBtX3dlYkNv
bnRleHQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp+
V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQ
cm94eTo6aW52YWxpZGF0ZSk6IEludmFsaWRhdGUgdGhlIGNhbGxiYWNrIG1hcC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyk6IENhbGwgdGhy
b3VnaCB0byB0aGUgd2ViIHByb2Nlc3MgdG8gZ2V0IHRoZSBjYWNoZQorICAgICAgICAgICAgb3Jp
Z2lucy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldENhY2hl
T3JpZ2lucyk6IENhbGwgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4pOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdl
YiBwcm9jZXNzIHRvIGRlbGV0ZSBjYWNoZQorICAgICAgICAgICAgZm9yIHRoZSBnaXZlbiBvcmln
aW4uIAorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ2Fj
aGUpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwgb2YgdGhl
IGNhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6ICBJbnZhbGlkYXRlcyBuZXcg
bWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZSk6IFBhc3NlcyBjYWNoZSBtZXNzYWdlcyB0byB0aGUgY2FjaGUgbWFuYWdlci4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpjYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOiBBZGQgYSBuZXcgbWVzc2FnZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpXZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6
On5XZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQ2FsbHMgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9y
aWdpbnMpOiBHZXRzIGEgbGlzdCBvZiBvcmlnaW5zIHdpdGggY2FjaGUgZW50cmllcyBmcm9tIHRo
ZSBtZW1vcnkKKyAgICAgICAgICAgIGNhY2hlLCBhbmQgcHV0cyB0aGVtIGludG8gYSB2ZWN0b3Ig
dG8gc2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpkZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gbWVtb3J5Q2FjaGUg
dG8gZGVsZXRlIGFsbCBjYWNoZSBlbnRyaWVzCisgICAgICAgICAgICBmcm9tIGEgZ2l2ZW4gb3Jp
Z2luLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbENhY2hlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMpOiBEaXNhYmxlIGFuZCBy
ZS1lbmFibGUgdGhlIG1lbW9yeSBjYWNoZSwgdG8gbWFrZSBzdXJlIGl0IGV2aWN0cworICAgICAg
ICAgICAgYWxsIG9mIGl0cyByZXNvdXJjZXMuIFRoaXMgd2FzIGRvbmUgb24gV2ViS2l0MSwgYnV0
IG5vdCBXZWJLaXQyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5l
dyBmaWxlcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6IEFkZGVkIG5ldyBpbmNsdWRlIGRpcmVjdG9yeS4K
KyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOiBBZGRlZCBuZXcgaGVhZGVyLgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQCBWUEFUSCA9IFwKICAgICAk
KFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lbW9yeUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NSw2ICs0Niw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAg
UGx1Z2luUHJveHkgXAogICAgIFdlYkNvbnRleHQgXAorICAgIFdlYkNhY2hlTWFuYWdlciBcCisg
ICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0Niw3IEBAIFdFQktJVDJfSU5DTFVE
RVBBVEggPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZSBcCiAgICAgV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MgXAorICAgIFdlYlByb2Nlc3MvTWVtb3J5Q2FjaGUgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cyBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlIFwKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0IFwKQEAgLTE3Niw2ICsxNzcsOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9IRUFE
RVJTID0gXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vz
c01lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2lu
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09V
UkNFU19ESVIvV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9XZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQk
V0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ29udGV4dE1lc3NhZ2VzLmggXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2Fn
ZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2VzLmggXApAQCAtMTk2LDYgKzE5OSw4IEBAIFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVn
aW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAk
JFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDYWNoZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNf
RElSL1dlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJL
SVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCBc
CiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC0yOTgsNiAr
MzAzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJk
TGlzdC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggXAor
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgg
XAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaCBcCkBAIC0zNTQsNiArMzYwLDcg
QEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAogICAgIFVJUHJv
Y2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5r
UHJvdmlkZXIuaCBcCisgICAgVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0
ZWRCdW5kbGVDbGllbnQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuaCBc
CkBAIC00MTIsNiArNDE5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuaCBcCiAgICAgV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggXAorICAg
IFdlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9KU05QT2JqZWN0LmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9OUEpTT2JqZWN0LmggXApAQCAtNTI4LDYgKzUzNiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAgXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tD
YWNoZU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0RhdGFiYXNlTWFuYWdlci5jcHAgXApAQCAtNTc0LDYgKzU4Myw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNz
L1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBc
CisgICAgVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNz
L1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJD
b250ZXh0TWVudVByb3h5LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5LmNwcCBcCkBAIC02NDcsNiArNjU3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5jcHAgXAogICAgIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5jcHAgXAog
ICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGVRdC5jcHAgXAor
ICAgIFdlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwIFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL01lc3NhZ2VJRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvTWVzc2FnZUlELmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiAr
MzksNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7CiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWEs
CiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzSW5q
ZWN0ZWRCdW5kbGUsCisgICAgTWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyLAogICAgIE1lc3Nh
Z2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3IsCkBAIC00OSw2ICs1
MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5
LAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJh
d2luZ0FyZWFQcm94eUxlZ2FjeSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJDYWNoZU1hbmFnZXJQcm94
eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRl
eHRMZWdhY3ksCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHksCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIC8vIFVJUHJvY2VzcyB0eXBlcwogICAgICAgICBUeXBlQmFja0Zv
cndhcmRMaXN0LAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0SXRlbSwKKyAgICAgICAgVHlw
ZUNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUNvbnRleHQsCiAgICAgICAgIFR5cGVEYXRhYmFz
ZU1hbmFnZXIsCiAgICAgICAgIFR5cGVEb3dubG9hZCwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMCAr
NTIsMTkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5
T3JpZ2luKHNlY3VyaXR5T3JpZ2luLnJlbGVhc2UoKSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiBzZWN1cml0eU9yaWdpbiA9IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKHN0cmluZyk7CisgICAgICAgIGlmICghc2VjdXJpdHlPcmlnaW4pCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWN1cml0eU9yaWdpbihz
ZWN1cml0eU9yaWdpbi5yZWxlYXNlKCkpKTsKKyAgICB9CisKICAgICBjb25zdCBTdHJpbmcgcHJv
dG9jb2woKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5wcm90b2NvbCgpOyB9CiAg
ICAgY29uc3QgU3RyaW5nIGhvc3QoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5o
b3N0KCk7IH0KICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9zZWN1
cml0eU9yaWdpbi0+cG9ydCgpOyB9CiAKKyAgICBjb25zdCBTdHJpbmcgdG9TdHJpbmcoKSBjb25z
dCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpOyB9CiAgICAgY29uc3QgU3Ry
aW5nIGRhdGFiYXNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4t
PmRhdGFiYXNlSWRlbnRpZmllcigpOyB9CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNyBAQCB0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lciogV0tBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tG
b3J3YXJkTGlzdCogV0tCYWNrRm9yd2FyZExpc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS0JhY2tGb3J3YXJkTGlzdEl0ZW0qIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZjsKK3R5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ2FjaGVNYW5hZ2VyKiBXS0NhY2hlTWFuYWdlclJl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDcmVkZW50aWFsKiBXS0NyZWRlbnRpYWxSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0RhdGFiYXNlTWFuYWdlciogV0tEYXRhYmFz
ZU1hbmFnZXJSZWY7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
YWNoZU1hbmFnZXJQcm94eS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDYWNo
ZU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRl
ICJJbW11dGFibGVEaWN0aW9uYXJ5LmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmln
aW4uaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitQYXNzUmVmUHRyPFdlYkNhY2hlTWFuYWdlclByb3h5PiBXZWJDYWNoZU1hbmFnZXJQcm94eTo6
Y3JlYXRlKFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJDYWNoZU1hbmFnZXJQcm94eSh3ZWJDb250ZXh0KSk7Cit9CisKK1dlYkNhY2hlTWFuYWdl
clByb3h5OjpXZWJDYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiB3ZWJDb250ZXh0KQorICAg
IDogbV93ZWJDb250ZXh0KHdlYkNvbnRleHQpCit7Cit9CisKK1dlYkNhY2hlTWFuYWdlclByb3h5
Ojp+V2ViQ2FjaGVNYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYkNhY2hlTWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNh
bGxiYWNrcyk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lu
cyhQYXNzUmVmUHRyPEFycmF5Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIFJlZlB0cjxB
cnJheUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworICAgIGlmICghbV93ZWJDb250
ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkgeworICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxs
YmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fYXJyYXlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQs
IGNhbGxiYWNrLnJlbGVhc2UoKSk7CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OldlYkNhY2hlTWFuYWdlcjo6R2V0Q2FjaGVPcmlnaW5zKGNhbGxiYWNrSUQpLCAw
KTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0Q2FjaGVPcmlnaW5zKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBtX2FycmF5Q2FsbGJh
Y2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgaWYgKCFjYWxsYmFjaykgeworICAgICAgICAvLyBG
SVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHNpemVfdCBvcmlnaW5JZGVudGlmaWVyc0NvdW50ID0gb3JpZ2luSWRlbnRpZmllcnMuc2l6ZSgp
OworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHNlY3VyaXR5T3JpZ2lucyhvcmlnaW5J
ZGVudGlmaWVyc0NvdW50KTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3JpZ2luSWRl
bnRpZmllcnNDb3VudDsgKytpKSB7CisgICAgICAgIFJlZlB0cjxBUElPYmplY3Q+IG9yaWdpbiA9
IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbklkZW50aWZpZXJzW2ld
KTsKKyAgICAgICAgaWYgKCFvcmlnaW4pCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
c2VjdXJpdHlPcmlnaW5zW2ldID0gb3JpZ2luOworICAgIH0KKworICAgIGNhbGxiYWNrLT5wZXJm
b3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHNlY3VyaXR5
T3JpZ2lucykuZ2V0KCkpOworfQorCit2b2lkIFdlYkNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVD
YWNoZUZvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQoreworICAgIGlmICghbV93
ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fd2Vi
Q29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZU1hbmFnZXI6OkRlbGV0
ZUNhY2hlRm9yT3JpZ2luKG9yaWdpbi0+dG9TdHJpbmcoKSksIDApOworfQorCit2b2lkIFdlYkNh
Y2hlTWFuYWdlclByb3h5OjpkZWxldGVBbGxDYWNoZSgpCit7CisgICAgaWYgKCFtX3dlYkNvbnRl
eHQtPmhhc1ZhbGlkUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0
LT5wcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYkNhY2hlTWFuYWdlcjo6RGVsZXRlQWxsQ2Fj
aGUoKSwgMCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ2FjaGVNYW5h
Z2VyUHJveHlfaAorI2RlZmluZSBXZWJDYWNoZU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJB
UElPYmplY3QuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2Fs
bGJhY2suaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2Ns
YXNzIENvbm5lY3Rpb247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJDb250ZXh0OworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CisKK3R5cGVk
ZWYgR2VuZXJpY0NhbGxiYWNrPFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdl
YkNhY2hlTWFuYWdlclByb3h5IDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVDYWNoZU1hbmFnZXI7CisKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDYWNoZU1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAg
ICB2aXJ0dWFsIH5XZWJDYWNoZU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRl
KCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fd2ViQ29udGV4dCA9IDA7IH0KKworICAg
IHZvaWQgZ2V0Q2FjaGVPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4pOworICAgIHZv
aWQgZGVsZXRlQ2FjaGVGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qKTsKKyAgICB2b2lkIGRl
bGV0ZUFsbENhY2hlKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViQ2FjaGVN
YW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZv
aWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVudGlm
aWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7CisKKyAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRl
eHQ7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEFycmF5Q2FsbGJhY2s+ID4gbV9hcnJh
eUNhbGxiYWNrczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRGF0
YWJhc2VNYW5hZ2VyUHJveHlfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNh
Y2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJDYWNoZU1hbmFnZXJQcm94eSB7Cisg
ICAgRGlkR2V0Q2FjaGVPcmlnaW5zKFZlY3RvcjxXVEY6OlN0cmluZz4gb3JpZ2luSWRlbnRpZmll
cnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2lu
Y2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKQEAgLTk1LDYgKzk2LDcgQEAgV2ViQ29udGV4dDo6V2ViQ29udGV4dChQcm9jZXNzTW9k
ZWwgcHJvYwogICAgICwgbV9jbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JOZXdXZWJQcm9jZXNzKGZh
bHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbWVtb3J5
U2FtcGxlckludGVydmFsKDE0MDAuMCkKKyAgICAsIG1fY2FjaGVNYW5hZ2VyUHJveHkoV2ViQ2Fj
aGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fZGF0YWJhc2VNYW5hZ2VyUHJv
eHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fZ2VvbG9j
YXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlz
KSkKICNpZiBQTEFURk9STShXSU4pCkBAIC0xMTQsNiArMTE2LDkgQEAgV2ViQ29udGV4dDo6fldl
YkNvbnRleHQoKQogCiAgICAgV2ViUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLmNvbnRleHRXYXNE
ZXN0cm95ZWQodGhpcyk7CiAKKyAgICBtX2NhY2hlTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7
CisgICAgbV9jYWNoZU1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CisKICAgICBtX2dlb2xv
Y2F0aW9uTWFuYWdlclByb3h5LT5pbnZhbGlkYXRlKCk7CiAgICAgbV9nZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eS0+Y2xlYXJDb250ZXh0KCk7CiAKQEAgLTQ4Myw2ICs0ODgsMTEgQEAgdm9pZCBXZWJD
b250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDYWNoZU1hbmFn
ZXJQcm94eT4oKSkgeworICAgICAgICBtX2NhY2hlTWFuYWdlclByb3h5LT5kaWRSZWNlaXZlV2Vi
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9k
YXRhYmFzZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVz
c2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gNzg1MDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NSw2ICs0NSw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQ
cm94eTsKK2NsYXNzIFdlYkNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHk7CiBjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYlBh
Z2VHcm91cDsKQEAgLTEyNyw2ICsxMjgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgSGFzaFNl
dDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gcGRmQW5kUG9zdFNjcmlwdE1JTUVUeXBlcygpOwog
CisgICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkqIGNhY2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWNoZU1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAgIFdlYkRhdGFiYXNlTWFuYWdl
clByb3h5KiBkYXRhYmFzZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VN
YW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uTWFuYWdl
clByb3h5LmdldCgpOyB9CiAKQEAgLTIwMiw2ICsyMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9tZW1vcnlTYW1wbGVyRW5hYmxlZDsKICAgICBkb3VibGUgbV9tZW1vcnlTYW1wbGVySW50ZXJ2
YWw7CiAKKyAgICBSZWZQdHI8V2ViQ2FjaGVNYW5hZ2VyUHJveHk+IG1fY2FjaGVNYW5hZ2VyUHJv
eHk7CiAgICAgUmVmUHRyPFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdl
clByb3h5OwogICAgIFJlZlB0cjxXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4gbV9nZW9sb2Nh
dGlvbk1hbmFnZXJQcm94eTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpCiAgICAgICAgIHx8
IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5PigpCiAg
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5
PigpCisgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDYWNo
ZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKSB7CiAg
ICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJ
Q2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRG93
bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eTsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07Citj
bGFzcyBXZWJDYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkNvbnRleHQ7CiBjbGFzcyBXZWJD
cmVkZW50aWFsOwogY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk7CkBAIC02OCw2ICs2OSw3
IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uQ2hhbGwKIFdLX0FERF9BUElf
TUFQUElORyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZiwgQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKIFdLX0FERF9BUElfTUFQUElORyhXS0Jh
Y2tGb3J3YXJkTGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0KQorV0tfQUREX0FQSV9NQVBQSU5H
KFdLQ2FjaGVNYW5hZ2VyUmVmLCBXZWJDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQ
UElORyhXS0NvbnRleHRSZWYsIFdlYkNvbnRleHQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDcmVk
ZW50aWFsUmVmLCBXZWJDcmVkZW50aWFsKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRGF0YWJhc2VN
YW5hZ2VyUmVmLCBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV0tDYWNoZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYkNhY2hlTWFu
YWdlclByb3h5LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKKyNpZmRlZiBfX0JMT0NLU19f
CisjaW5jbHVkZSA8QmxvY2suaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitXS1R5cGVJRCBXS0NhY2hlTWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJ
KFdlYkNhY2hlTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS0NhY2hlTWFuYWdl
ckdldENhY2hlT3JpZ2lucyhXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmFnZXJSZWYsIHZvaWQq
IGNvbnRleHQsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2sp
Cit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJlZiktPmdldENhY2hlT3JpZ2lucyhBcnJheUNh
bGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKK30KKworI2lmZGVmIF9fQkxPQ0tT
X18KK3N0YXRpYyB2b2lkIGNhbGxHZXRDYWNoZU9yaWdpbnNCbG9ja0Jsb2NrQW5kRGlzcG9zZShX
S0FycmF5UmVmIHJlc3VsdFZhbHVlLCBXS0Vycm9yUmVmIGVycm9yUmVmLCB2b2lkKiBjb250ZXh0
KQoreworICAgIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zQmxvY2sgYmxvY2sgPSAoV0tD
YWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jayljb250ZXh0OworICAgIGJsb2NrKHJlc3Vs
dFZhbHVlLCBlcnJvclJlZik7CisgICAgQmxvY2tfcmVsZWFzZShibG9jayk7Cit9CisKK3ZvaWQg
V0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNfYihXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1h
bmFnZXJSZWYsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zQmxvY2sgYmxvY2spCit7Cisg
ICAgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnMoY2FjaGVNYW5hZ2VyUmVmLCBCbG9ja19j
b3B5KGJsb2NrKSwgY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKTsKK30K
KyNlbmRpZgorCit2b2lkIFdLQ2FjaGVNYW5hZ2VyRGVsZXRlQ2FjaGVGb3JPcmlnaW4oV0tDYWNo
ZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpblJl
ZikKK3sKKyAgICB0b0ltcGwoY2FjaGVNYW5hZ2VyUmVmKS0+ZGVsZXRlQ2FjaGVGb3JPcmlnaW4o
dG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lkIFdLQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsQ2Fj
aGUoV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmKQoreworICAgIHRvSW1wbChjYWNo
ZU1hbmFnZXJSZWYpLT5kZWxldGVBbGxDYWNoZSgpOyAgICAKK30KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ2FjaGVNYW5h
Z2VyX2gKKyNkZWZpbmUgV0tDYWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jh
c2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19F
WFBPUlQgV0tUeXBlSUQgV0tDYWNoZU1hbmFnZXJHZXRUeXBlSUQoKTsKKwordHlwZWRlZiB2b2lk
ICgqV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tF
cnJvclJlZiwgdm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9y
aWdpbnMoV0tDYWNoZU1hbmFnZXJSZWYgY29udGV4dFJlZiwgdm9pZCogY29udGV4dCwgV0tDYWNo
ZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7CisjaWZkZWYgX19CTE9D
S1NfXwordHlwZWRlZiB2b2lkICheV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jayko
V0tBcnJheVJlZiwgV0tFcnJvclJlZik7CitXS19FWFBPUlQgdm9pZCBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc19iKFdLQ2FjaGVNYW5hZ2VyUmVmIGRhdGFiYXNlTWFuYWdlciwgV0tDYWNo
ZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNCbG9jayBibG9jayk7CisjZW5kaWYKKworV0tfRVhQT1JU
IHZvaWQgV0tDYWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbihXS0NhY2hlTWFuYWdlclJl
ZiBjYWNoZU1hbmdlciwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4pOworV0tfRVhQT1JUIHZv
aWQgV0tDYWNoZU1hbmFnZXJEZWxldGVBbGxDYWNoZShXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1h
bmFnZXIpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tD
YWNoZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw2ICsxNTgsMTEgQEAg
dm9pZCBXS0NvbnRleHRDbGVhckFwcGxpY2F0aW9uQ2FjaGUoV0tDbwogICAgIHRvSW1wbChjb250
ZXh0UmVmKS0+Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKCk7CiB9CiAKK1dLQ2FjaGVNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldENhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKK3sKKyAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5jYWNoZU1hbmFnZXJQcm94eSgpKTsK
K30KKwogV0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKFdL
Q29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4
dFJlZiktPmRhdGFiYXNlTWFuYWdlclByb3h5KCkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw2
ICsxMjMsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRDbGVhckFwcGxpY2F0aW9uCiBXS19F
WFBPUlQgdm9pZCBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIFdLRG91YmxlUmVmIGludGVydmFsKTsKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0b3BN
ZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIAorV0tfRVhQT1JUIFdLQ2FjaGVN
YW5hZ2VyUmVmIFdLQ29udGV4dEdldENhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiBXS19FWFBPUlQgV0tEYXRhYmFzZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0dlb2xvY2F0aW9uTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRHZW9sb2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjQxLDYgKzI0MSwxNiBA
QAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4RTJEQUQxMjc4QzVC
MjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsKIAkJMjlDRDU1QUExMjhFMjk0
RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBODEyOEUyOTRGMDAxMzNDODUg
LyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAqLzsgfTsKIAkJMjlDRDU1QUIxMjhFMjk0
RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1
IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovOyB9OworCQkzMzVDNDY5NDEzMEI1
N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNUM0NjkxMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJD
YWNoZU1hbmFnZXIuY3BwICovOyB9OworCQkzMzVDNDY5NTEzMEI1N0ZDMDAyNDRCRDAgLyogV2Vi
Q2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMzVDNDY5MjEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmggKi87IH07
CisJCTMzQkEyOTM2MTMwQjRERjAwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JB
MjkzNTEzMEI0REYwMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICov
OyB9OworCQkzM0JBMjkzQTEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMzQkEyOTM3MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OworCQkzM0JBMjkzQjEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMzQkEyOTM4MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdl
cy5oICovOyB9OworCQkzM0JBMjkzQzEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzNCQTI5MzkxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzNFNUVGMDIxMzBCNEFEOTAwQUM4
ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMzRTVFRjAwMTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdl
ci5jcHAgKi87IH07CisJCTMzRTVFRjAzMTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNFNUVG
MDExMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQkzM0U1RUYwNjEzMEI0QjJCMDBBQzg4NEIg
LyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzNFNUVGMDQxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFu
YWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMzNFNUVGMDcxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNh
Y2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzM0U1RUYwNTEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHku
aCAqLzsgfTsKIAkJMzdGNjIzQjgxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJB
NTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2Vi
Q29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gKi87IH07CiAJCTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1E
YXRhLmNwcCAqLzsgfTsKQEAgLTEwMTQsNiArMTAyNCwxOCBAQAogCQkyOUNENTVBODEyOEUyOTRG
MDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDJQcmVmaXguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzM1QzQ2OTExMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJDYWNo
ZU1hbmFnZXIuY3BwOyBwYXRoID0gTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzM1QzQ2OTIxMzBCNTdGQzAwMjQ0QkQwIC8qIFdl
YkNhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJDYWNo
ZU1hbmFnZXIuaDsgcGF0aCA9IE1lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMzVDNDY5MzEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2Fj
aGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkNhY2hlTWFu
YWdlci5tZXNzYWdlcy5pbjsgcGF0aCA9IE1lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNCQTI5MTgxMzBCNEM1MTAw
MkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzM0JBMjkzNTEzMEI0REYwMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSAvVXNlcnMvYnJpYW5fd2VpbnN0ZWlu
L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07
CisJCTMzQkEyOTM3MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQ2FjaGVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IC9Vc2Vycy9icmlhbl93ZWluc3RlaW4v
T3BlblNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNh
Y2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7
IH07CisJCTMzQkEyOTM4MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXJNZXNz
YWdlcy5oOyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1
aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJMzNCQTI5MzkxMzBCNEUwMjAwMkJC
OUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IC9Vc2Vycy9icmlhbl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJL
aXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJMzNF
NUVGMDAxMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzNFNUVGMDExMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ2FjaGVNYW5hZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzRTVFRjA0MTMwQjRCMkIwMEFDODg0QiAv
KiBXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTMzRTVFRjA1MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDYWNoZU1hbmFnZXJQcm94eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYg
LyogV0tGaW5kT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Zp
bmRPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDIxRTlCMTJCMTY3
ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBGQkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwMTMsNiArMjAzNSwxNiBAQAogCQkJdGFiV2lkdGggPSA4OwogCQkJdXNlc1RhYnMg
PSAwOwogCQl9OworCQkzMzVDNDY5MDEzMEI1N0MyMDAyNDRCRDAgLyogTWVtb3J5Q2FjaGUgKi8g
PSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTMzNUM0NjkxMTMw
QjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTMzNUM0NjkyMTMw
QjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCAqLywKKwkJCQkzMzVDNDY5MzEzMEI1
N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBNZW1vcnlDYWNoZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTUxMkY1ODg2MTJBODgzNDcwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMDU2LDYgKzIwODgsNyBAQAogCQkJ
CUJDMEU1RkNCMTJENjk2REQwMDEyQTcyQSAvKiBHZW9sb2NhdGlvbiAqLywKIAkJCQlCQzIwNEVE
RjExQzgzRTcyMDA4RjMzNzUgLyogSW5qZWN0ZWRCdW5kbGUgKi8sCiAJCQkJMUE2RkEwMUMxMUUx
NTI2MzAwREIxMzcxIC8qIG1hYyAqLywKKwkJCQkzMzVDNDY5MDEzMEI1N0MyMDAyNDRCRDAgLyog
TWVtb3J5Q2FjaGUgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMg
Ki8sCiAJCQkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovLAog
CQkJCUJDMDMyRDVFMTBGNDM3MkIwMDU4QzE1QSAvKiBXZWJQYWdlICovLApAQCAtMjE4Niw2ICsy
MjE5LDkgQEAKIAkJCQkxQTBGMjlFMjEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQcm92
aWRlci5oICovLAogCQkJCUJDNzJCQTFCMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9yd2Fy
ZExpc3QuY3BwICovLAogCQkJCUJDNzJCQTFDMTFFNjQ5MDcwMDFFQjRFQSAvKiBXZWJCYWNrRm9y
d2FyZExpc3QuaCAqLywKKwkJCQkzM0U1RUYwNDEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwICovLAorCQkJCTMzRTVFRjA1MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJD
YWNoZU1hbmFnZXJQcm94eS5oICovLAorCQkJCTMzQkEyOTE4MTMwQjRDNTEwMDJCQjlFQyAvKiBX
ZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQlCQ0I5RTI0MjExMjBEQUNB
MDBBMTM3RTAgLyogV2ViQ29udGV4dC5jcHAgKi8sCiAJCQkJQkNCOUUyNDExMTIwREFDQTAwQTEz
N0UwIC8qIFdlYkNvbnRleHQuaCAqLywKIAkJCQlCQ0VFN0QwOTEyODQ2QUVEMDA5ODI3REEgLyog
V2ViQ29udGV4dC5tZXNzYWdlcy5pbiAqLywKQEAgLTIyODEsNiArMjMxNyw4IEBACiAJCQkJQkM2
NDZDMTcxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0LmggKi8sCiAJCQkJQkM2
NDZDMTgxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8sCiAJ
CQkJQkM2NDZDMTkxMUREMzk5RjAwNjQ1NUIwIC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbS5oICov
LAorCQkJCTMzRTVFRjAwMTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5jcHAgKi8s
CisJCQkJMzNFNUVGMDExMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmggKi8sCiAJ
CQkJQkNCOUUyNEExMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5jcHAgKi8sCiAJCQkJQkNC
OUUyNDkxMTIwRTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5oICovLAogCQkJCUJDQzkzOEUwMTE4
MERFNDQwMDg1RTVGRSAvKiBXS0NvbnRleHRQcml2YXRlLmggKi8sCkBAIC0yNzY0LDYgKzI4MDIs
MTAgQEAKIAkJCQkxQTA0M0I1QzEyNEQ1RTlEMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCAqLywKIAkJCQkxQThFRkE2RTEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBOEVGQTZGMTI1MkI4NDEwMEY3MDY3RiAv
KiBQbHVnaW5Qcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJMzNCQTI5MzcxMzBCNEUwMjAwMkJCOUVD
IC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMzNCQTI5Mzgx
MzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJMzNC
QTI5MzkxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKKwkJCQkzM0JBMjkzNTEzMEI0REYwMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUJDRUU3RDBCMTI4NDZGNjkwMDk4MjdEQSAvKiBX
ZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlCQ0VFN0QwQzEyODQ2RjY5MDA5
ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VzLmggKi8sCiAJCQkJRjYyQTc2QjIxMkIxQjI1RjAw
MDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0z
MTc1LDYgKzMyMTcsMTEgQEAKIAkJCQlCQ0E1NkExQzEyRjkwMjhFMDBDNTY2QzcgLyogV2ViR3Jh
cGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NkE2NTEyRjlDOEY5MDBDNTY2
QzcgLyogV0tHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQTU2QTY5MTJG
OUM5QUQwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzM0U1RUYwMzEzMEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTMzRTVFRjA3MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzNCQTI5MzYxMzBCNERGMDAwMkJCOUVDIC8qIFdlYkNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzQkEyOTNCMTMw
QjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzM1QzQ2OTUxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0zNjUyLDYgKzM2OTksMTEgQEAKIAkJCQlCQ0E1NkE2NjEyRjlDOEY5MDBD
NTY2QzcgLyogV0tHcmFwaGljc0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBNTZB
NkExMkY5QzlBRDAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjU5QzU1MUUxMzAwMDY0MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJl
c291cmNlTG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzM0U1RUYwMjEzMEI0QUQ5
MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzNFNUVG
MDYxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMzQkEyOTNBMTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzNCQTI5M0MxMzBCNEUwMjAwMkJC
OUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMzNUM0Njk0MTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJSdW5Mb29wLmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlci5o
IgogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgpAQCAtNTEwLDYg
KzUxMSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkNhY2hlTWFuYWdlcj4oKSkgeworICAgICAgICBXZWJDYWNoZU1hbmFnZXI6OnNo
YXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQ
Qzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyPigpKSB7CiAgICAgICAgIFdlYkRhdGFi
YXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2Fn
ZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkBAIC02MjMsNiArNjI5LDEyIEBAIHZv
aWQgV2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNhY2hlcygpCiAgICAgc2V0Q2FjaGVNb2RlbChD
YWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpOwogICAgIHNldENhY2hlTW9kZWwoY2FjaGVNb2RlbCk7
CiAKKyAgICAvLyBJZiB0aGUgbWVtb3J5IGNhY2hlIGlzIGN1cnJlbnRseSBlbmFibGVkLCB0b2dn
bGUgaXQgb24gYW5kIG9mZiB0byBldmljdCBpdHMgcmVzb3VyY2VzLgorICAgIGlmICghbWVtb3J5
Q2FjaGUoKS0+ZGlzYWJsZWQoKSkgeworICAgICAgICBtZW1vcnlDYWNoZSgpLT5zZXREaXNhYmxl
ZCh0cnVlKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQoZmFsc2UpOworICAg
IH0KKwogICAgIC8vIEVtcHR5IHRoZSBjcm9zcy1vcmlnaW4gcHJlZmxpZ2h0IGNhY2hlLgogICAg
IENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmVtcHR5KCk7CiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gNzg1MDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICAvLyBHZW9sb2NhdGlvbgogICAgIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRpb25NYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9s
b2NhdGlvbk1hbmFnZXI7IH0KIAorICAgIHZvaWQgY2xlYXJSZXNvdXJjZUNhY2hlcygpOworCiBw
cml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTM5LDcgKzE0MSw2IEBAIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlQ2FjaGVTaXplcyhDYWNoZU1vZGVsIGNhY2hlTW9k
ZWwsIHVpbnQ2NF90IG1lbW9yeVNpemUsIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSwKICAgICAgICAg
dW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWluRGVhZENhcGFj
aXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRvdWJsZSYgZGVhZERlY29kZWRE
YXRhRGVsZXRpb25JbnRlcnZhbCwKICAgICAgICAgdW5zaWduZWQmIHBhZ2VDYWNoZUNhcGFjaXR5
LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1
cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci0gICAgdm9pZCBjbGVhclJlc291cmNlQ2FjaGVzKCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2b2lkIGNsZWFyQXBw
bGljYXRpb25DYWNoZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9y
eUNhY2hlL1dlYkNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIu
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDYWNoZU1hbmFnZXImIFdlYkNh
Y2hlTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBzdGF0aWMgV2ViQ2FjaGVNYW5hZ2VyJiBzaGFy
ZWQgPSAqbmV3IFdlYkNhY2hlTWFuYWdlcjsKKyAgICByZXR1cm4gc2hhcmVkOworfQorCitXZWJD
YWNoZU1hbmFnZXI6OldlYkNhY2hlTWFuYWdlcigpCit7Cit9CisKK1dlYkNhY2hlTWFuYWdlcjo6
fldlYkNhY2hlTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sK
KyAgICBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7Cit9CisKKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmdldENhY2hlT3Jp
Z2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdAoreworICAgIEhhc2hTZXQ8U3RyaW5nPiBv
cmlnaW5zOworICAgIG1lbW9yeUNhY2hlKCktPm9yaWdpbnNXaXRoQ2FjaGUob3JpZ2lucyk7CisK
KyAgICBzaXplX3QgbnVtT3JpZ2lucyA9IG9yaWdpbnMuc2l6ZSgpOworCisgICAgVmVjdG9yPFN0
cmluZz4gaWRlbnRpZmllcnMobnVtT3JpZ2lucyk7CisgICAgSGFzaFNldDxTdHJpbmc+OjppdGVy
YXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOworCisgICAgdW5zaWduZWQgaSA9IDA7CisgICAgZm9y
IChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gb3JpZ2lucy5iZWdpbigpOyBpdCAhPSBl
bmQ7ICsraXQpCisgICAgICAgIGlkZW50aWZpZXJzW2krK10gPSAqaXQ7CisKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNhY2hlTWFuYWdl
clByb3h5OjpEaWRHZXRDYWNoZU9yaWdpbnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQpLCAwKTsK
K30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nKSBjb25zdAoreworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4g
b3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luU3RyaW5nKTsK
KyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbWVtb3J5Q2FjaGUoKS0+
cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihvcmlnaW4pOworfQorCit2b2lkIFdlYkNhY2hlTWFu
YWdlcjo6ZGVsZXRlQWxsQ2FjaGUoKSBjb25zdAoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2Vi
Q2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDYWNoZU1hbmFnZXJfaAorI2RlZmluZSBXZWJD
YWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247Citj
bGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDYWNo
ZU1hbmFnZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNhY2hlTWFuYWdlcik7Citw
dWJsaWM6CisgICAgc3RhdGljIFdlYkNhY2hlTWFuYWdlciYgc2hhcmVkKCk7CisKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdlYkNhY2hl
TWFuYWdlcigpOworICAgIHZpcnR1YWwgfldlYkNhY2hlTWFuYWdlcigpOworCisgICAgLy8gSW1w
bGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAK
KyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwor
CisgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3Q7Cisg
ICAgdm9pZCBkZWxldGVDYWNoZUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbikgY29uc3Q7
CisgICAgdm9pZCBkZWxldGVBbGxDYWNoZSgpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDYWNoZU1hbmFnZXJfaApJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNo
ZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCittZXNzYWdlcyAtPiBXZWJDYWNoZU1hbmFnZXIgeworICAgIHZvaWQgR2V0Q2FjaGVPcmln
aW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVDYWNoZUZvck9yaWdpbihX
VEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIHZvaWQgRGVsZXRlQWxsQ2FjaGUoKQor
fQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzg1MDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEzNDIs
NiArMTM0MiwyMiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CisgICAgICAg
ICAgICA8RmlsdGVyCisgICAgICAgICAgICAgICAgTmFtZT0iTWVtb3J5Q2FjaGUiCisgICAgICAg
ICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
V2ViUHJvY2Vzc1xNZW1vcnlDYWNoZVxXZWJDYWNoZU1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJ
PC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xNZW1v
cnlDYWNoZVxXZWJDYWNoZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTWVtb3J5Q2FjaGVcV2ViQ2FjaGVN
YW5hZ2VyLm1lc3NhZ2VzLmluIgorCQkJCQk+CisJCQkJPC9GaWxlPgorICAgICAgICAgICAgPC9G
aWx0ZXI+CiAJCQk8RmlsdGVyCiAJCQkJTmFtZT0iV2ViQ29yZVN1cHBvcnQiCiAJCQkJPgpAQCAt
MjI1OCw2ICsyMjc0LDE4IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQmFj
a0ZvcndhcmRMaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4iCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFVJUHJvY2Vzc1xXZWJDb250ZXh0LmNwcCIKIAkJCQk+CkBAIC0yNTYwLDYgKzI1ODgsMTQgQEAK
IAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0
SXRlbS5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgIDxGaWxl
CisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NhY2hlTWFuYWdlci5j
cHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ2FjaGVNYW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJCTwv
RmlsZT4KIAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxD
XFdLQ29udGV4dC5jcHAiCiAJCQkJCQk+CkBAIC0zMjk0LDYgKzMzMzAsMjIgQEAKIAkJCQlSZWxh
dGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAJCQkJPgogCQkJPC9GaWxl
PgorICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ2FjaGVNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9G
aWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ29udGV4dE1lc3NhZ2VSZWNl
aXZlci5jcHAiCiAJCQkJPgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24u
dnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52
c3Byb3BzCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29t
bW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9
IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0
Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Mm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xB
dXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3du
bG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJD
b3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29y
ZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQ
YWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxj
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxE
T00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1
cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1
b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxK
YXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVk
ZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9u
YWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBs
YXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxj
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nl
c3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
UGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
UGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlv
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZW1vcnlDYWNoZSZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXElu
Y2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxw
dGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZh
U2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxw
cml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJ
bmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJ
bmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDsk
KFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1
b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztG
UkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhl
YWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHJldmlzaW9uIDc4
NTAxKQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIiAiJUNvbmZpZ3Vy
YXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExpc3QuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIl
XGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdL
QmFja0ZvcndhcmRMaXN0SXRlbS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxX
ZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDYWNoZU1hbmFn
ZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29w
eSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5oIiAiJUNvbmZpZ3VyYXRpb25C
dWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3Nc
QVBJXENcV0tDb250ZXh0UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVk
ZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDcmVkZW50
aWFsLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82581</attachid>
            <date>2011-02-15 20:15:10 -0800</date>
            <delta_ts>2011-02-15 20:17:54 -0800</delta_ts>
            <desc>[PATCH] Fix + Qt (take 2)</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>68709</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw4IEBAIF9fWk43V2ViQ29yZTEx
SGlzdG9yeUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXREaXNhYmxlZEVi
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMTZvcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0
cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTM19FRUVFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMjVyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luRU4zV1RGNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxSZWN0VG9WaXNpYmxl
RVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUx
MWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTFtZW1vcnlD
YWNoZUV2CkBAIC0xMDU4LDYgKzEwNjAsNyBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRl
cjN1cmxFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyTGlzdEl0ZW0xMG1hcmtlclRleHRFdgogX19a
Tks3V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxMGNvbm5lY3Rpb25FdgogX19aTks3V2ViQ29yZTE0
UmVzb3VyY2VMb2FkZXIxMWZyYW1lTG9hZGVyRXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luOHRvU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5
RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVu
dGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCwzNSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXNv
dXJjZUFjY2Vzc2VkKENhY2hlCiAgICAgaW5zZXJ0SW5MUlVMaXN0KHJlc291cmNlKTsKIH0KIAor
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbikKK3sKKyAgICBWZWN0b3I8Q2FjaGVkUmVzb3VyY2UqPiByZXNvdXJj
ZXNXaXRoT3JpZ2luOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jl
c291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHJl
c291cmNlLT51cmwoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4uZ2V0
KCkpKQorICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwor
ICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9yaWdpbi5z
aXplKCk7ICsraSkKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlc1dpdGhPcmlnaW5baV0pOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3RyaW5nPiYgb3Jp
Z2lucykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2Vz
LmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNv
dXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBTdHJpbmcgb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnNlY29uZC0+dXJsKCkpLT50b1N0
cmluZygpOworICAgICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBvcmlnaW5zLmFkZChvcmlnaW4pOworICAgIH0KK30KKwogdm9pZCBNZW1v
cnlDYWNoZTo6cmVtb3ZlRnJvbUxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiB7CiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgYmVlbiBhY2Nlc3NlZCwgdGhl
biB3ZSdyZSBicmFuZCBuZXcgYW5kIG5vdCBpbiBhbnkgbGlzdC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCw3IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNv
dXJjZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgS1VSTDsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNhY2hlIGhvbGRzIHN1YnJlc291cmNlcyB1c2VkIGJ5
IFdlYiBwYWdlczogaW1hZ2VzLCBzY3JpcHRzLCBzdHlsZXNoZWV0cywgZXRjLgogCkBAIC0xNjMs
NiArMTY0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNo
ZWRSZXNvdXJjZSopOwogCisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHZvaWQgb3JpZ2luc1dpdGhDYWNoZShIYXNoU2V0PFN0
cmluZz4mIG9yaWdpbnMpOworCiBwcml2YXRlOgogICAgIE1lbW9yeUNhY2hlKCk7CiAgICAgfk1l
bW9yeUNhY2hlKCk7IC8vIE5vdCBpbXBsZW1lbnRlZCB0byBtYWtlIHN1cmUgbm9ib2R5IGFjY2lk
ZW50YWxseSBjYWxscyBkZWxldGUgLS0gV2ViQ29yZSBkb2VzIG5vdCBkZWxldGUgc2luZ2xldG9u
cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODcgQEAKKzIwMTEtMDItMTUgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdl
IHRoZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBB
UEkgdG8gbWFuYWdlIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZS4gVGhpcyBBUEkgZXhwb3NlcyB0
aHJlZSBmdW5jdGlvbnM6CisgICAgICAgIAorICAgICAgICAxKSBBIG1ldGhvZCB0byBnZXQgYSBs
aXN0IG9mIGFsbCBzZWN1cml0eSBvcmlnaW5zIHRoYXQgaGF2ZSBlbnRyaWVzIGluIHRoZSBXZWJD
b3JlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgMikgQSBtZXRob2QgdG8gcmVtb3ZlIGFsbCBlbnRy
aWVzIGluIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZSBmcm9tIGEgU2VjdXJpdHlPcmlnaW4uCisg
ICAgICAgIDMpIEEgbWV0aG9kIHRvIHJlbW92ZSBhbGwgZW50cmllcyBmcm9tIHRoZSBXZWJDb3Jl
IG1lbW9yeSBjYWNoZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6
IEFkZCB0d28gbmV3IE1lc3NhZ2VDbGFzc2VzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jh
c2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZCBhIENhY2hlTWFuYWdlciB0
eXBlLgorICAgICAgICAqIFNoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oOiBUeXBlZGVmIFdLQ2Fj
aGVNYW5hZ2VyUmVmLgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyk6IENyZWF0ZXMgYSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiB1c2luZyAKKyAg
ICAgICAgICAgIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcpOiBDYWxscyB0aHJvdWdoIHRvIFNlY3Vy
aXR5T3JpZ2luOjp0b1N0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKTogUmV0dXJucyB0aGUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkgdHlwZS4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmln
aW5zLgorICAgICAgICAoY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKToK
KyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IpOgorICAgICAgICAoV0tD
YWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luLgorICAgICAgICAoV0tDYWNoZU1h
bmFnZXJEZWxldGVBbGxDYWNoZSk6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFu
YWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
OgorICAgICAgICAoV0tDb250ZXh0R2V0Q2FjaGVNYW5hZ2VyKTogQ2FsbHMgdG8gZ2V0IHRoZSBX
ZWJDYWNoZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENhbGxz
IHRocm91Z2ggdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOiBJbml0aWFsaXplIHRoZSBtX3dlYkNv
bnRleHQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp+
V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQ
cm94eTo6aW52YWxpZGF0ZSk6IEludmFsaWRhdGUgdGhlIGNhbGxiYWNrIG1hcC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyk6IENhbGwgdGhy
b3VnaCB0byB0aGUgd2ViIHByb2Nlc3MgdG8gZ2V0IHRoZSBjYWNoZQorICAgICAgICAgICAgb3Jp
Z2lucy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldENhY2hl
T3JpZ2lucyk6IENhbGwgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4pOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdl
YiBwcm9jZXNzIHRvIGRlbGV0ZSBjYWNoZQorICAgICAgICAgICAgZm9yIHRoZSBnaXZlbiBvcmln
aW4uIAorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ2Fj
aGUpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwgb2YgdGhl
IGNhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6ICBJbnZhbGlkYXRlcyBuZXcg
bWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZSk6IFBhc3NlcyBjYWNoZSBtZXNzYWdlcyB0byB0aGUgY2FjaGUgbWFuYWdlci4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpjYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOiBBZGQgYSBuZXcgbWVzc2FnZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpXZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6
On5XZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQ2FsbHMgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9y
aWdpbnMpOiBHZXRzIGEgbGlzdCBvZiBvcmlnaW5zIHdpdGggY2FjaGUgZW50cmllcyBmcm9tIHRo
ZSBtZW1vcnkKKyAgICAgICAgICAgIGNhY2hlLCBhbmQgcHV0cyB0aGVtIGludG8gYSB2ZWN0b3Ig
dG8gc2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpkZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gbWVtb3J5Q2FjaGUg
dG8gZGVsZXRlIGFsbCBjYWNoZSBlbnRyaWVzCisgICAgICAgICAgICBmcm9tIGEgZ2l2ZW4gb3Jp
Z2luLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbENhY2hlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMpOiBEaXNhYmxlIGFuZCBy
ZS1lbmFibGUgdGhlIG1lbW9yeSBjYWNoZSwgdG8gbWFrZSBzdXJlIGl0IGV2aWN0cworICAgICAg
ICAgICAgYWxsIG9mIGl0cyByZXNvdXJjZXMuIFRoaXMgd2FzIGRvbmUgb24gV2ViS2l0MSwgYnV0
IG5vdCBXZWJLaXQyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5l
dyBmaWxlcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6IEFkZGVkIG5ldyBpbmNsdWRlIGRpcmVjdG9yeS4K
KyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOiBBZGRlZCBuZXcgaGVhZGVyLgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQCBWUEFUSCA9IFwKICAgICAk
KFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lbW9yeUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NSw2ICs0Niw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAg
UGx1Z2luUHJveHkgXAogICAgIFdlYkNvbnRleHQgXAorICAgIFdlYkNhY2hlTWFuYWdlciBcCisg
ICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIs
OCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmlu
IFwKICAgICBQbHVnaW5Qcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFBsdWdpblByb3h5
Lm1lc3NhZ2VzLmluIFwKKyAgICBXZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAorICAgIFdl
YkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb250ZXh0Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJEYXRhYmFzZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktp
dDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lv
biA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDYsNiArMTQ2LDcgQEAgV0VCS0lUMl9JTkNMVURFUEFUSCA9IFwKICAgICBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSBcCiAg
ICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYyBcCisgICAgV2ViUHJvY2Vzcy9NZW1v
cnlDYWNoZSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtMTc2LDYg
KzE3Nyw4IEBAIFdFQktJVDJfR0VORVJBVEVEX0hFQURFUlMgPSBcCiAgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJL
SVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb3h5TWVzc2FnZXMu
aCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDYWNoZU1hbmFnZXJN
ZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9XZWJDb250ZXh0TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCkBA
IC0xOTYsNiArMTk5LDggQEAgV0VCS0lUMl9HRU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdF
QktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNF
U19ESVIvUGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAor
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ2FjaGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAg
ICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTI5OCw2ICszMDMsNyBAQCBIRUFERVJTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmggXAogICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ2Fj
aGVNYW5hZ2VyLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
Q3JlZGVudGlhbC5oIFwKQEAgLTM1NCw2ICszNjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVBy
b2Nlc3MvVGV4dENoZWNrZXIuaCBcCiAgICAgVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94
eS5oIFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKKyAgICBVSVByb2Nl
c3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIFwKICAgICBV
SVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oIFwKQEAgLTQxMiw2ICs0MTksNyBAQCBIRUFE
RVJTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVVJQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVTY3JpcHRXb3JsZC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBcCisgICAgV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9X
ZWJDYWNoZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBN
ZXRob2QuaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaCBc
CiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuaCBcCkBAIC01Mjgs
NiArNTM2LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0Zv
cndhcmRMaXN0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRl
bS5jcHAgXAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVk
ZW50aWFsLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRGF0YWJhc2VNYW5hZ2VyLmNwcCBc
CkBAIC01NzQsNiArNTgzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rUHJvdmlkZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBc
CiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQ2FjaGVN
YW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIFwKICAg
ICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIFwKQEAgLTY0Nyw2ICs2NTcs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9NZW1vcnlDYWNo
ZS9XZWJDYWNoZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2Jq
ZWN0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3Bw
IFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAko
cmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3Nh
Z2VJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIGVudW0gTWVzc2FnZUNsYXNz
IHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYUxlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKKyAgICBNZXNzYWdl
Q2xhc3NXZWJDYWNoZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2Vy
LAogICAgIE1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LAogICAgIE1lc3Nh
Z2VDbGFzc1dlYkluc3BlY3RvciwKQEAgLTQ5LDYgKzUwLDcgQEAgZW51bSBNZXNzYWdlQ2xhc3Mg
ewogICAgIE1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2lu
Z0FyZWFQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5TGVnYWN5LAorICAg
IE1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNv
bnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xh
c3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gVUlQ
cm9jZXNzIHR5cGVzCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3QsCiAgICAgICAgIFR5cGVC
YWNrRm9yd2FyZExpc3RJdGVtLAorICAgICAgICBUeXBlQ2FjaGVNYW5hZ2VyLAogICAgICAgICBU
eXBlQ29udGV4dCwKICAgICAgICAgVHlwZURhdGFiYXNlTWFuYWdlciwKICAgICAgICAgVHlwZURv
d25sb2FkLApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2luLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2luLmgJ
KHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlNlY3VyaXR5T3Jp
Z2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDEwICs1MiwxOSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4ucmVs
ZWFzZSgpKSk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2VjdXJpdHlPcmln
aW4+IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAg
ICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc3RyaW5nKTsKKyAgICAgICAgaWYg
KCFzZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luLnJlbGVhc2UoKSkp
OworICAgIH0KKwogICAgIGNvbnN0IFN0cmluZyBwcm90b2NvbCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2VjdXJpdHlPcmlnaW4tPnByb3RvY29sKCk7IH0KICAgICBjb25zdCBTdHJpbmcgaG9zdCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPmhvc3QoKTsgfQogICAgIHVuc2lnbmVkIHNo
b3J0IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5wb3J0KCk7IH0KIAor
ICAgIGNvbnN0IFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmln
aW4tPnRvU3RyaW5nKCk7IH0KICAgICBjb25zdCBTdHJpbmcgZGF0YWJhc2VJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7IH0K
IAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHJldmlz
aW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSw2ICs3MSw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
QXV0aGVudGljYXQKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQXV0aGVudGljYXRpb25E
ZWNpc2lvbkxpc3RlbmVyKiBXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0KiBXS0JhY2tGb3J3YXJk
TGlzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0SXRl
bSogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tDYWNoZU1hbmFnZXIqIFdLQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0NyZWRlbnRpYWwqIFdLQ3JlZGVudGlhbFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLRGF0YWJhc2VNYW5hZ2VyKiBXS0RhdGFiYXNlTWFuYWdlclJlZjsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94
eS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5LmgiCisKKyNpbmNs
dWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIK
KyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvbnRl
eHQuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViQ2FjaGVNYW5h
Z2VyUHJveHk+IFdlYkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogd2ViQ29u
dGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNhY2hlTWFuYWdlclByb3h5KHdl
YkNvbnRleHQpKTsKK30KKworV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OldlYkNhY2hlTWFuYWdlclBy
b3h5KFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCisgICAgOiBtX3dlYkNvbnRleHQod2ViQ29udGV4
dCkKK3sKK30KKworV2ViQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJDYWNoZU1hbmFnZXJQcm94eSgp
Cit7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAg
IGludmFsaWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBXZWJD
YWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFj
az4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0g
cHJwQ2FsbGJhY2s7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2VzcygpKSB7
CisgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CisgICAg
bV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgY2FsbGJhY2sucmVsZWFzZSgpKTsKKyAg
ICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViQ2FjaGVNYW5hZ2Vy
OjpHZXRDYWNoZU9yaWdpbnMoY2FsbGJhY2tJRCksIDApOworfQorCit2b2lkIFdlYkNhY2hlTWFu
YWdlclByb3h5OjpkaWRHZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9yaWdp
bklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIFJlZlB0cjxBcnJheUNh
bGxiYWNrPiBjYWxsYmFjayA9IG1fYXJyYXlDYWxsYmFja3MudGFrZShjYWxsYmFja0lEKTsKKyAg
ICBpZiAoIWNhbGxiYWNrKSB7CisgICAgICAgIC8vIEZJWE1FOiBMb2cgZXJyb3Igb3IgYXNzZXJ0
LgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2l6ZV90IG9yaWdpbklkZW50aWZpZXJz
Q291bnQgPSBvcmlnaW5JZGVudGlmaWVycy5zaXplKCk7CisgICAgVmVjdG9yPFJlZlB0cjxBUElP
YmplY3Q+ID4gc2VjdXJpdHlPcmlnaW5zKG9yaWdpbklkZW50aWZpZXJzQ291bnQpOworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5JZGVudGlmaWVyc0NvdW50OyArK2kpIHsKKyAg
ICAgICAgUmVmUHRyPEFQSU9iamVjdD4gb3JpZ2luID0gV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21TdHJpbmcob3JpZ2luSWRlbnRpZmllcnNbaV0pOworICAgICAgICBpZiAoIW9yaWdpbikK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzZWN1cml0eU9yaWdpbnNbaV0gPSBvcmln
aW47CisgICAgfQorCisgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1
ZShJbW11dGFibGVBcnJheTo6YWRvcHQoc2VjdXJpdHlPcmlnaW5zKS5nZXQoKSk7Cit9CisKK3Zv
aWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdlYlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OldlYkNhY2hlTWFuYWdlcjo6RGVsZXRlQ2FjaGVGb3JPcmlnaW4ob3JpZ2luLT50
b1N0cmluZygpKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFs
bENhY2hlKCkKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6V2ViQ2FjaGVNYW5hZ2VyOjpEZWxldGVBbGxDYWNoZSgpLCAwKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5h
Z2VyUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJDYWNoZU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYkNh
Y2hlTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkFy
Z3VtZW50cy5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJ
UEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1l
c3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbnRleHQ7Citj
bGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKwordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJh
eVJlZj4gQXJyYXlDYWxsYmFjazsKKworY2xhc3MgV2ViQ2FjaGVNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUNhY2hlTWFuYWdlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNhY2hlTWFuYWdl
clByb3h5PiBjcmVhdGUoV2ViQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYkNhY2hlTWFuYWdl
clByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4
dCgpIHsgbV93ZWJDb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnMoUGFz
c1JlZlB0cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBkZWxldGVDYWNoZUZvck9yaWdpbihX
ZWJTZWN1cml0eU9yaWdpbiopOworICAgIHZvaWQgZGVsZXRlQWxsQ2FjaGUoKTsKKworICAgIHZv
aWQgZGlkUmVjZWl2ZVdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0
aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJDYWNoZU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7
CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKwor
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCBkaWRHZXRDYWNoZU9yaWdpbnMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKKworICAgIFdlYkNvbnRleHQqIG1fd2ViQ29udGV4dDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBtX2FycmF5Q2FsbGJhY2tzOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBEYXRhYmFzZU1hbmFnZXJQcm94eV9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3Nh
Z2VzIC0+IFdlYkNhY2hlTWFuYWdlclByb3h5IHsKKyAgICBEaWRHZXRDYWNoZU9yaWdpbnMoVmVj
dG9yPFdURjo6U3RyaW5nPiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCkK
K30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4
dE1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5o
IgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtOTUsNiArOTYsNyBAQCBX
ZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NNb2RlbCBwcm9jCiAgICAgLCBtX2NsZWFyQXBw
bGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3MoZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBs
ZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwoMTQwMC4wKQor
ICAgICwgbV9jYWNoZU1hbmFnZXJQcm94eShXZWJDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRo
aXMpKQogICAgICwgbV9kYXRhYmFzZU1hbmFnZXJQcm94eShXZWJEYXRhYmFzZU1hbmFnZXJQcm94
eTo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eShXZWJHZW9s
b2NhdGlvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogI2lmIFBMQVRGT1JNKFdJTikKQEAg
LTExNCw2ICsxMTYsOSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBXZWJQcm9j
ZXNzTWFuYWdlcjo6c2hhcmVkKCkuY29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKIAorICAgIG1f
Y2FjaGVNYW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX2NhY2hlTWFuYWdlclByb3h5
LT5jbGVhckNvbnRleHQoKTsKKwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmludmFs
aWRhdGUoKTsKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5jbGVhckNvbnRleHQoKTsK
IApAQCAtNDgzLDYgKzQ4OCwxMSBAQCB2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlclByb3h5PigpKSB7CisgICAgICAgIG1f
Y2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2RhdGFiYXNlTWFuYWdlclByb3h5LT5kaWRS
ZWNlaXZlV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJ
RCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OworY2xhc3MgV2ViQ2FjaGVNYW5h
Z2VyUHJveHk7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OwogY2xhc3MgV2ViUGFnZUdyb3VwOwpAQCAtMTI3LDYgKzEyOCw3
IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNo
PiBwZGZBbmRQb3N0U2NyaXB0TUlNRVR5cGVzKCk7CiAKKyAgICBXZWJDYWNoZU1hbmFnZXJQcm94
eSogY2FjaGVNYW5hZ2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTWFuYWdlclByb3h5
LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkqIGRhdGFiYXNlTWFuYWdlclBy
b3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eS5nZXQoKTsgfQogICAg
IFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgpIGNv
bnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuZ2V0KCk7IH0KIApAQCAtMjAy
LDYgKzIwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21lbW9yeVNhbXBsZXJFbmFibGVkOwog
ICAgIGRvdWJsZSBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbDsKIAorICAgIFJlZlB0cjxXZWJDYWNo
ZU1hbmFnZXJQcm94eT4gbV9jYWNoZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHk+IG1fZGF0YWJhc2VNYW5hZ2VyUHJveHk7CiAgICAgUmVmUHRyPFdlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5PiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5OwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAkocmV2aXNp
b24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjMwLDYgKzIzMCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZSgKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3Nh
Z2VDbGFzc1dlYkNvbnRleHQ+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1l
c3NhZ2VDbGFzc1dlYkNvbnRleHRMZWdhY3k+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlzPENv
cmVJUEM6Ok1lc3NhZ2VDbGFzc0Rvd25sb2FkUHJveHk+KCkKKyAgICAgICAgfHwgbWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlclByb3h5PigpCiAgICAgICAg
IHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQ
cm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2Vi
R2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsKICAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCShyZXZpc2lvbiA3ODUwMSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0Owog
Y2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKK2NsYXNzIFdlYkNhY2hlTWFuYWdlclByb3h5
OwogY2xhc3MgV2ViQ29udGV4dDsKIGNsYXNzIFdlYkNyZWRlbnRpYWw7CiBjbGFzcyBXZWJEYXRh
YmFzZU1hbmFnZXJQcm94eTsKQEAgLTY4LDYgKzY5LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdL
QXV0aGVudGljYXRpb25DaGFsbAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVudGljYXRpb25E
ZWNpc2lvbkxpc3RlbmVyUmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIpCiBXS19B
RERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0UmVmLCBXZWJCYWNr
Rm9yd2FyZExpc3QpCitXS19BRERfQVBJX01BUFBJTkcoV0tDYWNoZU1hbmFnZXJSZWYsIFdlYkNh
Y2hlTWFuYWdlclByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29udGV4dFJlZiwgV2ViQ29u
dGV4dCkKIFdLX0FERF9BUElfTUFQUElORyhXS0NyZWRlbnRpYWxSZWYsIFdlYkNyZWRlbnRpYWwp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tEYXRhYmFzZU1hbmFnZXJSZWYsIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVN
YW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS0NhY2hlTWFu
YWdlci5oIgorCisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJX
S0FQSUNhc3QuaCIKKworI2lmZGVmIF9fQkxPQ0tTX18KKyNpbmNsdWRlIDxCbG9jay5oPgorI2Vu
ZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLQ2FjaGVNYW5hZ2Vy
R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OkFQ
SVR5cGUpOworfQorCit2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zKFdLQ2FjaGVN
YW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tDYWNoZU1hbmFnZXJH
ZXRDYWNoZU9yaWdpbnNGdW5jdGlvbiBjYWxsYmFjaykKK3sKKyAgICB0b0ltcGwoY2FjaGVNYW5h
Z2VyUmVmKS0+Z2V0Q2FjaGVPcmlnaW5zKEFycmF5Q2FsbGJhY2s6OmNyZWF0ZShjb250ZXh0LCBj
YWxsYmFjaykpOworfQorCisjaWZkZWYgX19CTE9DS1NfXworc3RhdGljIHZvaWQgY2FsbEdldENh
Y2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKFdLQXJyYXlSZWYgcmVzdWx0VmFsdWUsIFdL
RXJyb3JSZWYgZXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgV0tDYWNoZU1hbmFnZXJH
ZXRDYWNoZU9yaWdpbnNCbG9jayBibG9jayA9IChXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2lu
c0Jsb2NrKWNvbnRleHQ7CisgICAgYmxvY2socmVzdWx0VmFsdWUsIGVycm9yUmVmKTsKKyAgICBC
bG9ja19yZWxlYXNlKGJsb2NrKTsKK30KKwordm9pZCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3Jp
Z2luc19iKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJlZiwgV0tDYWNoZU1hbmFnZXJH
ZXRDYWNoZU9yaWdpbnNCbG9jayBibG9jaykKK3sKKyAgICBXS0NhY2hlTWFuYWdlckdldENhY2hl
T3JpZ2lucyhjYWNoZU1hbmFnZXJSZWYsIEJsb2NrX2NvcHkoYmxvY2spLCBjYWxsR2V0Q2FjaGVP
cmlnaW5zQmxvY2tCbG9ja0FuZERpc3Bvc2UpOworfQorI2VuZGlmCisKK3ZvaWQgV0tDYWNoZU1h
bmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbihXS0NhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmFnZXJS
ZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1wbChjYWNoZU1h
bmFnZXJSZWYpLT5kZWxldGVDYWNoZUZvck9yaWdpbih0b0ltcGwob3JpZ2luUmVmKSk7Cit9CisK
K3ZvaWQgV0tDYWNoZU1hbmFnZXJEZWxldGVBbGxDYWNoZShXS0NhY2hlTWFuYWdlclJlZiBjYWNo
ZU1hbmFnZXJSZWYpCit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJlZiktPmRlbGV0ZUFsbENh
Y2hlKCk7ICAgIAorfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2Fj
aGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV0tDYWNoZU1hbmFnZXJfaAorI2RlZmluZSBXS0NhY2hlTWFu
YWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3Bs
dXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0NhY2hlTWFu
YWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS0NhY2hlTWFuYWdlckdldENhY2hl
T3JpZ2luc0Z1bmN0aW9uKShXS0FycmF5UmVmLCBXS0Vycm9yUmVmLCB2b2lkKik7CitXS19FWFBP
UlQgdm9pZCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2lucyhXS0NhY2hlTWFuYWdlclJlZiBj
b250ZXh0UmVmLCB2b2lkKiBjb250ZXh0LCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2luc0Z1
bmN0aW9uIGZ1bmN0aW9uKTsKKyNpZmRlZiBfX0JMT0NLU19fCit0eXBlZGVmIHZvaWQgKF5XS0Nh
Y2hlTWFuYWdlckdldENhY2hlT3JpZ2luc0Jsb2NrKShXS0FycmF5UmVmLCBXS0Vycm9yUmVmKTsK
K1dLX0VYUE9SVCB2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IoV0tDYWNoZU1h
bmFnZXJSZWYgZGF0YWJhc2VNYW5hZ2VyLCBXS0NhY2hlTWFuYWdlckdldENhY2hlT3JpZ2luc0Js
b2NrIGJsb2NrKTsKKyNlbmRpZgorCitXS19FWFBPUlQgdm9pZCBXS0NhY2hlTWFuYWdlckRlbGV0
ZUNhY2hlRm9yT3JpZ2luKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuZ2VyLCBXS1NlY3VyaXR5
T3JpZ2luUmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS0NhY2hlTWFuYWdlckRlbGV0ZUFs
bENhY2hlKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlcik7CisKKyNpZmRlZiBfX2NwbHVz
cGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS0NhY2hlTWFuYWdlcl9oCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkocmV2aXNpb24gNzg1
MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMSBAQCB2b2lkIFdLQ29udGV4dENsZWFyQXBwbGlj
YXRpb25DYWNoZShXS0NvCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jbGVhckFwcGxpY2F0aW9u
Q2FjaGUoKTsKIH0KIAorV0tDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q2FjaGVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQoreworICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPmNhY2hlTWFuYWdlclByb3h5KCkpOworfQorCiBXS0RhdGFiYXNlTWFuYWdlclJl
ZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7
CiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+ZGF0YWJhc2VNYW5hZ2VyUHJv
eHkoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
CShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMyw3IEBAIFdLX0VYUE9SVCB2b2lk
IFdLQ29udGV4dENsZWFyQXBwbGljYXRpb24KIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0YXJ0
TWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tEb3VibGVSZWYgaW50ZXJ2YWwp
OwogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RvcE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVm
IGNvbnRleHQpOwogCitXS19FWFBPUlQgV0tDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q2Fj
aGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0RhdGFiYXNlTWFu
YWdlclJlZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogV0tfRVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0
aW9uTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc4NTAx
KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDEsNiArMjQxLDE2IEBACiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3
NkMyQiAvKiBXZWJJbnNwZWN0b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQzhFMkRBRDEyNzhDNUIyMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9y
TWFjLm1tICovOyB9OwogCQkyOUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdC5oICovOyB9OwogCQkyOUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyOUNENTVBOTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QubW0gKi87IH07CisJCTMzNUM0Njk0MTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzM1QzQ2OTExMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5jcHAgKi87IH07CisJ
CTMzNUM0Njk1MTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzNUM0NjkyMTMwQjU3RkMwMDI0
NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCAqLzsgfTsKKwkJMzNCQTI5MzYxMzBCNERGMDAwMkJC
OUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkEyOTM1MTMwQjRERjAwMDJCQjlFQyAvKiBX
ZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCTMzQkEyOTNBMTMwQjRFMDIw
MDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCQTI5MzcxMzBCNEUwMjAwMkJC
OUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTMzQkEy
OTNCMTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCQTI5MzgxMzBCNEUwMjAw
MkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTMzQkEyOTNDMTMw
QjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JBMjkzOTEz
MEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OworCQkzM0U1RUYwMjEzMEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNFNUVGMDAx
MzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMzNFNUVGMDMx
MzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U1RUYwMTEzMEI0QUQ5MDBBQzg4NEIgLyogV0tD
YWNoZU1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07
IH07CisJCTMzRTVFRjA2MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U1RUYw
NDEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICovOyB9OworCQkz
M0U1RUYwNzEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTVFRjA1MTMwQjRCMkIw
MEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5oICovOyB9OwogCQkzN0Y2MjNCODEyQTU3
QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9w
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJ
CTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMDIxRTlCMTJC
MTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbSAqLzsgfTsKIAkJNTEw
RkJCOUExMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRkJCOTgxMjg4Qzk1
RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwICovOyB9OwpAQCAtMTAxNCw2
ICsxMDI0LDE4IEBACiAJCTI5Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3Np
YmlsaXR5V2ViUGFnZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOUNE
NTVBOTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzJEQkNGNUUwMzcwQURF
RTAwQzkxNzgzIC8qIFdlYktpdDJQcmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViS2l0MlByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzVD
NDY5MTEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlci5jcHA7IHBhdGggPSBNZW1v
cnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMzVDNDY5MjEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlci5oOyBwYXRoID0gTWVtb3J5
Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMz
NUM0NjkzMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0g
TWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzM0JBMjkxODEzMEI0QzUxMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQ2FjaGVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzQkEyOTM1
MTMwQjRERjAwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aDsgcGF0aCA9IC9Vc2Vycy9icmlhbl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9E
ZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJMzNCQTI5MzcxMzBCNEUwMjAwMkJC
OUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0Rl
YnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJMzNCQTI5MzgxMzBCNEUwMjAw
MkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSAvVXNlcnMvYnJp
YW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0
ZT4iOyB9OworCQkzM0JBMjkzOTEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gL1VzZXJz
L2JyaWFuX3dlaW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzM0U1RUYwMDEzMEI0QUQ5MDBBQzg4NEIgLyog
V0tDYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tDYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0U1RUYw
MTEzMEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tDYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzNFNUVGMDQxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNhY2hlTWFuYWdlclBy
b3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNFNUVGMDUxMzBCNEIyQjAw
QUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkNhY2hlTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRmluZE9wdGlvbnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRN
ZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbURh
dGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAxMyw2ICsyMDM1LDE2IEBA
CiAJCQl0YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTMzNUM0NjkwMTMw
QjU3QzIwMDI0NEJEMCAvKiBNZW1vcnlDYWNoZSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOwor
CQkJY2hpbGRyZW4gPSAoCisJCQkJMzM1QzQ2OTExMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hl
TWFuYWdlci5jcHAgKi8sCisJCQkJMzM1QzQ2OTIxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hl
TWFuYWdlci5oICovLAorCQkJCTMzNUM0NjkzMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1h
bmFnZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJbmFtZSA9IE1lbW9yeUNhY2hlOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5NTMw
IC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTIwNTYsNiArMjA4OCw3IEBACiAJCQkJQkMwRTVGQ0IxMkQ2OTZERDAwMTJBNzJB
IC8qIEdlb2xvY2F0aW9uICovLAogCQkJCUJDMjA0RURGMTFDODNFNzIwMDhGMzM3NSAvKiBJbmpl
Y3RlZEJ1bmRsZSAqLywKIAkJCQkxQTZGQTAxQzExRTE1MjYzMDBEQjEzNzEgLyogbWFjICovLAor
CQkJCTMzNUM0NjkwMTMwQjU3QzIwMDI0NEJEMCAvKiBNZW1vcnlDYWNoZSAqLywKIAkJCQkxQTZG
QjdBQTExRTY0QjQ5MDBEQjEzNzEgLyogUGx1Z2lucyAqLywKIAkJCQlCQzAzMkQ1RDEwRjQzNzIy
MDA1OEMxNUEgLyogV2ViQ29yZVN1cHBvcnQgKi8sCiAJCQkJQkMwMzJENUUxMEY0MzcyQjAwNThD
MTVBIC8qIFdlYlBhZ2UgKi8sCkBAIC0yMTg2LDYgKzIyMTksOSBAQAogCQkJCTFBMEYyOUUyMTIw
QjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmggKi8sCiAJCQkJQkM3MkJBMUIx
MUU2NDkwNzAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdC5jcHAgKi8sCiAJCQkJQkM3MkJB
MUMxMUU2NDkwNzAwMUVCNEVBIC8qIFdlYkJhY2tGb3J3YXJkTGlzdC5oICovLAorCQkJCTMzRTVF
RjA0MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCisJCQkJ
MzNFNUVGMDUxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmggKi8sCisJ
CQkJMzNCQTI5MTgxMzBCNEM1MTAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluICovLAogCQkJCUJDQjlFMjQyMTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmNw
cCAqLywKIAkJCQlCQ0I5RTI0MTExMjBEQUNBMDBBMTM3RTAgLyogV2ViQ29udGV4dC5oICovLAog
CQkJCUJDRUU3RDA5MTI4NDZBRUQwMDk4MjdEQSAvKiBXZWJDb250ZXh0Lm1lc3NhZ2VzLmluICov
LApAQCAtMjI4MSw2ICsyMzE3LDggQEAKIAkJCQlCQzY0NkMxNzExREQzOTlGMDA2NDU1QjAgLyog
V0tCYWNrRm9yd2FyZExpc3QuaCAqLywKIAkJCQlCQzY0NkMxODExREQzOTlGMDA2NDU1QjAgLyog
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLywKIAkJCQlCQzY0NkMxOTExREQzOTlGMDA2NDU1
QjAgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8sCisJCQkJMzNFNUVGMDAxMzBCNEFEOTAw
QUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2VyLmNwcCAqLywKKwkJCQkzM0U1RUYwMTEzMEI0QUQ5MDBB
Qzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuaCAqLywKIAkJCQlCQ0I5RTI0QTExMjBFMTVDMDBBMTM3
RTAgLyogV0tDb250ZXh0LmNwcCAqLywKIAkJCQlCQ0I5RTI0OTExMjBFMTVDMDBBMTM3RTAgLyog
V0tDb250ZXh0LmggKi8sCiAJCQkJQkNDOTM4RTAxMTgwREU0NDAwODVFNUZFIC8qIFdLQ29udGV4
dFByaXZhdGUuaCAqLywKQEAgLTI3NjQsNiArMjgwMiwxMCBAQAogCQkJCTFBMDQzQjVDMTI0RDVF
OUQwMEZGQkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTFBOEVG
QTZFMTI1MkI4NDEwMEY3MDY3RiAvKiBQbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CiAJCQkJMUE4RUZBNkYxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZXMuaCAq
LywKKwkJCQkzM0JBMjkzNzEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzM0JBMjkzODEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2Fj
aGVNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQkzM0JBMjkzOTEzMEI0RTAyMDAyQkI5RUMgLyog
V2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTMzQkEyOTM1
MTMwQjRERjAwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJQkNFRTdEMEIxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCUJDRUU3RDBDMTI4NDZGNjkwMDk4MjdEQSAvKiBXZWJDb250ZXh0TWVzc2Fn
ZXMuaCAqLywKIAkJCQlGNjJBNzZCMjEyQjFCMjVGMDAwNUYxQjYgLyogV2ViRGF0YWJhc2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTMxNzUsNiArMzIxNywxMSBAQAogCQkJCUJD
QTU2QTFDMTJGOTAyOEUwMEM1NjZDNyAvKiBXZWJHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQTU2QTY1MTJGOUM4RjkwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBNTZBNjkxMkY5QzlBRDAwQzU2NkM3IC8qIFdLR3JhcGhp
Y3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzRTVFRjAzMTMwQjRBRDkwMEFDODg0
QiAvKiBXS0NhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzNFNUVGMDcxMzBCNEIy
QjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQkz
M0JBMjkzNjEzMEI0REYwMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzNCQTI5M0IxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hl
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMzVDNDY5NTEzMEI1N0ZDMDAy
NDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM2NTIsNiArMzY5
OSwxMSBAQAogCQkJCUJDQTU2QTY2MTJGOUM4RjkwMEM1NjZDNyAvKiBXS0dyYXBoaWNzQ29udGV4
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0E1NkE2QTEyRjlDOUFEMDBDNTY2QzcgLyogV0tH
cmFwaGljc0NvbnRleHRDRy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTlDNTUxRTEzMDAwNjQx
MDAyNUMwQzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTMzRTVFRjAyMTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzM0U1RUYwNjEzMEI0QjJCMDBBQzg4NEIgLyogV2Vi
Q2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzNCQTI5M0ExMzBCNEUw
MjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkzM0JBMjkzQzEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzM1QzQ2OTQxMzBCNTdG
QzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNzg1MDEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNv
ZGVycy5oIgogI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9u
LmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAi
V2ViRGF0YWJhc2VNYW5hZ2VyLmgiCkBAIC01MTAsNiArNTExLDExIEBAIHZvaWQgV2ViUHJvY2Vz
czo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAg
IGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyPigp
KSB7CisgICAgICAgIFdlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFz
ZU1hbmFnZXI+KCkpIHsKICAgICAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRS
ZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAg
IHJldHVybjsKQEAgLTYyMyw2ICs2MjksMTIgQEAgdm9pZCBXZWJQcm9jZXNzOjpjbGVhclJlc291
cmNlQ2FjaGVzKCkKICAgICBzZXRDYWNoZU1vZGVsKENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcik7
CiAgICAgc2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKTsKIAorICAgIC8vIElmIHRoZSBtZW1vcnkg
Y2FjaGUgaXMgY3VycmVudGx5IGVuYWJsZWQsIHRvZ2dsZSBpdCBvbiBhbmQgb2ZmIHRvIGV2aWN0
IGl0cyByZXNvdXJjZXMuCisgICAgaWYgKCFtZW1vcnlDYWNoZSgpLT5kaXNhYmxlZCgpKSB7Cisg
ICAgICAgIG1lbW9yeUNhY2hlKCktPnNldERpc2FibGVkKHRydWUpOworICAgICAgICBtZW1vcnlD
YWNoZSgpLT5zZXREaXNhYmxlZChmYWxzZSk7CisgICAgfQorCiAgICAgLy8gRW1wdHkgdGhlIGNy
b3NzLW9yaWdpbiBwcmVmbGlnaHQgY2FjaGUuCiAgICAgQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZTo6c2hhcmVkKCkuZW1wdHkoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDggQEAgcHVi
bGljOgogICAgIC8vIEdlb2xvY2F0aW9uCiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyJiBnZW9s
b2NhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9uTWFuYWdlcjsgfQogCisgICAg
dm9pZCBjbGVhclJlc291cmNlQ2FjaGVzKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzcygp
OwogCkBAIC0xMzksNyArMTQxLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBjYWxjdWxh
dGVDYWNoZVNpemVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwgdWludDY0X3QgbWVtb3J5U2l6ZSwg
dWludDY0X3QgZGlza0ZyZWVTaXplLAogICAgICAgICB1bnNpZ25lZCYgY2FjaGVUb3RhbENhcGFj
aXR5LCB1bnNpZ25lZCYgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIHVuc2lnbmVkJiBjYWNoZU1heERl
YWRDYXBhY2l0eSwgZG91YmxlJiBkZWFkRGVjb2RlZERhdGFEZWxldGlvbkludGVydmFsLAogICAg
ICAgICB1bnNpZ25lZCYgcGFnZUNhY2hlQ2FwYWNpdHksIHVuc2lnbmVkIGxvbmcmIHVybENhY2hl
TWVtb3J5Q2FwYWNpdHksIHVuc2lnbmVkIGxvbmcmIHVybENhY2hlRGlza0NhcGFjaXR5KTsKLSAg
ICB2b2lkIGNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2b2lkIHBsYXRmb3JtQ2xlYXJSZXNv
dXJjZUNhY2hlcygpOwogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlKCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dl
YkNhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
Q2FjaGVNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVz
c2FnZUlELmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAi
V2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbi5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYkNhY2hlTWFuYWdlciYgV2ViQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKQorewor
ICAgIHN0YXRpYyBXZWJDYWNoZU1hbmFnZXImIHNoYXJlZCA9ICpuZXcgV2ViQ2FjaGVNYW5hZ2Vy
OworICAgIHJldHVybiBzaGFyZWQ7Cit9CisKK1dlYkNhY2hlTWFuYWdlcjo6V2ViQ2FjaGVNYW5h
Z2VyKCkKK3sKK30KKworV2ViQ2FjaGVNYW5hZ2VyOjp+V2ViQ2FjaGVNYW5hZ2VyKCkKK3sKK30K
Kwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5l
Y3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJDYWNoZU1h
bmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKworCit2
b2lkIFdlYkNhY2hlTWFuYWdlcjo6Z2V0Q2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQp
IGNvbnN0Cit7CisgICAgSGFzaFNldDxTdHJpbmc+IG9yaWdpbnM7CisgICAgbWVtb3J5Q2FjaGUo
KS0+b3JpZ2luc1dpdGhDYWNoZShvcmlnaW5zKTsKKworICAgIHNpemVfdCBudW1PcmlnaW5zID0g
b3JpZ2lucy5zaXplKCk7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBpZGVudGlmaWVycyhudW1Pcmln
aW5zKTsKKyAgICBIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7
CisKKyAgICB1bnNpZ25lZCBpID0gMDsKKyAgICBmb3IgKEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0
b3IgaXQgPSBvcmlnaW5zLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgaWRlbnRp
ZmllcnNbaSsrXSA9ICppdDsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OkRpZEdldENhY2hlT3JpZ2lu
cyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCksIDApOworfQorCit2b2lkIFdlYkNhY2hlTWFuYWdl
cjo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpIGNvbnN0
Cit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJpbmcpOworICAgIGlmICghb3JpZ2luKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtZW1vcnlDYWNoZSgpLT5yZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2lu
KG9yaWdpbik7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyOjpkZWxldGVBbGxDYWNoZSgpIGNv
bnN0Cit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY2xlYXJSZXNvdXJjZUNhY2hlcygpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5h
Z2VyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYkNhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdlYkNhY2hlTWFuYWdlcl9oCisKKyNpbmNsdWRl
ICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1l
bnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VJRDsKK30KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNhY2hlTWFuYWdlciB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2ViQ2FjaGVNYW5hZ2VyKTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViQ2Fj
aGVNYW5hZ2VyJiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CisKK3ByaXZhdGU6CisgICAgV2ViQ2FjaGVNYW5hZ2VyKCk7CisgICAgdmlydHVhbCB+
V2ViQ2FjaGVNYW5hZ2VyKCk7CisKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2Vi
Q2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkNh
Y2hlTWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKKyAgICB2b2lkIGdldENhY2hlT3JpZ2lu
cyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdDsKKyAgICB2b2lkIGRlbGV0ZUNhY2hlRm9yT3Jp
Z2luKGNvbnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdDsKKyAgICB2b2lkIGRlbGV0ZUFsbENhY2hl
KCkgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkNh
Y2hlTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hl
L1dlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2Fj
aGVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACisjIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYkNhY2hl
TWFuYWdlciB7CisgICAgdm9pZCBHZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkK
KyAgICB2b2lkIERlbGV0ZUNhY2hlRm9yT3JpZ2luKFdURjo6U3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpCisgICAgdm9pZCBEZWxldGVBbGxDYWNoZSgpCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTM0Miw2ICsxMzQyLDIyIEBACiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4KKyAgICAgICAgICAgIDxGaWx0ZXIKKyAgICAgICAgICAg
ICAgICBOYW1lPSJNZW1vcnlDYWNoZSIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAg
ICAgPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE1lbW9yeUNhY2hlXFdl
YkNhY2hlTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXE1lbW9yeUNhY2hlXFdlYkNhY2hlTWFuYWdlci5o
IgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
V2ViUHJvY2Vzc1xNZW1vcnlDYWNoZVxXZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4iCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisgICAgICAgICAgICA8L0ZpbHRlcj4KIAkJCTxGaWx0ZXIKIAkJCQlO
YW1lPSJXZWJDb3JlU3VwcG9ydCIKIAkJCQk+CkBAIC0yMjU4LDYgKzIyNzQsMTggQEAKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJCYWNrRm9yd2FyZExpc3QuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXFdlYkNhY2hlTWFuYWdlclByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkNhY2hlTWFuYWdlclByb3h5Lmgi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKKwkJCQk+CisJCQk8L0ZpbGU+
CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkNvbnRleHQuY3Bw
IgogCQkJCT4KQEAgLTI1NjAsNiArMjU4OCwxNCBAQAogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAJCQkJCQk+CiAJCQkJCTwv
RmlsZT4KKyAgICAgICAgICAgICAgICAgICAgPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXEFQSVxDXFdLQ2FjaGVNYW5hZ2VyLmNwcCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgorCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tD
YWNoZU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQogCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0LmNwcCIKIAkJCQkJCT4K
QEAgLTMyOTQsNiArMzMzMCwyMiBAQAogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xEcmF3aW5nQXJlYVBy
b3h5TWVzc2FnZXMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNhY2hlTWFu
YWdlck1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xXZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCIKIAkJCQk+CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDc4NTAxKQor
KysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwkod29ya2luZyBjb3B5
KQpAQCAtNiw3ICs2LDcgQEAKIAk+CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9y
bVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJ
UENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNw
cCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEF1
dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3du
bG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xj
ZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90
OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRl
cnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3
YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1
b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJ
XGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1
Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhl
bnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2Fk
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVT
dXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3Vw
cG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Um
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XE1lbW9yeUNhY2hlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVp
bGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1
ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVv
dDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0
Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3Jl
XEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNs
dWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCiAJCVByZXByb2Nlc3NvckRlZmlu
aXRpb25zPSJfVVNSRExMO1dFQktJVF9FWFBPUlRTO0ZSQU1FV09SS19OQU1FPVdlYktpdDtCVUlM
RElOR19XRUJLSVQiCiAJCVVzZVByZWNvbXBpbGVkSGVhZGVyPSIyIgogCQlQcmVjb21waWxlZEhl
YWRlclRocm91Z2g9IldlYktpdDJQcmVmaXguaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyR2VuZXJhdGVkLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJHZW5lcmF0ZWQubWFrZQkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw3IEBA
IGFsbDoKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJk
TGlzdC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhj
b3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgiICIl
Q29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2Qg
Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NhY2hlTWFuYWdlci5oIiAiJUNvbmZpZ3VyYXRpb25CdWls
ZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tDb250ZXh0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NvbnRleHRQcml2YXRlLmgi
ICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kg
L2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NyZWRlbnRpYWwuaCIgIiVDb25maWd1cmF0aW9uQnVp
bGREaXIlXGluY2x1ZGVcV2ViS2l0MiIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82582</attachid>
            <date>2011-02-15 20:17:54 -0800</date>
            <delta_ts>2011-02-15 20:54:37 -0800</delta_ts>
            <desc>[PATCH] Fix + Qt (Take 3)</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>68936</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw4IEBAIF9fWk43V2ViQ29yZTEx
SGlzdG9yeUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXREaXNhYmxlZEVi
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMTZvcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0
cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTM19FRUVFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMjVyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luRU4zV1RGNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxSZWN0VG9WaXNpYmxl
RVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUx
MWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTFtZW1vcnlD
YWNoZUV2CkBAIC0xMDU4LDYgKzEwNjAsNyBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRl
cjN1cmxFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyTGlzdEl0ZW0xMG1hcmtlclRleHRFdgogX19a
Tks3V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxMGNvbm5lY3Rpb25FdgogX19aTks3V2ViQ29yZTE0
UmVzb3VyY2VMb2FkZXIxMWZyYW1lTG9hZGVyRXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luOHRvU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5
RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVu
dGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCwzNSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXNv
dXJjZUFjY2Vzc2VkKENhY2hlCiAgICAgaW5zZXJ0SW5MUlVMaXN0KHJlc291cmNlKTsKIH0KIAor
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbikKK3sKKyAgICBWZWN0b3I8Q2FjaGVkUmVzb3VyY2UqPiByZXNvdXJj
ZXNXaXRoT3JpZ2luOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jl
c291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHJl
c291cmNlLT51cmwoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4uZ2V0
KCkpKQorICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwor
ICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9yaWdpbi5z
aXplKCk7ICsraSkKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlc1dpdGhPcmlnaW5baV0pOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3RyaW5nPiYgb3Jp
Z2lucykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2Vz
LmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNv
dXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBTdHJpbmcgb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnNlY29uZC0+dXJsKCkpLT50b1N0
cmluZygpOworICAgICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBvcmlnaW5zLmFkZChvcmlnaW4pOworICAgIH0KK30KKwogdm9pZCBNZW1v
cnlDYWNoZTo6cmVtb3ZlRnJvbUxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiB7CiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgYmVlbiBhY2Nlc3NlZCwgdGhl
biB3ZSdyZSBicmFuZCBuZXcgYW5kIG5vdCBpbiBhbnkgbGlzdC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCw3IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNv
dXJjZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgS1VSTDsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNhY2hlIGhvbGRzIHN1YnJlc291cmNlcyB1c2VkIGJ5
IFdlYiBwYWdlczogaW1hZ2VzLCBzY3JpcHRzLCBzdHlsZXNoZWV0cywgZXRjLgogCkBAIC0xNjMs
NiArMTY0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNo
ZWRSZXNvdXJjZSopOwogCisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHZvaWQgb3JpZ2luc1dpdGhDYWNoZShIYXNoU2V0PFN0
cmluZz4mIG9yaWdpbnMpOworCiBwcml2YXRlOgogICAgIE1lbW9yeUNhY2hlKCk7CiAgICAgfk1l
bW9yeUNhY2hlKCk7IC8vIE5vdCBpbXBsZW1lbnRlZCB0byBtYWtlIHN1cmUgbm9ib2R5IGFjY2lk
ZW50YWxseSBjYWxscyBkZWxldGUgLS0gV2ViQ29yZSBkb2VzIG5vdCBkZWxldGUgc2luZ2xldG9u
cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODcgQEAKKzIwMTEtMDItMTUgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdl
IHRoZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBB
UEkgdG8gbWFuYWdlIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZS4gVGhpcyBBUEkgZXhwb3NlcyB0
aHJlZSBmdW5jdGlvbnM6CisgICAgICAgIAorICAgICAgICAxKSBBIG1ldGhvZCB0byBnZXQgYSBs
aXN0IG9mIGFsbCBzZWN1cml0eSBvcmlnaW5zIHRoYXQgaGF2ZSBlbnRyaWVzIGluIHRoZSBXZWJD
b3JlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgMikgQSBtZXRob2QgdG8gcmVtb3ZlIGFsbCBlbnRy
aWVzIGluIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZSBmcm9tIGEgU2VjdXJpdHlPcmlnaW4uCisg
ICAgICAgIDMpIEEgbWV0aG9kIHRvIHJlbW92ZSBhbGwgZW50cmllcyBmcm9tIHRoZSBXZWJDb3Jl
IG1lbW9yeSBjYWNoZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6
IEFkZCB0d28gbmV3IE1lc3NhZ2VDbGFzc2VzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jh
c2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZCBhIENhY2hlTWFuYWdlciB0
eXBlLgorICAgICAgICAqIFNoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oOiBUeXBlZGVmIFdLQ2Fj
aGVNYW5hZ2VyUmVmLgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyk6IENyZWF0ZXMgYSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiB1c2luZyAKKyAg
ICAgICAgICAgIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcpOiBDYWxscyB0aHJvdWdoIHRvIFNlY3Vy
aXR5T3JpZ2luOjp0b1N0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKTogUmV0dXJucyB0aGUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkgdHlwZS4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmln
aW5zLgorICAgICAgICAoY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKToK
KyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IpOgorICAgICAgICAoV0tD
YWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luLgorICAgICAgICAoV0tDYWNoZU1h
bmFnZXJEZWxldGVBbGxDYWNoZSk6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFu
YWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
OgorICAgICAgICAoV0tDb250ZXh0R2V0Q2FjaGVNYW5hZ2VyKTogQ2FsbHMgdG8gZ2V0IHRoZSBX
ZWJDYWNoZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENhbGxz
IHRocm91Z2ggdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOiBJbml0aWFsaXplIHRoZSBtX3dlYkNv
bnRleHQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp+
V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQ
cm94eTo6aW52YWxpZGF0ZSk6IEludmFsaWRhdGUgdGhlIGNhbGxiYWNrIG1hcC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyk6IENhbGwgdGhy
b3VnaCB0byB0aGUgd2ViIHByb2Nlc3MgdG8gZ2V0IHRoZSBjYWNoZQorICAgICAgICAgICAgb3Jp
Z2lucy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldENhY2hl
T3JpZ2lucyk6IENhbGwgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4pOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdl
YiBwcm9jZXNzIHRvIGRlbGV0ZSBjYWNoZQorICAgICAgICAgICAgZm9yIHRoZSBnaXZlbiBvcmln
aW4uIAorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ2Fj
aGUpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwgb2YgdGhl
IGNhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6ICBJbnZhbGlkYXRlcyBuZXcg
bWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZSk6IFBhc3NlcyBjYWNoZSBtZXNzYWdlcyB0byB0aGUgY2FjaGUgbWFuYWdlci4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpjYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOiBBZGQgYSBuZXcgbWVzc2FnZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpXZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6
On5XZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQ2FsbHMgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9y
aWdpbnMpOiBHZXRzIGEgbGlzdCBvZiBvcmlnaW5zIHdpdGggY2FjaGUgZW50cmllcyBmcm9tIHRo
ZSBtZW1vcnkKKyAgICAgICAgICAgIGNhY2hlLCBhbmQgcHV0cyB0aGVtIGludG8gYSB2ZWN0b3Ig
dG8gc2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpkZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gbWVtb3J5Q2FjaGUg
dG8gZGVsZXRlIGFsbCBjYWNoZSBlbnRyaWVzCisgICAgICAgICAgICBmcm9tIGEgZ2l2ZW4gb3Jp
Z2luLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbENhY2hlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMpOiBEaXNhYmxlIGFuZCBy
ZS1lbmFibGUgdGhlIG1lbW9yeSBjYWNoZSwgdG8gbWFrZSBzdXJlIGl0IGV2aWN0cworICAgICAg
ICAgICAgYWxsIG9mIGl0cyByZXNvdXJjZXMuIFRoaXMgd2FzIGRvbmUgb24gV2ViS2l0MSwgYnV0
IG5vdCBXZWJLaXQyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5l
dyBmaWxlcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6IEFkZGVkIG5ldyBpbmNsdWRlIGRpcmVjdG9yeS4K
KyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOiBBZGRlZCBuZXcgaGVhZGVyLgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQCBWUEFUSCA9IFwKICAgICAk
KFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lbW9yeUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NSw2ICs0Niw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAg
UGx1Z2luUHJveHkgXAogICAgIFdlYkNvbnRleHQgXAorICAgIFdlYkNhY2hlTWFuYWdlciBcCisg
ICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcs
NyBAQCBWUEFUSCA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBXZWJQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKyAgICBXZWJQcm9jZXNz
L01lbW9yeUNhY2hlIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQgXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC05Miw2ICs5Myw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4g
XAogICAgIFBsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgUGx1Z2luUHJveHku
bWVzc2FnZXMuaW4gXAorICAgIFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCisgICAgV2Vi
Q2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYkNvbnRleHQubWVzc2FnZXMu
aW4gXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0
Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTE0Niw2ICsxNDYsNyBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAgIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NIFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jIFwKKyAgICBXZWJQcm9jZXNzL01lbW9y
eUNhY2hlIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCkBAIC0xNzYsNiAr
MTc3LDggQEAgV0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAog
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlcy5o
IFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNf
RElSL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKQEAg
LTE5Niw2ICsxOTksOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDYWNoZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
V2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtMjk4LDYgKzMwMyw3IEBAIEhFQURFUlMgKz0gXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tDYWNo
ZU1hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tD
cmVkZW50aWFsLmggXApAQCAtMzU0LDYgKzM2MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9UZXh0Q2hlY2tlci5oIFwKICAgICBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5
LmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAorICAgIFVJUHJvY2Vz
cy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmggXApAQCAtNDEyLDYgKzQxOSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIFwKKyAgICBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dl
YkNhY2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1l
dGhvZC5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIFwK
ICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5oIFwKQEAgLTUyOCw2
ICs1MzYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NyZWRl
bnRpYWwuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tEYXRhYmFzZU1hbmFnZXIuY3BwIFwK
QEAgLTU3NCw2ICs1ODMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJDYWNoZU1h
bmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgXApAQCAtNjQ3LDYgKzY1Nyw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL01lbW9yeUNhY2hl
L1dlYkNhY2hlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAg
XApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCShy
ZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBNZXNzYWdlQ2xhc3Mg
ewogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhLAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdB
cmVhTGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlLAorICAgIE1lc3NhZ2VD
bGFzc1dlYkNhY2hlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIs
CiAgICAgTWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2Fn
ZUNsYXNzV2ViSW5zcGVjdG9yLApAQCAtNDksNiArNTAsNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7
CiAgICAgTWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJveHlMZWdhY3ksCisgICAg
TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29u
dGV4dCwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFz
c1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgICAgICAvLyBVSVBy
b2Nlc3MgdHlwZXMKICAgICAgICAgVHlwZUJhY2tGb3J3YXJkTGlzdCwKICAgICAgICAgVHlwZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0sCisgICAgICAgIFR5cGVDYWNoZU1hbmFnZXIsCiAgICAgICAgIFR5
cGVDb250ZXh0LAogICAgICAgICBUeXBlRGF0YWJhc2VNYW5hZ2VyLAogICAgICAgICBUeXBlRG93
bmxvYWQsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAko
cmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmln
aW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTAgKzUyLDE5IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbi5yZWxl
YXNlKCkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJTZWN1cml0eU9yaWdp
bj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAg
IFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzdHJpbmcpOworICAgICAgICBpZiAo
IXNlY3VyaXR5T3JpZ2luKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4ucmVsZWFzZSgpKSk7
CisgICAgfQorCiAgICAgY29uc3QgU3RyaW5nIHByb3RvY29sKCkgY29uc3QgeyByZXR1cm4gbV9z
ZWN1cml0eU9yaWdpbi0+cHJvdG9jb2woKTsgfQogICAgIGNvbnN0IFN0cmluZyBob3N0KCkgY29u
c3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+aG9zdCgpOyB9CiAgICAgdW5zaWduZWQgc2hv
cnQgcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPnBvcnQoKTsgfQogCisg
ICAgY29uc3QgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdp
bi0+dG9TdHJpbmcoKTsgfQogICAgIGNvbnN0IFN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsgfQog
CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNp
b24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tB
dXRoZW50aWNhdAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0ZvcndhcmRM
aXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3RJdGVt
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0NhY2hlTWFuYWdlciogV0tDYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLQ3JlZGVudGlhbCogV0tDcmVkZW50aWFsUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tEYXRhYmFzZU1hbmFnZXIqIFdLRGF0YWJhc2VNYW5hZ2VyUmVmOwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgor
I2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4
dC5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJDYWNoZU1hbmFn
ZXJQcm94eT4gV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiB3ZWJDb250
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ2FjaGVNYW5hZ2VyUHJveHkod2Vi
Q29udGV4dCkpOworfQorCitXZWJDYWNoZU1hbmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJv
eHkoV2ViQ29udGV4dCogd2ViQ29udGV4dCkKKyAgICA6IG1fd2ViQ29udGV4dCh3ZWJDb250ZXh0
KQoreworfQorCitXZWJDYWNoZU1hbmFnZXJQcm94eTo6fldlYkNhY2hlTWFuYWdlclByb3h5KCkK
K3sKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAg
aW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworfQorCit2b2lkIFdlYkNh
Y2hlTWFuYWdlclByb3h5OjpnZXRDYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNr
PiBwcnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBw
cnBDYWxsYmFjazsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpIHsK
KyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBt
X2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworICAg
IG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZU1hbmFnZXI6
OkdldENhY2hlT3JpZ2lucyhjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5h
Z2VyUHJveHk6OmRpZEdldENhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3JpZ2lu
SWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2Fs
bGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAg
IGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQu
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzaXplX3Qgb3JpZ2luSWRlbnRpZmllcnND
b3VudCA9IG9yaWdpbklkZW50aWZpZXJzLnNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9i
amVjdD4gPiBzZWN1cml0eU9yaWdpbnMob3JpZ2luSWRlbnRpZmllcnNDb3VudCk7CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG9yaWdpbklkZW50aWZpZXJzQ291bnQ7ICsraSkgeworICAg
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhvcmlnaW5JZGVudGlmaWVyc1tpXSk7CisgICAgICAgIGlmICghb3JpZ2luKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHNlY3VyaXR5T3JpZ2luc1tpXSA9IG9yaWdp
bjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVl
KEltbXV0YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdpbnMpLmdldCgpKTsKK30KKwordm9p
ZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4oV2ViU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNz
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViQ2FjaGVNYW5hZ2VyOjpEZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4tPnRv
U3RyaW5nKCkpLCAwKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxs
Q2FjaGUoKQoreworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJDYWNoZU1hbmFnZXI6OkRlbGV0ZUFsbENhY2hlKCksIDApOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFn
ZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNo
ZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYkNhY2hlTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQ
QyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVz
c2FnZUlEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKK2Ns
YXNzIFdlYlNlY3VyaXR5T3JpZ2luOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5
UmVmPiBBcnJheUNhbGxiYWNrOworCitjbGFzcyBXZWJDYWNoZU1hbmFnZXJQcm94eSA6IHB1Ymxp
YyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlQ2FjaGVNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ2FjaGVNYW5hZ2Vy
UHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViQ2FjaGVNYW5hZ2Vy
UHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJDb250ZXh0
KCkgeyBtX3dlYkNvbnRleHQgPSAwOyB9CisKKyAgICB2b2lkIGdldENhY2hlT3JpZ2lucyhQYXNz
UmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdl
YlNlY3VyaXR5T3JpZ2luKik7CisgICAgdm9pZCBkZWxldGVBbGxDYWNoZSgpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFdlYkNhY2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsK
KworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIGRpZEdldENhY2hlT3JpZ2lucyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworCisgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIERhdGFiYXNlTWFuYWdlclByb3h5X2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2Fn
ZXMgLT4gV2ViQ2FjaGVNYW5hZ2VyUHJveHkgeworICAgIERpZEdldENhY2hlT3JpZ2lucyhWZWN0
b3I8V1RGOjpTdHJpbmc+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKQor
fQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24g
Nzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgi
CisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC05NSw2ICs5Niw3IEBAIFdl
YkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJBcHBs
aWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2VzcyhmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxl
ckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCisg
ICAgLCBtX2NhY2hlTWFuYWdlclByb3h5KFdlYkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhp
cykpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclByb3h5KFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAjaWYgUExBVEZPUk0oV0lOKQpAQCAt
MTE0LDYgKzExNiw5IEBAIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0KCkKIAogICAgIFdlYlByb2Nl
c3NNYW5hZ2VyOjpzaGFyZWQoKS5jb250ZXh0V2FzRGVzdHJveWVkKHRoaXMpOwogCisgICAgbV9j
YWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fY2FjaGVNYW5hZ2VyUHJveHkt
PmNsZWFyQ29udGV4dCgpOworCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+aW52YWxp
ZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOwog
CkBAIC00ODMsNiArNDg4LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgbV9j
YWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNl
TWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHktPmRpZFJl
Y2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkUHJveHk7CitjbGFzcyBXZWJDYWNoZU1hbmFn
ZXJQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CkBAIC0xMjcsNiArMTI4LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+
IHBkZkFuZFBvc3RTY3JpcHRNSU1FVHlwZXMoKTsKIAorICAgIFdlYkNhY2hlTWFuYWdlclByb3h5
KiBjYWNoZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNYW5hZ2VyUHJveHku
Z2V0KCk7IH0KICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSogZGF0YWJhc2VNYW5hZ2VyUHJv
eHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkgY29u
c3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5nZXQoKTsgfQogCkBAIC0yMDIs
NiArMjA0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQ7CiAg
ICAgZG91YmxlIG1fbWVtb3J5U2FtcGxlckludGVydmFsOwogCisgICAgUmVmUHRyPFdlYkNhY2hl
TWFuYWdlclByb3h5PiBtX2NhY2hlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk+IG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lv
biA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dD4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQorICAgICAgICB8fCBtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyUHJveHk+KCkKICAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc4NTAxKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBj
bGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOworY2xhc3MgV2ViQ2FjaGVNYW5hZ2VyUHJveHk7
CiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViQ3JlZGVudGlhbDsKIGNsYXNzIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5OwpAQCAtNjgsNiArNjksNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tB
dXRoZW50aWNhdGlvbkNoYWxsCiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXJSZWYsIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcikKIFdLX0FE
RF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0pCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RSZWYsIFdlYkJhY2tG
b3J3YXJkTGlzdCkKK1dLX0FERF9BUElfTUFQUElORyhXS0NhY2hlTWFuYWdlclJlZiwgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJDb250
ZXh0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2ViQ3JlZGVudGlhbCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0RhdGFiYXNlTWFuYWdlclJlZiwgV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1h
bmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ2FjaGVNYW5h
Z2VyLmgiCisKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorCisjaWZkZWYgX19CTE9DS1NfXworI2luY2x1ZGUgPEJsb2NrLmg+CisjZW5k
aWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tDYWNoZU1hbmFnZXJH
ZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJDYWNoZU1hbmFnZXJQcm94eTo6QVBJ
VHlwZSk7Cit9CisKK3ZvaWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnMoV0tDYWNoZU1h
bmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChjYWNoZU1hbmFn
ZXJSZWYpLT5nZXRDYWNoZU9yaWdpbnMoQXJyYXlDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNh
bGxiYWNrKSk7Cit9CisKKyNpZmRlZiBfX0JMT0NLU19fCitzdGF0aWMgdm9pZCBjYWxsR2V0Q2Fj
aGVPcmlnaW5zQmxvY2tCbG9ja0FuZERpc3Bvc2UoV0tBcnJheVJlZiByZXN1bHRWYWx1ZSwgV0tF
cnJvclJlZiBlcnJvclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc0Jsb2NrIGJsb2NrID0gKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5z
QmxvY2spY29udGV4dDsKKyAgICBibG9jayhyZXN1bHRWYWx1ZSwgZXJyb3JSZWYpOworICAgIEJs
b2NrX3JlbGVhc2UoYmxvY2spOworfQorCit2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zX2IoV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmLCBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc0Jsb2NrIGJsb2NrKQoreworICAgIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVP
cmlnaW5zKGNhY2hlTWFuYWdlclJlZiwgQmxvY2tfY29weShibG9jayksIGNhbGxHZXRDYWNoZU9y
aWdpbnNCbG9ja0Jsb2NrQW5kRGlzcG9zZSk7Cit9CisjZW5kaWYKKwordm9pZCBXS0NhY2hlTWFu
YWdlckRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJl
ZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKGNhY2hlTWFu
YWdlclJlZiktPmRlbGV0ZUNhY2hlRm9yT3JpZ2luKHRvSW1wbChvcmlnaW5SZWYpKTsKK30KKwor
dm9pZCBXS0NhY2hlTWFuYWdlckRlbGV0ZUFsbENhY2hlKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hl
TWFuYWdlclJlZikKK3sKKyAgICB0b0ltcGwoY2FjaGVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ2Fj
aGUoKTsgICAgCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDYWNo
ZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXS0NhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdLQ2FjaGVNYW5h
Z2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ2FjaGVNYW5h
Z2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9pZCAoKldLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVP
cmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9S
VCB2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zKFdLQ2FjaGVNYW5hZ2VyUmVmIGNv
bnRleHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zRnVu
Y3Rpb24gZnVuY3Rpb24pOworI2lmZGVmIF9fQkxPQ0tTX18KK3R5cGVkZWYgdm9pZCAoXldLQ2Fj
aGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zQmxvY2spKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYpOwor
V0tfRVhQT1JUIHZvaWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNfYihXS0NhY2hlTWFu
YWdlclJlZiBkYXRhYmFzZU1hbmFnZXIsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zQmxv
Y2sgYmxvY2spOworI2VuZGlmCisKK1dLX0VYUE9SVCB2b2lkIFdLQ2FjaGVNYW5hZ2VyRGVsZXRl
Q2FjaGVGb3JPcmlnaW4oV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5nZXIsIFdLU2VjdXJpdHlP
cmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ2FjaGVNYW5hZ2VyRGVsZXRlQWxs
Q2FjaGUoV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyKTsKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLQ2FjaGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiA3ODUw
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDExIEBAIHZvaWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNh
dGlvbkNhY2hlKFdLQ28KICAgICB0b0ltcGwoY29udGV4dFJlZiktPmNsZWFyQXBwbGljYXRpb25D
YWNoZSgpOwogfQogCitXS0NhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDYWNoZU1hbmFnZXIo
V0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250
ZXh0UmVmKS0+Y2FjaGVNYW5hZ2VyUHJveHkoKSk7Cit9CisKIFdLRGF0YWJhc2VNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsK
ICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5kYXRhYmFzZU1hbmFnZXJQcm94
eSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJ
KHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0Q2xlYXJBcHBsaWNhdGlvbgogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RhcnRN
ZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0RvdWJsZVJlZiBpbnRlcnZhbCk7
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdG9wTWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiAKK1dLX0VYUE9SVCBXS0NhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDYWNo
ZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLRGF0YWJhc2VNYW5h
Z2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2VvbG9jYXRp
b25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzg1MDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTI0MSw2ICsyNDEsMTYgQEAKIAkJMUNBOEI5NTQxMjdDODkxNTAwNTc2
QzJCIC8qIFdlYkluc3BlY3Rvck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDOEUyREFEMTI3OEM1QjIwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JN
YWMubW0gKi87IH07CiAJCTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0LmggKi87IH07CiAJCTI5Q0Q1NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdC5tbSAqLzsgfTsKKwkJMzM1QzQ2OTQxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MzVDNDY5MTEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJ
MzM1QzQ2OTUxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1QzQ2OTIxMzBCNTdGQzAwMjQ0
QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5oICovOyB9OworCQkzM0JBMjkzNjEzMEI0REYwMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCQTI5MzUxMzBCNERGMDAwMkJCOUVDIC8qIFdl
YkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzNCQTI5M0ExMzBCNEUwMjAw
MkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JBMjkzNzEzMEI0RTAyMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzNCQTI5
M0IxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JBMjkzODEzMEI0RTAyMDAy
QkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJMzNCQTI5M0MxMzBC
NEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkEyOTM5MTMw
QjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTMzRTVFRjAyMTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U1RUYwMDEz
MEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3BwICovOyB9OworCQkzM0U1RUYwMzEz
MEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTVFRjAxMTMwQjRBRDkwMEFDODg0QiAvKiBXS0Nh
Y2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKKwkJMzNFNUVGMDYxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTVFRjA0
MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTMz
RTVFRjA3MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNFNUVGMDUxMzBCNEIyQjAw
QUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmggKi87IH07CiAJCTM3RjYyM0I4MTJBNTdC
NjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJ
NTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIx
Njc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTBG
QkI5QTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5ODEyODhDOTVF
MDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgKi87IH07CkBAIC0xMDE0LDYg
KzEwMjQsMTggQEAKIAkJMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1
NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVF
MDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzNUM0
NjkxMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lbW9y
eUNhY2hlL1dlYkNhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMzNUM0NjkyMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyLmg7IHBhdGggPSBNZW1vcnlD
YWNoZS9XZWJDYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzM1
QzQ2OTMxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBN
ZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMzQkEyOTE4MTMwQjRDNTEwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNCQTI5MzUx
MzBCNERGMDAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
OyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0Rl
YnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzM0JBMjkzNzEzMEI0RTAyMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSAvVXNlcnMvYnJpYW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzM0JBMjkzODEzMEI0RTAyMDAy
QkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IC9Vc2Vycy9icmlh
bl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CisJCTMzQkEyOTM5MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSAvVXNlcnMv
YnJpYW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTMzRTVFRjAwMTMwQjRBRDkwMEFDODg0QiAvKiBX
S0NhY2hlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S0NhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzRTVFRjAx
MTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0NhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzM0U1RUYwNDEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0U1RUYwNTEzMEI0QjJCMDBB
Qzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDEzLDYgKzIwMzUsMTYgQEAK
IAkJCXRhYldpZHRoID0gODsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJMzM1QzQ2OTAxMzBC
NTdDMjAwMjQ0QkQwIC8qIE1lbW9yeUNhY2hlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQkzMzVDNDY5MTEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVN
YW5hZ2VyLmNwcCAqLywKKwkJCQkzMzVDNDY5MjEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVN
YW5hZ2VyLmggKi8sCisJCQkJMzM1QzQ2OTMxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gTWVtb3J5Q2FjaGU7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjA1Niw2ICsyMDg4LDcgQEAKIAkJCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEg
LyogR2VvbG9jYXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1IC8qIEluamVj
dGVkQnVuZGxlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBtYWMgKi8sCisJ
CQkJMzM1QzQ2OTAxMzBCNTdDMjAwMjQ0QkQwIC8qIE1lbW9yeUNhY2hlICovLAogCQkJCTFBNkZC
N0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIw
MDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAqLywKIAkJCQlCQzAzMkQ1RTEwRjQzNzJCMDA1OEMx
NUEgLyogV2ViUGFnZSAqLywKQEAgLTIxODYsNiArMjIxOSw5IEBACiAJCQkJMUEwRjI5RTIxMjBC
NDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuaCAqLywKIAkJCQlCQzcyQkExQjEx
RTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmNwcCAqLywKIAkJCQlCQzcyQkEx
QzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmggKi8sCisJCQkJMzNFNUVG
MDQxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQkz
M0U1RUYwNTEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLywKKwkJ
CQkzM0JBMjkxODEzMEI0QzUxMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3Bw
ICovLAogCQkJCUJDQjlFMjQxMTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmggKi8sCiAJ
CQkJQkNFRTdEMDkxMjg0NkFFRDAwOTgyN0RBIC8qIFdlYkNvbnRleHQubWVzc2FnZXMuaW4gKi8s
CkBAIC0yMjgxLDYgKzIzMTcsOCBAQAogCQkJCUJDNjQ2QzE3MTFERDM5OUYwMDY0NTVCMCAvKiBX
S0JhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCUJDNjQ2QzE4MTFERDM5OUYwMDY0NTVCMCAvKiBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAogCQkJCUJDNjQ2QzE5MTFERDM5OUYwMDY0NTVC
MCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLywKKwkJCQkzM0U1RUYwMDEzMEI0QUQ5MDBB
Qzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTMzRTVFRjAxMTMwQjRBRDkwMEFD
ODg0QiAvKiBXS0NhY2hlTWFuYWdlci5oICovLAogCQkJCUJDQjlFMjRBMTEyMEUxNUMwMEExMzdF
MCAvKiBXS0NvbnRleHQuY3BwICovLAogCQkJCUJDQjlFMjQ5MTEyMEUxNUMwMEExMzdFMCAvKiBX
S0NvbnRleHQuaCAqLywKIAkJCQlCQ0M5MzhFMDExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0
UHJpdmF0ZS5oICovLApAQCAtMjc2NCw2ICsyODAyLDEwIEBACiAJCQkJMUEwNDNCNUMxMjRENUU5
RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZB
NkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICov
LAorCQkJCTMzQkEyOTM3MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCTMzQkEyOTM4MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNo
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTMzQkEyOTM5MTMwQjRFMDIwMDJCQjlFQyAvKiBX
ZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMzNCQTI5MzUx
MzBCNERGMDAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJ
CQlCQ0VFN0QwQjEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJQkNFRTdEMEMxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdl
cy5oICovLAogCQkJCUY2MkE3NkIyMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzE3NSw2ICszMjE3LDExIEBACiAJCQkJQkNB
NTZBMUMxMkY5MDI4RTAwQzU2NkM3IC8qIFdlYkdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBNTZBNjUxMkY5QzhGOTAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NkE2OTEyRjlDOUFEMDBDNTY2QzcgLyogV0tHcmFwaGlj
c0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzNFNUVGMDMxMzBCNEFEOTAwQUM4ODRC
IC8qIFdLQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzM0U1RUYwNzEzMEI0QjJC
MDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTMz
QkEyOTM2MTMwQjRERjAwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkzM0JBMjkzQjEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzNUM0Njk1MTMwQjU3RkMwMDI0
NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzY1Miw2ICszNjk5
LDExIEBACiAJCQkJQkNBNTZBNjYxMkY5QzhGOTAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTU2QTZBMTJGOUM5QUQwMEM1NjZDNyAvKiBXS0dy
YXBoaWNzQ29udGV4dENHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1OUM1NTFFMTMwMDA2NDEw
MDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzNFNUVGMDIxMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzRTVFRjA2MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJD
YWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzM0JBMjkzQTEzMEI0RTAy
MDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMzQkEyOTNDMTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMzVDNDY5NDEzMEI1N0ZD
MDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3ODUwMSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJEYXRhYmFzZU1hbmFnZXIuaCIKQEAgLTUxMCw2ICs1MTEsMTEgQEAgdm9pZCBXZWJQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDYWNoZU1hbmFnZXI+KCkp
IHsKKyAgICAgICAgV2ViQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNl
TWFuYWdlcj4oKSkgewogICAgICAgICBXZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJl
Y2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtNjIzLDYgKzYyOSwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3Vy
Y2VDYWNoZXMoKQogICAgIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsK
ICAgICBzZXRDYWNoZU1vZGVsKGNhY2hlTW9kZWwpOwogCisgICAgLy8gSWYgdGhlIG1lbW9yeSBj
YWNoZSBpcyBjdXJyZW50bHkgZW5hYmxlZCwgdG9nZ2xlIGl0IG9uIGFuZCBvZmYgdG8gZXZpY3Qg
aXRzIHJlc291cmNlcy4KKyAgICBpZiAoIW1lbW9yeUNhY2hlKCktPmRpc2FibGVkKCkpIHsKKyAg
ICAgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQodHJ1ZSk7CisgICAgICAgIG1lbW9yeUNh
Y2hlKCktPnNldERpc2FibGVkKGZhbHNlKTsKKyAgICB9CisKICAgICAvLyBFbXB0eSB0aGUgY3Jv
c3Mtb3JpZ2luIHByZWZsaWdodCBjYWNoZS4KICAgICBDcm9zc09yaWdpblByZWZsaWdodFJlc3Vs
dENhY2hlOjpzaGFyZWQoKS5lbXB0eSgpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCw2ICsxMTQsOCBAQCBwdWJs
aWM6CiAgICAgLy8gR2VvbG9jYXRpb24KICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXImIGdlb2xv
Y2F0aW9uTWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyOyB9CiAKKyAgICB2
b2lkIGNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKKwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzKCk7
CiAKQEAgLTEzOSw3ICsxNDEsNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNhbGN1bGF0
ZUNhY2hlU2l6ZXMoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsLCB1aW50NjRfdCBtZW1vcnlTaXplLCB1
aW50NjRfdCBkaXNrRnJlZVNpemUsCiAgICAgICAgIHVuc2lnbmVkJiBjYWNoZVRvdGFsQ2FwYWNp
dHksIHVuc2lnbmVkJiBjYWNoZU1pbkRlYWRDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWF4RGVh
ZENhcGFjaXR5LCBkb3VibGUmIGRlYWREZWNvZGVkRGF0YURlbGV0aW9uSW50ZXJ2YWwsCiAgICAg
ICAgIHVuc2lnbmVkJiBwYWdlQ2FjaGVDYXBhY2l0eSwgdW5zaWduZWQgbG9uZyYgdXJsQ2FjaGVN
ZW1vcnlDYXBhY2l0eSwgdW5zaWduZWQgbG9uZyYgdXJsQ2FjaGVEaXNrQ2FwYWNpdHkpOwotICAg
IHZvaWQgY2xlYXJSZXNvdXJjZUNhY2hlcygpOwogICAgIHZvaWQgcGxhdGZvcm1DbGVhclJlc291
cmNlQ2FjaGVzKCk7CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGUoKTsKIApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2Vi
Q2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJD
YWNoZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJX
ZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5Q2FjaGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworV2ViQ2FjaGVNYW5hZ2VyJiBXZWJDYWNoZU1hbmFnZXI6OnNoYXJlZCgpCit7Cisg
ICAgc3RhdGljIFdlYkNhY2hlTWFuYWdlciYgc2hhcmVkID0gKm5ldyBXZWJDYWNoZU1hbmFnZXI7
CisgICAgcmV0dXJuIHNoYXJlZDsKK30KKworV2ViQ2FjaGVNYW5hZ2VyOjpXZWJDYWNoZU1hbmFn
ZXIoKQoreworfQorCitXZWJDYWNoZU1hbmFnZXI6On5XZWJDYWNoZU1hbmFnZXIoKQoreworfQor
Cit2b2lkIFdlYkNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVj
dGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkNhY2hlTWFu
YWdlck1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCisKK3Zv
aWQgV2ViQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkg
Y29uc3QKK3sKKyAgICBIYXNoU2V0PFN0cmluZz4gb3JpZ2luczsKKyAgICBtZW1vcnlDYWNoZSgp
LT5vcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOworCisgICAgc2l6ZV90IG51bU9yaWdpbnMgPSBv
cmlnaW5zLnNpemUoKTsKKworICAgIFZlY3RvcjxTdHJpbmc+IGlkZW50aWZpZXJzKG51bU9yaWdp
bnMpOworICAgIEhhc2hTZXQ8U3RyaW5nPjo6aXRlcmF0b3IgZW5kID0gb3JpZ2lucy5lbmQoKTsK
KworICAgIHVuc2lnbmVkIGkgPSAwOworICAgIGZvciAoSGFzaFNldDxTdHJpbmc+OjppdGVyYXRv
ciBpdCA9IG9yaWdpbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpZGVudGlm
aWVyc1tpKytdID0gKml0OworCisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZU1hbmFnZXJQcm94eTo6RGlkR2V0Q2FjaGVPcmlnaW5z
KGlkZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2Vy
OjpkZWxldGVDYWNoZUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykgY29uc3QK
K3sKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKG9yaWdpblN0cmluZyk7CisgICAgaWYgKCFvcmlnaW4pCisgICAgICAg
IHJldHVybjsKKworICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW4o
b3JpZ2luKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbENhY2hlKCkgY29u
c3QKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jbGVhclJlc291cmNlQ2FjaGVzKCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFn
ZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViQ2FjaGVNYW5hZ2VyX2gKKyNkZWZpbmUgV2ViQ2FjaGVNYW5hZ2VyX2gKKworI2luY2x1ZGUg
IkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVu
dERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVzc2FnZUlEOworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ2FjaGVNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShXZWJDYWNoZU1hbmFnZXIpOworcHVibGljOgorICAgIHN0YXRpYyBXZWJDYWNo
ZU1hbmFnZXImIHNoYXJlZCgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKworcHJpdmF0ZToKKyAgICBXZWJDYWNoZU1hbmFnZXIoKTsKKyAgICB2aXJ0dWFsIH5X
ZWJDYWNoZU1hbmFnZXIoKTsKKworICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJD
YWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQ2Fj
aGVNYW5hZ2VyTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworICAgIHZvaWQgZ2V0Q2FjaGVPcmlnaW5z
KHVpbnQ2NF90IGNhbGxiYWNrSUQpIGNvbnN0OworICAgIHZvaWQgZGVsZXRlQ2FjaGVGb3JPcmln
aW4oY29uc3QgU3RyaW5nJiBvcmlnaW4pIGNvbnN0OworICAgIHZvaWQgZGVsZXRlQWxsQ2FjaGUo
KSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQ2Fj
aGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUv
V2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNo
ZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViQ2FjaGVN
YW5hZ2VyIHsKKyAgICB2b2lkIEdldENhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQor
ICAgIHZvaWQgRGVsZXRlQ2FjaGVGb3JPcmlnaW4oV1RGOjpTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikKKyAgICB2b2lkIERlbGV0ZUFsbENhY2hlKCkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
dmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQyLDYgKzEzNDIsMjIgQEAKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCTwvRmlsdGVyPgorICAgICAgICAgICAgPEZpbHRlcgorICAgICAgICAgICAg
ICAgIE5hbWU9Ik1lbW9yeUNhY2hlIgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAg
ICA8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTWVtb3J5Q2FjaGVcV2Vi
Q2FjaGVNYW5hZ2VyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTWVtb3J5Q2FjaGVcV2ViQ2FjaGVNYW5hZ2VyLmgi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxX
ZWJQcm9jZXNzXE1lbW9yeUNhY2hlXFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKyAgICAgICAgICAgIDwvRmlsdGVyPgogCQkJPEZpbHRlcgogCQkJCU5h
bWU9IldlYkNvcmVTdXBwb3J0IgogCQkJCT4KQEAgLTIyNTgsNiArMjI3NCwxOCBAQAogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkJhY2tGb3J3YXJkTGlzdC5oIgogCQkJCT4KIAkJ
CTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3NcV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXFdlYkNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4K
IAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29udGV4dC5jcHAi
CiAJCQkJPgpAQCAtMjU2MCw2ICsyNTg4LDE0IEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKIAkJCQkJCT4KIAkJCQkJPC9G
aWxlPgorICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxV
SVByb2Nlc3NcQVBJXENcV0tDYWNoZU1hbmFnZXIuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+
CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0Nh
Y2hlTWFuYWdlci5oIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCiAJCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NvbnRleHQuY3BwIgogCQkJCQkJPgpA
QCAtMzI5NCw2ICszMzMwLDIyIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXERyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIgogCQkJCT4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwkocmV2aXNpb24gNzg1MDEpCisr
KyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCSh3b3JraW5nIGNvcHkp
CkBAIC02LDcgKzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQ
Q1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3Bw
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
d2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0
aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25s
b2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNm
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRM
aWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVy
cyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndh
cmRpbmdIZWFkZXJzJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVv
dDskKFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElc
YyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVn
aW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9j
ZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVu
dGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1
cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBw
b3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
TWVtb3J5Q2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVk
ZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7
JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRD
b3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVc
Rm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1
ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM9Il9VU1JETEw7V0VCS0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxE
SU5HX1dFQktJVCIKIAkJVXNlUHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVh
ZGVyVGhyb3VnaD0iV2ViS2l0MlByZWZpeC5oIgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJHZW5lcmF0ZWQubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0MkdlbmVyYXRlZC5tYWtlCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAg
YWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2Vi
S2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRM
aXN0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNv
cHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIgIiVD
b25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAi
Li5cVUlQcm9jZXNzXEFQSVxDXFdLQ2FjaGVNYW5hZ2VyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxk
RGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElc
Q1xXS0NvbnRleHQuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIK
ICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dFByaXZhdGUuaCIg
IiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAv
ZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ3JlZGVudGlhbC5oIiAiJUNvbmZpZ3VyYXRpb25CdWls
ZERpciVcaW5jbHVkZVxXZWJLaXQyIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82585</attachid>
            <date>2011-02-15 20:54:37 -0800</date>
            <delta_ts>2011-02-16 16:32:34 -0800</delta_ts>
            <desc>[PATCH] Fix + Qt (Take 4)</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>69196</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6b3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw4IEBAIF9fWk43V2ViQ29yZTEx
SGlzdG9yeUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXREaXNhYmxlZEVi
CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9fWk43V2ViQ29y
ZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMTZvcmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82U3RyaW5nRU5TMV8xMFN0
cmluZ0hhc2hFTlMxXzEwSGFzaFRyYWl0c0lTM19FRUVFCitfX1pON1dlYkNvcmUxMU1lbW9yeUNh
Y2hlMjVyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luRU4zV1RGNlJlZlB0cklOU18xNFNlY3VyaXR5
T3JpZ2luRUVFCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxSZWN0VG9WaXNpYmxl
RVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUx
MWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTFtZW1vcnlD
YWNoZUV2CkBAIC0xMDU4LDYgKzEwNjAsNyBAQCBfX1pOSzdXZWJDb3JlMTREb2N1bWVudExvYWRl
cjN1cmxFdgogX19aTks3V2ViQ29yZTE0UmVuZGVyTGlzdEl0ZW0xMG1hcmtlclRleHRFdgogX19a
Tks3V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUxMGNvbm5lY3Rpb25FdgogX19aTks3V2ViQ29yZTE0
UmVzb3VyY2VMb2FkZXIxMWZyYW1lTG9hZGVyRXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luOHRvU3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5
RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVu
dGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAJKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDc0LDYgKzQ3NCwzNSBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXNv
dXJjZUFjY2Vzc2VkKENhY2hlCiAgICAgaW5zZXJ0SW5MUlVMaXN0KHJlc291cmNlKTsKIH0KIAor
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbikKK3sKKyAgICBWZWN0b3I8Q2FjaGVkUmVzb3VyY2UqPiByZXNvdXJj
ZXNXaXRoT3JpZ2luOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGUgPSBtX3Jl
c291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBpdCA9
IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAgICAgQ2FjaGVkUmVz
b3VyY2UqIHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHJl
c291cmNlLT51cmwoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4pCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVhbChvcmlnaW4uZ2V0
KCkpKQorICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3VyY2UpOwor
ICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9yaWdpbi5z
aXplKCk7ICsraSkKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlc1dpdGhPcmlnaW5baV0pOworfQor
Cit2b2lkIE1lbW9yeUNhY2hlOjpvcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3RyaW5nPiYgb3Jp
Z2lucykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2Vz
LmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNv
dXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBTdHJpbmcgb3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnNlY29uZC0+dXJsKCkpLT50b1N0
cmluZygpOworICAgICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBvcmlnaW5zLmFkZChvcmlnaW4pOworICAgIH0KK30KKwogdm9pZCBNZW1v
cnlDYWNoZTo6cmVtb3ZlRnJvbUxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChDYWNoZWRSZXNvdXJj
ZSogcmVzb3VyY2UpCiB7CiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgYmVlbiBhY2Nlc3NlZCwgdGhl
biB3ZSdyZSBicmFuZCBuZXcgYW5kIG5vdCBpbiBhbnkgbGlzdC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCw3IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNv
dXJjZTsKIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwogY2xhc3MgS1VSTDsKK2NsYXNzIFNl
Y3VyaXR5T3JpZ2luOwogCiAvLyBUaGlzIGNhY2hlIGhvbGRzIHN1YnJlc291cmNlcyB1c2VkIGJ5
IFdlYiBwYWdlczogaW1hZ2VzLCBzY3JpcHRzLCBzdHlsZXNoZWV0cywgZXRjLgogCkBAIC0xNjMs
NiArMTY0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNo
ZWRSZXNvdXJjZSopOwogCisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHZvaWQgb3JpZ2luc1dpdGhDYWNoZShIYXNoU2V0PFN0
cmluZz4mIG9yaWdpbnMpOworCiBwcml2YXRlOgogICAgIE1lbW9yeUNhY2hlKCk7CiAgICAgfk1l
bW9yeUNhY2hlKCk7IC8vIE5vdCBpbXBsZW1lbnRlZCB0byBtYWtlIHN1cmUgbm9ib2R5IGFjY2lk
ZW50YWxseSBjYWxscyBkZWxldGUgLS0gV2ViQ29yZSBkb2VzIG5vdCBkZWxldGUgc2luZ2xldG9u
cy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODcgQEAKKzIwMTEtMDItMTUgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdl
IHRoZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgSW1wbGVtZW50IGEgV2ViS2l0MiBB
UEkgdG8gbWFuYWdlIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZS4gVGhpcyBBUEkgZXhwb3NlcyB0
aHJlZSBmdW5jdGlvbnM6CisgICAgICAgIAorICAgICAgICAxKSBBIG1ldGhvZCB0byBnZXQgYSBs
aXN0IG9mIGFsbCBzZWN1cml0eSBvcmlnaW5zIHRoYXQgaGF2ZSBlbnRyaWVzIGluIHRoZSBXZWJD
b3JlIG1lbW9yeSBjYWNoZS4KKyAgICAgICAgMikgQSBtZXRob2QgdG8gcmVtb3ZlIGFsbCBlbnRy
aWVzIGluIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZSBmcm9tIGEgU2VjdXJpdHlPcmlnaW4uCisg
ICAgICAgIDMpIEEgbWV0aG9kIHRvIHJlbW92ZSBhbGwgZW50cmllcyBmcm9tIHRoZSBXZWJDb3Jl
IG1lbW9yeSBjYWNoZS4KKworICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmg6
IEFkZCB0d28gbmV3IE1lc3NhZ2VDbGFzc2VzLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jh
c2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6IEFkZCBhIENhY2hlTWFuYWdlciB0
eXBlLgorICAgICAgICAqIFNoYXJlZC9XZWJTZWN1cml0eU9yaWdpbi5oOiBUeXBlZGVmIFdLQ2Fj
aGVNYW5hZ2VyUmVmLgorICAgICAgICAoV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyk6IENyZWF0ZXMgYSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiB1c2luZyAKKyAg
ICAgICAgICAgIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nLgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcpOiBDYWxscyB0aHJvdWdoIHRvIFNlY3Vy
aXR5T3JpZ2luOjp0b1N0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKTogUmV0dXJucyB0aGUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkgdHlwZS4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmln
aW5zLgorICAgICAgICAoY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmREaXNwb3NlKToK
KyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IpOgorICAgICAgICAoV0tD
YWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2Fj
aGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luLgorICAgICAgICAoV0tDYWNoZU1h
bmFnZXJEZWxldGVBbGxDYWNoZSk6IENhbGxzIHRocm91Z2ggdG8gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHk6OmRlbGV0ZUFsbENhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFu
YWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
OgorICAgICAgICAoV0tDb250ZXh0R2V0Q2FjaGVNYW5hZ2VyKTogQ2FsbHMgdG8gZ2V0IHRoZSBX
ZWJDYWNoZU1hbmFnZXJQcm94eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENhbGxz
IHRocm91Z2ggdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOiBJbml0aWFsaXplIHRoZSBtX3dlYkNv
bnRleHQgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp+
V2ViQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQ
cm94eTo6aW52YWxpZGF0ZSk6IEludmFsaWRhdGUgdGhlIGNhbGxiYWNrIG1hcC4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyk6IENhbGwgdGhy
b3VnaCB0byB0aGUgd2ViIHByb2Nlc3MgdG8gZ2V0IHRoZSBjYWNoZQorICAgICAgICAgICAgb3Jp
Z2lucy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldENhY2hl
T3JpZ2lucyk6IENhbGwgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1h
bmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4pOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdl
YiBwcm9jZXNzIHRvIGRlbGV0ZSBjYWNoZQorICAgICAgICAgICAgZm9yIHRoZSBnaXZlbiBvcmln
aW4uIAorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxsQ2Fj
aGUpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwgb2YgdGhl
IGNhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNhY2hlTWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0OjpXZWJDb250ZXh0KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCk6ICBJbnZhbGlkYXRlcyBuZXcg
bWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZl
TWVzc2FnZSk6IFBhc3NlcyBjYWNoZSBtZXNzYWdlcyB0byB0aGUgY2FjaGUgbWFuYWdlci4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250
ZXh0OjpjYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1l
c3NhZ2UpOiBBZGQgYSBuZXcgbWVzc2FnZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
TWVtb3J5Q2FjaGUvV2ViQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpXZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6
On5XZWJDYWNoZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKTogQ2FsbHMgdGhyb3VnaCB0byBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5h
Z2VyTWVzc2FnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9y
aWdpbnMpOiBHZXRzIGEgbGlzdCBvZiBvcmlnaW5zIHdpdGggY2FjaGUgZW50cmllcyBmcm9tIHRo
ZSBtZW1vcnkKKyAgICAgICAgICAgIGNhY2hlLCBhbmQgcHV0cyB0aGVtIGludG8gYSB2ZWN0b3Ig
dG8gc2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2FjaGVNYW5h
Z2VyOjpkZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2ggdG8gbWVtb3J5Q2FjaGUg
dG8gZGVsZXRlIGFsbCBjYWNoZSBlbnRyaWVzCisgICAgICAgICAgICBmcm9tIGEgZ2l2ZW4gb3Jp
Z2luLgorICAgICAgICAoV2ViS2l0OjpXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbENhY2hlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNz
YWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMpOiBEaXNhYmxlIGFuZCBy
ZS1lbmFibGUgdGhlIG1lbW9yeSBjYWNoZSwgdG8gbWFrZSBzdXJlIGl0IGV2aWN0cworICAgICAg
ICAgICAgYWxsIG9mIGl0cyByZXNvdXJjZXMuIFRoaXMgd2FzIGRvbmUgb24gV2ViS2l0MSwgYnV0
IG5vdCBXZWJLaXQyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5l
dyBmaWxlcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAq
IHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6IEFkZGVkIG5ldyBpbmNsdWRlIGRpcmVjdG9yeS4K
KyAgICAgICAgKiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOiBBZGRlZCBuZXcgaGVhZGVyLgor
CiAyMDExLTAyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQCBWUEFUSCA9IFwKICAgICAk
KFdlYktpdDIpL1NoYXJlZC9QbHVnaW5zIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXV0
aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCisg
ICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL01lbW9yeUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dl
YlByb2Nlc3MvUGx1Z2lucyBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC00NSw2ICs0Niw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3NQcm94eSBcCiAgICAg
UGx1Z2luUHJveHkgXAogICAgIFdlYkNvbnRleHQgXAorICAgIFdlYkNhY2hlTWFuYWdlciBcCisg
ICAgV2ViQ2FjaGVNYW5hZ2VyUHJveHkgXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlciBcCiAgICAg
V2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkgXAogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBcCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcs
NyBAQCBWUEFUSCA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBXZWJQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uIFwKICAgICBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uIFwKKyAgICBXZWJQcm9jZXNz
L01lbW9yeUNhY2hlIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQgXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZSBcCkBAIC05Miw2ICs5Myw4
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFBsdWdpblByb2Nlc3MubWVzc2FnZXMuaW4g
XAogICAgIFBsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgUGx1Z2luUHJveHku
bWVzc2FnZXMuaW4gXAorICAgIFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCisgICAgV2Vi
Q2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYkNvbnRleHQubWVzc2FnZXMu
aW4gXAogICAgIFdlYkRhdGFiYXNlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViRGF0YWJh
c2VNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0
Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9u
IDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTE0Niw2ICsxNDYsNyBAQCBXRUJLSVQyX0lOQ0xVREVQQVRIID0gXAogICAgIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUgXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NIFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jIFwKKyAgICBXZWJQcm9jZXNzL01lbW9y
eUNhY2hlIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCkBAIC0xNzYsNiAr
MTc3LDggQEAgV0VCS0lUMl9HRU5FUkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJ
VDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAog
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlcy5o
IFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggXAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViQ2FjaGVN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNf
RElSL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJD
RVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlck1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKQEAg
LTE5Niw2ICsxOTksOCBAQCBXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTID0gXAogICAgICQkV0VC
S0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvUGx1Z2luUHJvY2Vzc1By
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9QbHVnaW5Qcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorICAgICQkV0VCS0lUMl9HRU5F
UkFURURfU09VUkNFU19ESVIvV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCisg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJDYWNoZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
V2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAg
JCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtMjk4LDYgKzMwMyw3IEBAIEhFQURFUlMgKz0gXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tDYWNo
ZU1hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tD
cmVkZW50aWFsLmggXApAQCAtMzU0LDYgKzM2MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJv
Y2Vzcy9UZXh0Q2hlY2tlci5oIFwKICAgICBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5
LmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAorICAgIFVJUHJvY2Vz
cy9XZWJDYWNoZU1hbmFnZXJQcm94eS5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggXAogICAgIFVJ
UHJvY2Vzcy9XZWJDb250ZXh0TWVudVByb3h5LmggXApAQCAtNDEyLDYgKzQxOSw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIFwKKyAgICBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dl
YkNhY2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1l
dGhvZC5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIFwK
ICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5oIFwKQEAgLTUyOCw2
ICs1MzYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NyZWRl
bnRpYWwuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tEYXRhYmFzZU1hbmFnZXIuY3BwIFwK
QEAgLTU3NCw2ICs1ODMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwK
ICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJDYWNoZU1h
bmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5jcHAgXApAQCAtNjQ3LDYgKzY1Nyw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVUlDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL3F0L0luamVjdGVkQnVuZGxlUXQuY3BwIFwKKyAgICBXZWJQcm9jZXNzL01lbW9yeUNhY2hl
L1dlYkNhY2hlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QTWV0aG9kLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmpl
Y3QuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAg
XApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCShy
ZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2Fn
ZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBNZXNzYWdlQ2xhc3Mg
ewogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhLAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdB
cmVhTGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlLAorICAgIE1lc3NhZ2VD
bGFzc1dlYkNhY2hlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIs
CiAgICAgTWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHksCiAgICAgTWVzc2Fn
ZUNsYXNzV2ViSW5zcGVjdG9yLApAQCAtNDksNiArNTAsNyBAQCBlbnVtIE1lc3NhZ2VDbGFzcyB7
CiAgICAgTWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJveHlMZWdhY3ksCisgICAg
TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29u
dGV4dCwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFz
c1dlYkRhdGFiYXNlTWFuYWdlclByb3h5LApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgICAgICAvLyBVSVBy
b2Nlc3MgdHlwZXMKICAgICAgICAgVHlwZUJhY2tGb3J3YXJkTGlzdCwKICAgICAgICAgVHlwZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0sCisgICAgICAgIFR5cGVDYWNoZU1hbmFnZXIsCiAgICAgICAgIFR5
cGVDb250ZXh0LAogICAgICAgICBUeXBlRGF0YWJhc2VNYW5hZ2VyLAogICAgICAgICBUeXBlRG93
bmxvYWQsCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAko
cmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViU2VjdXJpdHlPcmln
aW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTAgKzUyLDE5IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbi5yZWxl
YXNlKCkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJTZWN1cml0eU9yaWdp
bj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAg
IFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzdHJpbmcpOworICAgICAgICBpZiAo
IXNlY3VyaXR5T3JpZ2luKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4ucmVsZWFzZSgpKSk7
CisgICAgfQorCiAgICAgY29uc3QgU3RyaW5nIHByb3RvY29sKCkgY29uc3QgeyByZXR1cm4gbV9z
ZWN1cml0eU9yaWdpbi0+cHJvdG9jb2woKTsgfQogICAgIGNvbnN0IFN0cmluZyBob3N0KCkgY29u
c3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+aG9zdCgpOyB9CiAgICAgdW5zaWduZWQgc2hv
cnQgcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPnBvcnQoKTsgfQogCisg
ICAgY29uc3QgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdp
bi0+dG9TdHJpbmcoKTsgfQogICAgIGNvbnN0IFN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5kYXRhYmFzZUlkZW50aWZpZXIoKTsgfQog
CiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAkocmV2aXNp
b24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tB
dXRoZW50aWNhdAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0ZvcndhcmRM
aXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3RJdGVt
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0NhY2hlTWFuYWdlciogV0tDYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLQ3JlZGVudGlhbCogV0tDcmVkZW50aWFsUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tEYXRhYmFzZU1hbmFnZXIqIFdLRGF0YWJhc2VNYW5hZ2VyUmVmOwpJbmRleDogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNhY2hlTWFuYWdlclByb3h5
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIkltbXV0YWJsZUFycmF5LmgiCisjaW5jbHVkZSAiSW1tdXRhYmxlRGljdGlvbmFyeS5oIgor
I2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4
dC5oIgorI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJDYWNoZU1hbmFn
ZXJQcm94eT4gV2ViQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZShXZWJDb250ZXh0KiB3ZWJDb250
ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ2FjaGVNYW5hZ2VyUHJveHkod2Vi
Q29udGV4dCkpOworfQorCitXZWJDYWNoZU1hbmFnZXJQcm94eTo6V2ViQ2FjaGVNYW5hZ2VyUHJv
eHkoV2ViQ29udGV4dCogd2ViQ29udGV4dCkKKyAgICA6IG1fd2ViQ29udGV4dCh3ZWJDb250ZXh0
KQoreworfQorCitXZWJDYWNoZU1hbmFnZXJQcm94eTo6fldlYkNhY2hlTWFuYWdlclByb3h5KCkK
K3sKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAg
aW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fYXJyYXlDYWxsYmFja3MpOworfQorCit2b2lkIFdlYkNh
Y2hlTWFuYWdlclByb3h5OjpnZXRDYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxiYWNr
PiBwcnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sgPSBw
cnBDYWxsYmFjazsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpIHsK
KyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBt
X2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOworICAg
IG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJDYWNoZU1hbmFnZXI6
OkdldENhY2hlT3JpZ2lucyhjYWxsYmFja0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5h
Z2VyUHJveHk6OmRpZEdldENhY2hlT3JpZ2lucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3JpZ2lu
SWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRyPEFycmF5Q2Fs
bGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAg
IGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQu
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzaXplX3Qgb3JpZ2luSWRlbnRpZmllcnND
b3VudCA9IG9yaWdpbklkZW50aWZpZXJzLnNpemUoKTsKKyAgICBWZWN0b3I8UmVmUHRyPEFQSU9i
amVjdD4gPiBzZWN1cml0eU9yaWdpbnMob3JpZ2luSWRlbnRpZmllcnNDb3VudCk7CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG9yaWdpbklkZW50aWZpZXJzQ291bnQ7ICsraSkgeworICAg
ICAgICBSZWZQdHI8QVBJT2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhvcmlnaW5JZGVudGlmaWVyc1tpXSk7CisgICAgICAgIGlmICghb3JpZ2luKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHNlY3VyaXR5T3JpZ2luc1tpXSA9IG9yaWdp
bjsKKyAgICB9CisKKyAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVl
KEltbXV0YWJsZUFycmF5OjphZG9wdChzZWN1cml0eU9yaWdpbnMpLmdldCgpKTsKK30KKwordm9p
ZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4oV2ViU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNz
KCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViQ2FjaGVNYW5hZ2VyOjpEZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4tPnRv
U3RyaW5nKCkpLCAwKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQWxs
Q2FjaGUoKQoreworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAg
ICAgICAgcmV0dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJDYWNoZU1hbmFnZXI6OkRlbGV0ZUFsbENhY2hlKCksIDApOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFn
ZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNo
ZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNhY2hlTWFuYWdlclByb3h5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYkNhY2hlTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHlfaAorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCisjaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgQ29yZUlQ
QyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVz
c2FnZUlEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKK2Ns
YXNzIFdlYlNlY3VyaXR5T3JpZ2luOworCit0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS0FycmF5
UmVmPiBBcnJheUNhbGxiYWNrOworCitjbGFzcyBXZWJDYWNoZU1hbmFnZXJQcm94eSA6IHB1Ymxp
YyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBU
eXBlQ2FjaGVNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ2FjaGVNYW5hZ2Vy
UHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViQ2FjaGVNYW5hZ2Vy
UHJveHkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHZvaWQgY2xlYXJDb250ZXh0
KCkgeyBtX3dlYkNvbnRleHQgPSAwOyB9CisKKyAgICB2b2lkIGdldENhY2hlT3JpZ2lucyhQYXNz
UmVmUHRyPEFycmF5Q2FsbGJhY2s+KTsKKyAgICB2b2lkIGRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdl
YlNlY3VyaXR5T3JpZ2luKik7CisgICAgdm9pZCBkZWxldGVBbGxDYWNoZSgpOworCisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IFdlYkNhY2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqKTsK
KworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisg
ICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KKyAgICB2b2lkIGRpZEdldENhY2hlT3JpZ2lucyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgb3JpZ2luSWRlbnRpZmllcnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OworCisgICAgV2ViQ29udGV4dCogbV93ZWJDb250ZXh0OworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxBcnJheUNhbGxiYWNrPiA+IG1fYXJyYXlDYWxsYmFja3M7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIERhdGFiYXNlTWFuYWdlclByb3h5X2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ2FjaGVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjUgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2Fn
ZXMgLT4gV2ViQ2FjaGVNYW5hZ2VyUHJveHkgeworICAgIERpZEdldENhY2hlT3JpZ2lucyhWZWN0
b3I8V1RGOjpTdHJpbmc+IG9yaWdpbklkZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKQor
fQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24g
Nzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgi
CisjaW5jbHVkZSAiV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0
TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC05NSw2ICs5Niw3IEBAIFdl
YkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vzc01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJBcHBs
aWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2VzcyhmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxl
ckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCisg
ICAgLCBtX2NhY2hlTWFuYWdlclByb3h5KFdlYkNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUodGhp
cykpCiAgICAgLCBtX2RhdGFiYXNlTWFuYWdlclByb3h5KFdlYkRhdGFiYXNlTWFuYWdlclByb3h5
OjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5KFdlYkdlb2xv
Y2F0aW9uTWFuYWdlclByb3h5OjpjcmVhdGUodGhpcykpCiAjaWYgUExBVEZPUk0oV0lOKQpAQCAt
MTE0LDYgKzExNiw5IEBAIFdlYkNvbnRleHQ6On5XZWJDb250ZXh0KCkKIAogICAgIFdlYlByb2Nl
c3NNYW5hZ2VyOjpzaGFyZWQoKS5jb250ZXh0V2FzRGVzdHJveWVkKHRoaXMpOwogCisgICAgbV9j
YWNoZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fY2FjaGVNYW5hZ2VyUHJveHkt
PmNsZWFyQ29udGV4dCgpOworCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+aW52YWxp
ZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgpOwog
CkBAIC00ODMsNiArNDg4LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyUHJveHk+KCkpIHsKKyAgICAgICAgbV9j
YWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNl
TWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHktPmRpZFJl
Y2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2FkUHJveHk7CitjbGFzcyBXZWJDYWNoZU1hbmFn
ZXJQcm94eTsKIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CkBAIC0xMjcsNiArMTI4LDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+
IHBkZkFuZFBvc3RTY3JpcHRNSU1FVHlwZXMoKTsKIAorICAgIFdlYkNhY2hlTWFuYWdlclByb3h5
KiBjYWNoZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNYW5hZ2VyUHJveHku
Z2V0KCk7IH0KICAgICBXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSogZGF0YWJhc2VNYW5hZ2VyUHJv
eHkoKSBjb25zdCB7IHJldHVybiBtX2RhdGFiYXNlTWFuYWdlclByb3h5LmdldCgpOyB9CiAgICAg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkqIGdlb2xvY2F0aW9uTWFuYWdlclByb3h5KCkgY29u
c3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5nZXQoKTsgfQogCkBAIC0yMDIs
NiArMjA0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQ7CiAg
ICAgZG91YmxlIG1fbWVtb3J5U2FtcGxlckludGVydmFsOwogCisgICAgUmVmUHRyPFdlYkNhY2hl
TWFuYWdlclByb3h5PiBtX2NhY2hlTWFuYWdlclByb3h5OwogICAgIFJlZlB0cjxXZWJEYXRhYmFz
ZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eTsKICAgICBSZWZQdHI8V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk+IG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCShyZXZpc2lv
biA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmRpZFJlY2VpdmVNZXNzYWdlKAogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViQ29udGV4dD4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVz
c2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQorICAgICAgICB8fCBtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ2FjaGVNYW5hZ2VyUHJveHk+KCkKICAgICAgICAg
fHwgbWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclBy
b3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJH
ZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4oKSkgewogICAgICAgICBtX2NvbnRleHQtPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc4NTAxKQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBj
bGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOworY2xhc3MgV2ViQ2FjaGVNYW5hZ2VyUHJveHk7
CiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViQ3JlZGVudGlhbDsKIGNsYXNzIFdlYkRhdGFi
YXNlTWFuYWdlclByb3h5OwpAQCAtNjgsNiArNjksNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tB
dXRoZW50aWNhdGlvbkNoYWxsCiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXJSZWYsIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcikKIFdLX0FE
RF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0pCiBXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RSZWYsIFdlYkJhY2tG
b3J3YXJkTGlzdCkKK1dLX0FERF9BUElfTUFQUElORyhXS0NhY2hlTWFuYWdlclJlZiwgV2ViQ2Fj
aGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJDb250
ZXh0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2ViQ3JlZGVudGlhbCkK
IFdLX0FERF9BUElfTUFQUElORyhXS0RhdGFiYXNlTWFuYWdlclJlZiwgV2ViRGF0YWJhc2VNYW5h
Z2VyUHJveHkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1h
bmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQ2FjaGVNYW5h
Z2VyLmgiCisKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorCisjaWZkZWYgX19CTE9DS1NfXworI2luY2x1ZGUgPEJsb2NrLmg+CisjZW5k
aWYKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tDYWNoZU1hbmFnZXJH
ZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJDYWNoZU1hbmFnZXJQcm94eTo6QVBJ
VHlwZSk7Cit9CisKK3ZvaWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnMoV0tDYWNoZU1h
bmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChjYWNoZU1hbmFn
ZXJSZWYpLT5nZXRDYWNoZU9yaWdpbnMoQXJyYXlDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNh
bGxiYWNrKSk7Cit9CisKKyNpZmRlZiBfX0JMT0NLU19fCitzdGF0aWMgdm9pZCBjYWxsR2V0Q2Fj
aGVPcmlnaW5zQmxvY2tCbG9ja0FuZERpc3Bvc2UoV0tBcnJheVJlZiByZXN1bHRWYWx1ZSwgV0tF
cnJvclJlZiBlcnJvclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc0Jsb2NrIGJsb2NrID0gKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5z
QmxvY2spY29udGV4dDsKKyAgICBibG9jayhyZXN1bHRWYWx1ZSwgZXJyb3JSZWYpOworICAgIEJs
b2NrX3JlbGVhc2UoYmxvY2spOworfQorCit2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zX2IoV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyUmVmLCBXS0NhY2hlTWFuYWdlckdl
dENhY2hlT3JpZ2luc0Jsb2NrIGJsb2NrKQoreworICAgIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVP
cmlnaW5zKGNhY2hlTWFuYWdlclJlZiwgQmxvY2tfY29weShibG9jayksIGNhbGxHZXRDYWNoZU9y
aWdpbnNCbG9ja0Jsb2NrQW5kRGlzcG9zZSk7Cit9CisjZW5kaWYKKwordm9pZCBXS0NhY2hlTWFu
YWdlckRlbGV0ZUNhY2hlRm9yT3JpZ2luKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJl
ZiwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKGNhY2hlTWFu
YWdlclJlZiktPmRlbGV0ZUNhY2hlRm9yT3JpZ2luKHRvSW1wbChvcmlnaW5SZWYpKTsKK30KKwor
dm9pZCBXS0NhY2hlTWFuYWdlckRlbGV0ZUFsbENhY2hlKFdLQ2FjaGVNYW5hZ2VyUmVmIGNhY2hl
TWFuYWdlclJlZikKK3sKKyAgICB0b0ltcGwoY2FjaGVNYW5hZ2VyUmVmKS0+ZGVsZXRlQWxsQ2Fj
aGUoKTsgICAgCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDYWNo
ZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXS0NhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdLQ2FjaGVNYW5h
Z2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQ2FjaGVNYW5h
Z2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9pZCAoKldLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVP
cmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYsIHZvaWQqKTsKK1dLX0VYUE9S
VCB2b2lkIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zKFdLQ2FjaGVNYW5hZ2VyUmVmIGNv
bnRleHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zRnVu
Y3Rpb24gZnVuY3Rpb24pOworI2lmZGVmIF9fQkxPQ0tTX18KK3R5cGVkZWYgdm9pZCAoXldLQ2Fj
aGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zQmxvY2spKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYpOwor
V0tfRVhQT1JUIHZvaWQgV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNfYihXS0NhY2hlTWFu
YWdlclJlZiBkYXRhYmFzZU1hbmFnZXIsIFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zQmxv
Y2sgYmxvY2spOworI2VuZGlmCisKK1dLX0VYUE9SVCB2b2lkIFdLQ2FjaGVNYW5hZ2VyRGVsZXRl
Q2FjaGVGb3JPcmlnaW4oV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5nZXIsIFdLU2VjdXJpdHlP
cmlnaW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLQ2FjaGVNYW5hZ2VyRGVsZXRlQWxs
Q2FjaGUoV0tDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5hZ2VyKTsKKworI2lmZGVmIF9fY3BsdXNw
bHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIFdLQ2FjaGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShyZXZpc2lvbiA3ODUw
MSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDExIEBAIHZvaWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNh
dGlvbkNhY2hlKFdLQ28KICAgICB0b0ltcGwoY29udGV4dFJlZiktPmNsZWFyQXBwbGljYXRpb25D
YWNoZSgpOwogfQogCitXS0NhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDYWNoZU1hbmFnZXIo
V0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250
ZXh0UmVmKS0+Y2FjaGVNYW5hZ2VyUHJveHkoKSk7Cit9CisKIFdLRGF0YWJhc2VNYW5hZ2VyUmVm
IFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsK
ICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5kYXRhYmFzZU1hbmFnZXJQcm94
eSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJ
KHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDcgQEAgV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0Q2xlYXJBcHBsaWNhdGlvbgogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RhcnRN
ZW1vcnlTYW1wbGVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0RvdWJsZVJlZiBpbnRlcnZhbCk7
CiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTdG9wTWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYg
Y29udGV4dCk7CiAKK1dLX0VYUE9SVCBXS0NhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDYWNo
ZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLRGF0YWJhc2VNYW5h
Z2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7
CiBXS19FWFBPUlQgV0tHZW9sb2NhdGlvbk1hbmFnZXJSZWYgV0tDb250ZXh0R2V0R2VvbG9jYXRp
b25NYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzg1MDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTI0MSw2ICsyNDEsMTYgQEAKIAkJMUNBOEI5NTQxMjdDODkxNTAwNTc2
QzJCIC8qIFdlYkluc3BlY3Rvck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFDOEUyREFEMTI3OEM1QjIwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JN
YWMubW0gKi87IH07CiAJCTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2Jq
ZWN0LmggKi87IH07CiAJCTI5Q0Q1NUFCMTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdC5tbSAqLzsgfTsKKwkJMzM1QzQ2OTQxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MzVDNDY5MTEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJ
MzM1QzQ2OTUxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzM1QzQ2OTIxMzBCNTdGQzAwMjQ0
QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5oICovOyB9OworCQkzM0JBMjkzNjEzMEI0REYwMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNCQTI5MzUxMzBCNERGMDAwMkJCOUVDIC8qIFdl
YkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJMzNCQTI5M0ExMzBCNEUwMjAw
MkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JBMjkzNzEzMEI0RTAyMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMzNCQTI5
M0IxMzBCNEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0JBMjkzODEzMEI0RTAyMDAy
QkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJMzNCQTI5M0MxMzBC
NEUwMjAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzQkEyOTM5MTMw
QjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki87IH07CisJCTMzRTVFRjAyMTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzM0U1RUYwMDEz
MEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3BwICovOyB9OworCQkzM0U1RUYwMzEz
MEI0QUQ5MDBBQzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTVFRjAxMTMwQjRBRDkwMEFDODg0QiAvKiBXS0Nh
Y2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKKwkJMzNFNUVGMDYxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRTVFRjA0
MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTMz
RTVFRjA3MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNFNUVGMDUxMzBCNEIyQjAw
QUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmggKi87IH07CiAJCTM3RjYyM0I4MTJBNTdC
NjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJ
NTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwMjFFOUIxMkIx
Njc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovOyB9OwogCQk1MTBG
QkI5QTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGQkI5ODEyODhDOTVF
MDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgKi87IH07CkBAIC0xMDE0LDYg
KzEwMjQsMTggQEAKIAkJMjlDRDU1QTgxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlX
ZWJQYWdlT2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5Q0Q1
NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlXZWJQYWdl
T2JqZWN0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMkRCQ0Y1RTAzNzBBREVF
MDBDOTE3ODMgLyogV2ViS2l0MlByZWZpeC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJLaXQyUHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzNUM0
NjkxMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lbW9y
eUNhY2hlL1dlYkNhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMzNUM0NjkyMTMwQjU3RkMwMDI0NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyLmg7IHBhdGggPSBNZW1vcnlD
YWNoZS9XZWJDYWNoZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzM1
QzQ2OTMxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGggPSBN
ZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMzQkEyOTE4MTMwQjRDNTEwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJDYWNoZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzNCQTI5MzUx
MzBCNERGMDAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
OyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0Rl
YnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzM0JBMjkzNzEzMEI0RTAyMDAyQkI5
RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSAvVXNlcnMvYnJpYW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVi
dWcvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzM0JBMjkzODEzMEI0RTAyMDAy
QkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IC9Vc2Vycy9icmlh
bl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CisJCTMzQkEyOTM5MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSAvVXNlcnMv
YnJpYW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTMzRTVFRjAwMTMwQjRBRDkwMEFDODg0QiAvKiBX
S0NhY2hlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
S0NhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMzRTVFRjAx
MTMwQjRBRDkwMEFDODg0QiAvKiBXS0NhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0NhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzM0U1RUYwNDEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ2FjaGVNYW5hZ2VyUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzM0U1RUYwNTEzMEI0QjJCMDBB
Qzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51SXRlbURhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDEzLDYgKzIwMzUsMTYgQEAK
IAkJCXRhYldpZHRoID0gODsKIAkJCXVzZXNUYWJzID0gMDsKIAkJfTsKKwkJMzM1QzQ2OTAxMzBC
NTdDMjAwMjQ0QkQwIC8qIE1lbW9yeUNhY2hlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQkzMzVDNDY5MTEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVN
YW5hZ2VyLmNwcCAqLywKKwkJCQkzMzVDNDY5MjEzMEI1N0ZDMDAyNDRCRDAgLyogV2ViQ2FjaGVN
YW5hZ2VyLmggKi8sCisJCQkJMzM1QzQ2OTMxMzBCNTdGQzAwMjQ0QkQwIC8qIFdlYkNhY2hlTWFu
YWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQluYW1lID0gTWVtb3J5Q2FjaGU7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MTJGNTg4NjEyQTg4MzQ3MDA2Mjk1MzAg
LyogQXV0aGVudGljYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjA1Niw2ICsyMDg4LDcgQEAKIAkJCQlCQzBFNUZDQjEyRDY5NkREMDAxMkE3MkEg
LyogR2VvbG9jYXRpb24gKi8sCiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYzMzc1IC8qIEluamVj
dGVkQnVuZGxlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAvKiBtYWMgKi8sCisJ
CQkJMzM1QzQ2OTAxMzBCNTdDMjAwMjQ0QkQwIC8qIE1lbW9yeUNhY2hlICovLAogCQkJCTFBNkZC
N0FBMTFFNjRCNDkwMERCMTM3MSAvKiBQbHVnaW5zICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIw
MDU4QzE1QSAvKiBXZWJDb3JlU3VwcG9ydCAqLywKIAkJCQlCQzAzMkQ1RTEwRjQzNzJCMDA1OEMx
NUEgLyogV2ViUGFnZSAqLywKQEAgLTIxODYsNiArMjIxOSw5IEBACiAJCQkJMUEwRjI5RTIxMjBC
NDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuaCAqLywKIAkJCQlCQzcyQkExQjEx
RTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmNwcCAqLywKIAkJCQlCQzcyQkEx
QzExRTY0OTA3MDAxRUI0RUEgLyogV2ViQmFja0ZvcndhcmRMaXN0LmggKi8sCisJCQkJMzNFNUVG
MDQxMzBCNEIyQjAwQUM4ODRCIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQkz
M0U1RUYwNTEzMEI0QjJCMDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCAqLywKKwkJ
CQkzM0JBMjkxODEzMEI0QzUxMDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkJQkNCOUUyNDIxMTIwREFDQTAwQTEzN0UwIC8qIFdlYkNvbnRleHQuY3Bw
ICovLAogCQkJCUJDQjlFMjQxMTEyMERBQ0EwMEExMzdFMCAvKiBXZWJDb250ZXh0LmggKi8sCiAJ
CQkJQkNFRTdEMDkxMjg0NkFFRDAwOTgyN0RBIC8qIFdlYkNvbnRleHQubWVzc2FnZXMuaW4gKi8s
CkBAIC0yMjgxLDYgKzIzMTcsOCBAQAogCQkJCUJDNjQ2QzE3MTFERDM5OUYwMDY0NTVCMCAvKiBX
S0JhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCUJDNjQ2QzE4MTFERDM5OUYwMDY0NTVCMCAvKiBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAogCQkJCUJDNjQ2QzE5MTFERDM5OUYwMDY0NTVC
MCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLywKKwkJCQkzM0U1RUYwMDEzMEI0QUQ5MDBB
Qzg4NEIgLyogV0tDYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTMzRTVFRjAxMTMwQjRBRDkwMEFD
ODg0QiAvKiBXS0NhY2hlTWFuYWdlci5oICovLAogCQkJCUJDQjlFMjRBMTEyMEUxNUMwMEExMzdF
MCAvKiBXS0NvbnRleHQuY3BwICovLAogCQkJCUJDQjlFMjQ5MTEyMEUxNUMwMEExMzdFMCAvKiBX
S0NvbnRleHQuaCAqLywKIAkJCQlCQ0M5MzhFMDExODBERTQ0MDA4NUU1RkUgLyogV0tDb250ZXh0
UHJpdmF0ZS5oICovLApAQCAtMjc2NCw2ICsyODAyLDEwIEBACiAJCQkJMUEwNDNCNUMxMjRENUU5
RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMUE4RUZB
NkUxMjUyQjg0MTAwRjcwNjdGIC8qIFBsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
IAkJCQkxQThFRkE2RjEyNTJCODQxMDBGNzA2N0YgLyogUGx1Z2luUHJveHlNZXNzYWdlcy5oICov
LAorCQkJCTMzQkEyOTM3MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCTMzQkEyOTM4MTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNo
ZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTMzQkEyOTM5MTMwQjRFMDIwMDJCQjlFQyAvKiBX
ZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMzNCQTI5MzUx
MzBCNERGMDAwMkJCOUVDIC8qIFdlYkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJ
CQlCQ0VFN0QwQjEyODQ2RjY5MDA5ODI3REEgLyogV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJQkNFRTdEMEMxMjg0NkY2OTAwOTgyN0RBIC8qIFdlYkNvbnRleHRNZXNzYWdl
cy5oICovLAogCQkJCUY2MkE3NkIyMTJCMUIyNUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMzE3NSw2ICszMjE3LDExIEBACiAJCQkJQkNB
NTZBMUMxMkY5MDI4RTAwQzU2NkM3IC8qIFdlYkdyYXBoaWNzQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNBNTZBNjUxMkY5QzhGOTAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0E1NkE2OTEyRjlDOUFEMDBDNTY2QzcgLyogV0tHcmFwaGlj
c0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzNFNUVGMDMxMzBCNEFEOTAwQUM4ODRC
IC8qIFdLQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkzM0U1RUYwNzEzMEI0QjJC
MDBBQzg4NEIgLyogV2ViQ2FjaGVNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTMz
QkEyOTM2MTMwQjRERjAwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkzM0JBMjkzQjEzMEI0RTAyMDAyQkI5RUMgLyogV2ViQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzNUM0Njk1MTMwQjU3RkMwMDI0
NEJEMCAvKiBXZWJDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzY1Miw2ICszNjk5
LDExIEBACiAJCQkJQkNBNTZBNjYxMkY5QzhGOTAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTU2QTZBMTJGOUM5QUQwMEM1NjZDNyAvKiBXS0dy
YXBoaWNzQ29udGV4dENHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1OUM1NTFFMTMwMDA2NDEw
MDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzNFNUVGMDIxMzBCNEFEOTAwQUM4ODRCIC8qIFdLQ2FjaGVNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzRTVFRjA2MTMwQjRCMkIwMEFDODg0QiAvKiBXZWJD
YWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzM0JBMjkzQTEzMEI0RTAy
MDAyQkI5RUMgLyogV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTMzQkEyOTNDMTMwQjRFMDIwMDJCQjlFQyAvKiBXZWJDYWNoZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMzVDNDY5NDEzMEI1N0ZD
MDAyNDRCRDAgLyogV2ViQ2FjaGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3ODUwMSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmgiCiAjaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKKyNpbmNsdWRlICJXZWJDYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJEYXRhYmFzZU1hbmFnZXIuaCIKQEAgLTUwLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zv
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9N
ZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgpAQCAt
NTEwLDYgKzUxMiwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkNhY2hlTWFuYWdlcj4oKSkgeworICAgICAgICBXZWJDYWNoZU1hbmFn
ZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJn
dW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyPigpKSB7CiAgICAgICAgIFdl
YkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47CkBAIC02MjMsNiArNjMwLDEy
IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNhY2hlcygpCiAgICAgc2V0Q2FjaGVN
b2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpOwogICAgIHNldENhY2hlTW9kZWwoY2FjaGVN
b2RlbCk7CiAKKyAgICAvLyBJZiB0aGUgbWVtb3J5IGNhY2hlIGlzIGN1cnJlbnRseSBlbmFibGVk
LCB0b2dnbGUgaXQgb24gYW5kIG9mZiB0byBldmljdCBpdHMgcmVzb3VyY2VzLgorICAgIGlmICgh
bWVtb3J5Q2FjaGUoKS0+ZGlzYWJsZWQoKSkgeworICAgICAgICBtZW1vcnlDYWNoZSgpLT5zZXRE
aXNhYmxlZCh0cnVlKTsKKyAgICAgICAgbWVtb3J5Q2FjaGUoKS0+c2V0RGlzYWJsZWQoZmFsc2Up
OworICAgIH0KKwogICAgIC8vIEVtcHR5IHRoZSBjcm9zcy1vcmlnaW4gcHJlZmxpZ2h0IGNhY2hl
LgogICAgIENyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmVtcHR5KCk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24g
Nzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICAvLyBHZW9sb2NhdGlvbgog
ICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRpb25NYW5hZ2VyKCkgeyByZXR1cm4g
bV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KIAorICAgIHZvaWQgY2xlYXJSZXNvdXJjZUNhY2hlcygp
OworCiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTM5LDcgKzE0MSw2IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlQ2FjaGVTaXplcyhDYWNoZU1vZGVsIGNh
Y2hlTW9kZWwsIHVpbnQ2NF90IG1lbW9yeVNpemUsIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSwKICAg
ICAgICAgdW5zaWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWluRGVh
ZENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRvdWJsZSYgZGVhZERl
Y29kZWREYXRhRGVsZXRpb25JbnRlcnZhbCwKICAgICAgICAgdW5zaWduZWQmIHBhZ2VDYWNoZUNh
cGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1bnNpZ25lZCBs
b25nJiB1cmxDYWNoZURpc2tDYXBhY2l0eSk7Ci0gICAgdm9pZCBjbGVhclJlc291cmNlQ2FjaGVz
KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2b2lkIGNs
ZWFyQXBwbGljYXRpb25DYWNoZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1h
bmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlci5oIgorCisjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlD
YWNoZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJDYWNoZU1hbmFnZXIm
IFdlYkNhY2hlTWFuYWdlcjo6c2hhcmVkKCkKK3sKKyAgICBzdGF0aWMgV2ViQ2FjaGVNYW5hZ2Vy
JiBzaGFyZWQgPSAqbmV3IFdlYkNhY2hlTWFuYWdlcjsKKyAgICByZXR1cm4gc2hhcmVkOworfQor
CitXZWJDYWNoZU1hbmFnZXI6OldlYkNhY2hlTWFuYWdlcigpCit7Cit9CisKK1dlYkNhY2hlTWFu
YWdlcjo6fldlYkNhY2hlTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2ViQ2FjaGVNYW5hZ2VyOjpk
aWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBD
OjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50
cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQ2FjaGVNYW5hZ2VyTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmdldENh
Y2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKSBjb25zdAoreworICAgIEhhc2hTZXQ8U3Ry
aW5nPiBvcmlnaW5zOworICAgIG1lbW9yeUNhY2hlKCktPm9yaWdpbnNXaXRoQ2FjaGUob3JpZ2lu
cyk7CisKKyAgICBzaXplX3QgbnVtT3JpZ2lucyA9IG9yaWdpbnMuc2l6ZSgpOworCisgICAgVmVj
dG9yPFN0cmluZz4gaWRlbnRpZmllcnMobnVtT3JpZ2lucyk7CisgICAgSGFzaFNldDxTdHJpbmc+
OjppdGVyYXRvciBlbmQgPSBvcmlnaW5zLmVuZCgpOworCisgICAgdW5zaWduZWQgaSA9IDA7Cisg
ICAgZm9yIChIYXNoU2V0PFN0cmluZz46Oml0ZXJhdG9yIGl0ID0gb3JpZ2lucy5iZWdpbigpOyBp
dCAhPSBlbmQ7ICsraXQpCisgICAgICAgIGlkZW50aWZpZXJzW2krK10gPSAqaXQ7CisKKyAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkNhY2hl
TWFuYWdlclByb3h5OjpEaWRHZXRDYWNoZU9yaWdpbnMoaWRlbnRpZmllcnMsIGNhbGxiYWNrSUQp
LCAwKTsKK30KKwordm9pZCBXZWJDYWNoZU1hbmFnZXI6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKSBjb25zdAoreworICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luU3Ry
aW5nKTsKKyAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbWVtb3J5Q2Fj
aGUoKS0+cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbihvcmlnaW4pOworfQorCit2b2lkIFdlYkNh
Y2hlTWFuYWdlcjo6ZGVsZXRlQWxsQ2FjaGUoKSBjb25zdAoreworICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLmNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFu
YWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTWVtb3J5Q2Fj
aGUvV2ViQ2FjaGVNYW5hZ2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJDYWNoZU1hbmFnZXJfaAorI2RlZmlu
ZSBXZWJDYWNoZU1hbmFnZXJfaAorCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rp
b247CitjbGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJDYWNoZU1hbmFnZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNhY2hlTWFuYWdl
cik7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYkNhY2hlTWFuYWdlciYgc2hhcmVkKCk7CisKKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdl
YkNhY2hlTWFuYWdlcigpOworICAgIHZpcnR1YWwgfldlYkNhY2hlTWFuYWdlcigpOworCisgICAg
Ly8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJDYWNoZU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOworCisgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29u
c3Q7CisgICAgdm9pZCBkZWxldGVDYWNoZUZvck9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpbikg
Y29uc3Q7CisgICAgdm9pZCBkZWxldGVBbGxDYWNoZSgpIGNvbnN0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJDYWNoZU1hbmFnZXJfaApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9X
ZWJDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJDYWNoZU1hbmFnZXIgeworICAgIHZvaWQgR2V0Q2Fj
aGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgdm9pZCBEZWxldGVDYWNoZUZvck9y
aWdpbihXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIHZvaWQgRGVsZXRlQWxsQ2Fj
aGUoKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzg1MDEp
CisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAg
LTEzNDIsNiArMTM0MiwyMiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+Cisg
ICAgICAgICAgICA8RmlsdGVyCisgICAgICAgICAgICAgICAgTmFtZT0iTWVtb3J5Q2FjaGUiCisg
ICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cV2ViUHJvY2Vzc1xNZW1vcnlDYWNoZVxXZWJDYWNoZU1hbmFnZXIuY3BwIgorCQkJCQk+
CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vz
c1xNZW1vcnlDYWNoZVxXZWJDYWNoZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcTWVtb3J5Q2FjaGVcV2Vi
Q2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluIgorCQkJCQk+CisJCQkJPC9GaWxlPgorICAgICAgICAg
ICAgPC9GaWx0ZXI+CiAJCQk8RmlsdGVyCiAJCQkJTmFtZT0iV2ViQ29yZVN1cHBvcnQiCiAJCQkJ
PgpAQCAtMjI1OCw2ICsyMjc0LDE4IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
V2ViQmFja0ZvcndhcmRMaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5j
cHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xXZWJDYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ2FjaGVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4iCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb250ZXh0LmNwcCIKIAkJCQk+CkBAIC0yNTYwLDYgKzI1ODgs
MTQgQEAKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0Zvcndh
cmRMaXN0SXRlbS5oIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAg
IDxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NhY2hlTWFu
YWdlci5jcHAiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ2FjaGVNYW5hZ2VyLmgiCisJCQkJCQk+CisJ
CQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNz
XEFQSVxDXFdLQ29udGV4dC5jcHAiCiAJCQkJCQk+CkBAIC0zMjk0LDYgKzMzMzAsMjIgQEAKIAkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAJCQkJPgogCQkJ
PC9GaWxlPgorICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ2FjaGVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWls
ZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkNhY2hlTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xXZWJDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgor
CQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ29udGV4dE1lc3Nh
Z2VSZWNlaXZlci5jcHAiCiAJCQkJPgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
b21tb24udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNv
bW1vbi52c3Byb3BzCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAJPgogCTxU
b29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0
b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXGNnJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXGNm
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdpbiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXEMmcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTGF1bmNo
ZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcUGx1Z2lucyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
V2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdl
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5k
bGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxl
XEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lu
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2luc1xOZXRzY2Fw
ZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9u
QnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2
YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2
YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJp
dmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
SW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFk
ZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFBsYXRmb3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29y
ZUlQQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cU2hhcmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVk
XEFQSVxjXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3Vw
cG9ydCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxV
SVByb2Nlc3NcQVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJ
XENcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxVSVByb2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50
aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRz
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZW1vcnlDYWNoZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
JnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90
OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5j
bHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVk
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5j
bHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVz
RGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1
cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFk
ZXJzJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQ
T1JUUztGUkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lUIgogCQlVc2VQcmVjb21w
aWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4
LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UJKHJldmlz
aW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2QgIi4u
XFVJUHJvY2Vzc1xBUElcQ1xXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExpc3QuaCIgIiVDb25maWd1cmF0aW9uQnVp
bGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQmFja0ZvcndhcmRMaXN0SXRlbS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDYWNo
ZU1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAg
ICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5oIiAiJUNvbmZpZ3Vy
YXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tDb250ZXh0UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVc
aW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tD
cmVkZW50aWFsLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82720</attachid>
            <date>2011-02-16 16:32:34 -0800</date>
            <delta_ts>2011-02-17 00:35:59 -0800</delta_ts>
            <desc>[PATCH] Fix + Jon&apos;s Comments + Renames</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>71206</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTYgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg3NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA4LDcgKzIwOCwxMCBAQCBfX1pON1dlYkNv
cmUxMUhpc3RvcnlJdGVtQzFFdgogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbUQxRXYKIF9fWk43
V2ViQ29yZTExTWVtb3J5Q2FjaGUxMXNldERpc2FibGVkRWIKIF9fWk43V2ViQ29yZTExTWVtb3J5
Q2FjaGUxM2dldFN0YXRpc3RpY3NFdgorX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTE0ZXZpY3RS
ZXNvdXJjZXNFdgogX19aTjdXZWJDb3JlMTFNZW1vcnlDYWNoZTEzc2V0Q2FwYWNpdGllc0VqamoK
K19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUxOWdldE9yaWdpbnNXaXRoQ2FjaGVFUk4zV1RGN0hh
c2hTZXRJTlMxXzZTdHJpbmdFTlMxXzEwU3RyaW5nSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVMzX0VF
RUUKK19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5F
UE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxS
ZWN0VG9WaXNpYmxlRVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBf
X1pON1dlYkNvcmUxMWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJD
b3JlMTFtZW1vcnlDYWNoZUV2CkBAIC0zNTIsNiArMzU1LDcgQEAgX19aTjdXZWJDb3JlMTRTZWN1
cml0eU9yaWdpbjE2Y3JlYXRlRnJvbQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4c2V0
TG9jYWxMb2FkUG9saWN5RU5TMF8xNUxvY2FsTG9hZFBvbGljeUUKIF9fWk43V2ViQ29yZTE0U2Vj
dXJpdHlPcmlnaW4xOHNob3VsZEhpZGVSZWZlcnJlckVSS05TXzRLVVJMRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI3cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RzRXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luOHRvU3RyaW5nRXYKIF9fWk43V2Vi
Q29yZTE0U2VjdXJpdHlPcmlnaW4yOGNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXJFUktOM1dU
RjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjlhZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeUVSS1MwX1JLTjNXVEY2U3RyaW5nRVM2X2IKIF9fWk43V2ViQ29yZTE0U2Vj
dXJpdHlPcmlnaW4zMnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5RVJLUzBfUktOM1dU
RjZTdHJpbmdFUzZfYgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NCw2ICs0NzQsMzUgQEAgdm9p
ZCBNZW1vcnlDYWNoZTo6cmVzb3VyY2VBY2Nlc3NlZChDYWNoZQogICAgIGluc2VydEluTFJVTGlz
dChyZXNvdXJjZSk7CiB9CiAKK3ZvaWQgTWVtb3J5Q2FjaGU6OnJlbW92ZVJlc291cmNlc1dpdGhP
cmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBWZWN0b3I8Q2FjaGVkUmVzb3Vy
Y2UqPiByZXNvdXJjZXNXaXRoT3JpZ2luOworCisgICAgQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJh
dG9yIGUgPSBtX3Jlc291cmNlcy5lbmQoKTsKKyAgICBmb3IgKENhY2hlZFJlc291cmNlTWFwOjpp
dGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGU7ICsraXQpIHsKKyAgICAg
ICAgQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlID0gaXQtPnNlY29uZDsKKyAgICAgICAgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiByZXNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVG
cm9tU3RyaW5nKHJlc291cmNlLT51cmwoKSk7CisgICAgICAgIGlmICghcmVzb3VyY2VPcmlnaW4p
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHJlc291cmNlT3JpZ2luLT5lcXVh
bChvcmlnaW4pKQorICAgICAgICAgICAgcmVzb3VyY2VzV2l0aE9yaWdpbi5hcHBlbmQocmVzb3Vy
Y2UpOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzb3VyY2VzV2l0aE9y
aWdpbi5zaXplKCk7ICsraSkKKyAgICAgICAgcmVtb3ZlKHJlc291cmNlc1dpdGhPcmlnaW5baV0p
OworfQorCit2b2lkIE1lbW9yeUNhY2hlOjpnZXRPcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3Ry
aW5nPiYgb3JpZ2lucykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1f
cmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkgeworICAgICAgICBTdHJpbmcg
b3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoaXQtPnNlY29uZC0+dXJs
KCkpLT50b1N0cmluZygpOworICAgICAgICBpZiAob3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBvcmlnaW5zLmFkZChvcmlnaW4pOworICAgIH0KK30KKwog
dm9pZCBNZW1vcnlDYWNoZTo6cmVtb3ZlRnJvbUxpdmVEZWNvZGVkUmVzb3VyY2VzTGlzdChDYWNo
ZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7CiAgICAgLy8gSWYgd2UndmUgbmV2ZXIgYmVlbiBhY2Nl
c3NlZCwgdGhlbiB3ZSdyZSBicmFuZCBuZXcgYW5kIG5vdCBpbiBhbnkgbGlzdC4KQEAgLTYyMiw2
ICs2NTEsMTUgQEAgdm9pZCBNZW1vcnlDYWNoZTo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYgogICAg
IH0KIH0KIAordm9pZCBNZW1vcnlDYWNoZTo6ZXZpY3RSZXNvdXJjZXMoKQoreworICAgIGlmIChk
aXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXREaXNhYmxlZCh0cnVlKTsKKyAg
ICBzZXREaXNhYmxlZChmYWxzZSk7Cit9CisKICNpZm5kZWYgTkRFQlVHCiB2b2lkIE1lbW9yeUNh
Y2hlOjpkdW1wU3RhdHMoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01l
bW9yeUNhY2hlLmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3Mg
Q2FjaGVkQ1NTU3R5bGVTaGVldDsKIGNsYXNzIENhY2hlZFJlc291cmNlOwogY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBLVVJMOworY2xhc3MgU2VjdXJpdHlPcmlnaW47CiAKIC8v
IFRoaXMgY2FjaGUgaG9sZHMgc3VicmVzb3VyY2VzIHVzZWQgYnkgV2ViIHBhZ2VzOiBpbWFnZXMs
IHNjcmlwdHMsIHN0eWxlc2hlZXRzLCBldGMuCiAKQEAgLTEyNSw2ICsxMjYsOCBAQCBwdWJsaWM6
CiAgICAgLy8gc3RpbGwgbGl2ZSBvbiBpZiB0aGV5IGFyZSByZWZlcmVuY2VkIGJ5IHNvbWUgV2Vi
IHBhZ2UgdGhvdWdoLgogICAgIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBkaXNh
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzYWJsZWQ7IH0KKworICAgIHZvaWQgZXZpY3RSZXNv
dXJjZXMoKTsKICAgICAKICAgICB2b2lkIHNldFBydW5lRW5hYmxlZChib29sIGVuYWJsZWQpIHsg
bV9wcnVuZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBwcnVuZSgpCkBAIC0xNjMsNiAr
MTY2LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNoZWRS
ZXNvdXJjZSopOwogCisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5
T3JpZ2luKik7CisgICAgdm9pZCBnZXRPcmlnaW5zV2l0aENhY2hlKEhhc2hTZXQ8U3RyaW5nPiYg
b3JpZ2lucyk7CisKIHByaXZhdGU6CiAgICAgTWVtb3J5Q2FjaGUoKTsKICAgICB+TWVtb3J5Q2Fj
aGUoKTsgLy8gTm90IGltcGxlbWVudGVkIHRvIG1ha2Ugc3VyZSBub2JvZHkgYWNjaWRlbnRhbGx5
IGNhbGxzIGRlbGV0ZSAtLSBXZWJDb3JlIGRvZXMgbm90IGRlbGV0ZSBzaW5nbGV0b25zLgpJbmRl
eDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwkocmV2aXNpb24gNzg2NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw4NyBAQAorMjAxMS0wMi0xNiAgQnJpYW4gV2VpbnN0
ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0MjogTmVlZCBhIHdheSB0byBtYW5hZ2UgdGhlIFdl
YkNvcmUgQ2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NTAxCisgICAgICAgIAorICAgICAgICBJbXBsZW1lbnQgYSBXZWJLaXQyIEFQSSB0byBt
YW5hZ2UgdGhlIFdlYkNvcmUgbWVtb3J5IGNhY2hlLiBUaGlzIEFQSSBleHBvc2VzIHRocmVlIGZ1
bmN0aW9uczoKKyAgICAgICAgCisgICAgICAgIDEpIEEgbWV0aG9kIHRvIGdldCBhIGxpc3Qgb2Yg
YWxsIHNlY3VyaXR5IG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlIFdlYkNvcmUgbWVt
b3J5IGNhY2hlLgorICAgICAgICAyKSBBIG1ldGhvZCB0byByZW1vdmUgYWxsIGVudHJpZXMgaW4g
dGhlIFdlYkNvcmUgbWVtb3J5IGNhY2hlIGZyb20gYSBTZWN1cml0eU9yaWdpbi4KKyAgICAgICAg
MykgQSBtZXRob2QgdG8gcmVtb3ZlIGFsbCBlbnRyaWVzIGZyb20gdGhlIFdlYkNvcmUgbWVtb3J5
IGNhY2hlLgorCisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDogQWRkIHR3
byBuZXcgTWVzc2FnZUNsYXNzZXMuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgor
ICAgICAgICAqIFNoYXJlZC9BUElPYmplY3QuaDogQWRkIGEgQ2FjaGVNYW5hZ2VyIHR5cGUuCisg
ICAgICAgICogU2hhcmVkL1dlYlNlY3VyaXR5T3JpZ2luLmg6IFR5cGVkZWYgV0tDYWNoZU1hbmFn
ZXJSZWYuCisgICAgICAgIChXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKTogQ3JlYXRlcyBhIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luIHVzaW5nIAorICAgICAgICAg
ICAgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcuCisgICAgICAgIChXZWJLaXQ6Oldl
YlNlY3VyaXR5T3JpZ2luOjp0b1N0cmluZyk6IENhbGxzIHRocm91Z2ggdG8gU2VjdXJpdHlPcmln
aW46OnRvU3RyaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV0tDYWNoZU1hbmFnZXJHZXRUeXBlSUQpOiBSZXR1cm5zIHRoZSBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5IHR5cGUuCisgICAgICAgIChXS0NhY2hlTWFuYWdlckdldENhY2hlT3Jp
Z2lucyk6IENhbGxzIHRocm91Z2ggdG8gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Z2V0
Q2FjaGVPcmlnaW5zLgorICAgICAgICAoY2FsbEdldENhY2hlT3JpZ2luc0Jsb2NrQmxvY2tBbmRE
aXNwb3NlKToKKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zX2IpOgorICAg
ICAgICAoV0tDYWNoZU1hbmFnZXJEZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGxzIHRocm91Z2gg
dG8gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4uCisg
ICAgICAgIChXS0NhY2hlTWFuYWdlckRlbGV0ZUFsbENhY2hlKTogQ2FsbHMgdGhyb3VnaCB0byBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVBbGxDYWNoZS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tDYWNoZU1hbmFnZXIuaDogQWRkZWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4dEdldENhY2hlTWFu
YWdlcik6IENhbGxzIHRvIGdldCB0aGUgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Lmg6CisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUpOiBDYWxscyB0aHJvdWdo
IHRvIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eTo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSk6IEluaXRpYWxpemUgdGhl
IG1fd2ViQ29udGV4dCB2YXJpYWJsZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eTo6fldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjppbnZhbGlkYXRlKTogSW52YWxp
ZGF0ZSB0aGUgY2FsbGJhY2sgbWFwLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5OjpnZXRDYWNoZU9yaWdpbnMpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBw
cm9jZXNzIHRvIGdldCB0aGUgY2FjaGUKKyAgICAgICAgICAgIG9yaWdpbnMuCisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmRpZEdldENhY2hlT3JpZ2lucyk6
IENhbGwgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5OjpkZWxldGVDYWNoZUZvck9yaWdpbik6IENhbGwgdGhyb3VnaCB0byB0aGUgd2Vi
IHByb2Nlc3MgdG8gZGVsZXRlIGNhY2hlCisgICAgICAgICAgICBmb3IgdGhlIGdpdmVuIG9yaWdp
bi4gCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0
ZUFsbENhY2hlKTogQ2FsbCB0aHJvdWdoIHRvIHRoZSB3ZWIgcHJvY2VzcyB0byBkZWxldGUgYWxs
IG9mIHRoZSBjYWNoZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eTo6Y2xlYXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eTo6dHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpXZWJDb250ZXh0
KTogSW5pdGlhbGl6ZSBuZXcgbWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJD
b250ZXh0Ojp+V2ViQ29udGV4dCk6ICBJbnZhbGlkYXRlcyBuZXcgbWVtYmVyIHZhcmlhYmxlLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVzc2FnZSk6IFBhc3NlcyBj
YWNoZSBtZXNzYWdlcyB0byB0aGUgY2FjaGUgbWFuYWdlci4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjYWNoZU1hbmFnZXJQ
cm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBBZGQgYSBuZXcg
bWVzc2FnZSBjbGFzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTWVtb3J5Q2FjaGUvV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXI6OnNoYXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyOjp+V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBD
YWxscyB0aHJvdWdoIHRvIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2Uu
CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpnZXRDYWNoZU9yaWdp
bnMpOiBHZXRzIGEgbGlzdCBvZiBvcmlnaW5zIHdpdGggY2FjaGUgZW50cmllcyBmcm9tIHRoZSBt
ZW1vcnkKKyAgICAgICAgICAgIGNhY2hlLCBhbmQgcHV0cyB0aGVtIGludG8gYSB2ZWN0b3IgdG8g
c2VuZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXI6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKTogQ2FsbHMgdGhyb3VnaCB0byBtZW1vcnlD
YWNoZSB0byBkZWxldGUgYWxsIGNhY2hlIGVudHJpZXMKKyAgICAgICAgICAgIGZyb20gYSBnaXZl
biBvcmlnaW4uCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpkZWxl
dGVBbGxDYWNoZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hl
L1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJS
ZXNvdXJjZUNhY2hlcyk6IFRlbGwgdGhlIG1lbW9yeSBjYWNoZSB0byBldmljdCBpdHMgcmVzb3Vy
Y2VzLiBUaGlzIHdhcyBkb25lIG9uIFdlYktpdDEsIAorICAgICAgICAgICAgYnV0IG5vdCBXZWJL
aXQyLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAKKyAgICAg
ICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5ldyBmaWxlcy4K
KyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIHdpbi9XZWJL
aXQyQ29tbW9uLnZzcHJvcHM6IEFkZGVkIG5ldyBpbmNsdWRlIGRpcmVjdG9yeS4KKyAgICAgICAg
KiB3aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtlOiBBZGRlZCBuZXcgaGVhZGVyLgorCiAyMDExLTAy
LTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNl
cy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJ
KHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQCBWUEFUSCA9IFwKICAgICAkKFdlYktpdDIp
L1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1BsdWdpbnMgXAorICAgICQo
V2ViS2l0MikvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICAkKFdlYktpdDIpL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQgXAogICAgICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9XZWJQYWdl
IFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MgXApAQCAtNTYsNiArNTcsOCBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQcm9jZXNzIFwKICAgICBXZWJQcm9jZXNzQ29ubmVjdGlv
biBcCiAgICAgV2ViUHJvY2Vzc1Byb3h5IFwKKyAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciBc
CisgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSBcCiAjCiAKIFNDUklQVFMgPSBcCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgs
NyBAQCBWUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKICAgICBXZWJQ
cm9jZXNzL0dlb2xvY2F0aW9uIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMgXAorICAgIFdlYlBy
b2Nlc3MvUmVzb3VyY2VDYWNoZSBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCiAg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlIFwKICAgICBXZWJQcm9jZXNzIFwKQEAgLTEwMyw3ICsxMDQs
OSBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
XAogICAgIFdlYlByb2Nlc3MubWVzc2FnZXMuaW4gXAogICAgIFdlYlByb2Nlc3NDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluIFwKLSAgICBXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKyAgICBXZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLm1l
c3NhZ2VzLmluIFwKKyAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CiAKIFNDUklQVFMgPSBcCiAgICAgJCRQV0QvU2NyaXB0cy9nZW5lcmF0ZS1tZXNzYWdlLXJlY2Vp
dmVyLnB5IFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDcgQEAgV0VC
S0lUMl9JTkNMVURFUEFUSCA9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlIFwKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTSBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYyBcCisgICAgV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZSBcCiAgICAgV2ViUHJv
Y2Vzcy9QbHVnaW5zIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUgXAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQgXApAQCAtMTc2LDYgKzE3Nyw4IEBAIFdFQktJVDJfR0VO
RVJBVEVEX0hFQURFUlMgPSBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9Q
bHVnaW5Qcm9jZXNzTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJB
VEVEX1NPVVJDRVNfRElSL1BsdWdpblByb3h5TWVzc2FnZXMuaCBcCisgICAgJCRXRUJLSVQyX0dF
TkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggXAor
ICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
V2ViQ29udGV4dE1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19E
SVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXApAQCAtMTk2
LDYgKzE5OSw4IEBAIFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVMgPSBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCBc
CiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9QbHVnaW5Qcm9jZXNzUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElS
L1BsdWdpblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCisgICAgJCRXRUJLSVQyX0dFTkVSQVRF
RF9TT1VSQ0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
XAorICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURf
U09VUkNFU19ESVIvV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lU
Ml9HRU5FUkFURURfU09VUkNFU19ESVIvV2ViRGF0YWJhc2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1h
bmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtMjk4LDYgKzMwMyw3IEBAIEhFQURF
UlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKyAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaCBcCkBAIC0zNTQsNiArMzYwLDcgQEAgSEVB
REVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAogICAgIFVJUHJvY2Vzcy9U
aWxlZERyYXdpbmdBcmVhUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuaCBcCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5o
IFwKQEAgLTQxMiw2ICs0MTksNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIFwKICAgICBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBcCisg
ICAgV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oIFwKICAg
ICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIFwKICAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTlBKU09iamVjdC5oIFwKQEAgLTUyOCw2ICs1MzYsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIu
Y3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCisgICAgVUlQcm9jZXNz
L0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGFiYXNlTWFuYWdlci5jcHAgXApAQCAtNTc0LDYgKzU4
Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNw
cCBcCiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogICAgIFVJUHJvY2Vz
cy9XZWJDb250ZXh0LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50
LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIFwKICAgICBVSVBy
b2Nlc3MvV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkuY3BwIFwKQEAgLTY0Nyw2ICs2NTcsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVVJQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9x
dC9JbmplY3RlZEJ1bmRsZVF0LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QTWV0aG9kLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBP
YmplY3QuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5j
cHAgXApJbmRleDogU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5o
CShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVz
c2FnZUlELmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBNZXNzYWdlQ2xh
c3MgewogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhLAogICAgIE1lc3NhZ2VDbGFzc0RyYXdp
bmdBcmVhTGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlLAorICAgIE1lc3Nh
Z2VDbGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFi
YXNlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwK
ICAgICBNZXNzYWdlQ2xhc3NXZWJJbnNwZWN0b3IsCkBAIC00OSw2ICs1MCw3IEBAIGVudW0gTWVz
c2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LAogICAgIE1lc3NhZ2VD
bGFzc0RyYXdpbmdBcmVhUHJveHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxl
Z2FjeSwKKyAgICBNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogICAg
IE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2Fj
eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJT2JqZWN0LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSU9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBAIHB1Ymxp
YzoKICAgICAgICAgLy8gVUlQcm9jZXNzIHR5cGVzCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExp
c3QsCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3RJdGVtLAorICAgICAgICBUeXBlQ2FjaGVN
YW5hZ2VyLAogICAgICAgICBUeXBlQ29udGV4dCwKICAgICAgICAgVHlwZURhdGFiYXNlTWFuYWdl
ciwKICAgICAgICAgVHlwZURvd25sb2FkLApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlNlY3VyaXR5T3JpZ2luLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlNlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlNlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDEwICs1MiwxOSBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4o
c2VjdXJpdHlPcmlnaW4ucmVsZWFzZSgpKSk7CiAgICAgfQogCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViU2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCisgICAgeworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luID0gV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc3Ry
aW5nKTsKKyAgICAgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5
T3JpZ2luLnJlbGVhc2UoKSkpOworICAgIH0KKwogICAgIGNvbnN0IFN0cmluZyBwcm90b2NvbCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPnByb3RvY29sKCk7IH0KICAgICBjb25z
dCBTdHJpbmcgaG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPmhvc3QoKTsg
fQogICAgIHVuc2lnbmVkIHNob3J0IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3Jp
Z2luLT5wb3J0KCk7IH0KIAorICAgIGNvbnN0IFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0
dXJuIG1fc2VjdXJpdHlPcmlnaW4tPnRvU3RyaW5nKCk7IH0KICAgICBjb25zdCBTdHJpbmcgZGF0
YWJhc2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+ZGF0YWJh
c2VJZGVudGlmaWVyKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tCYXNlLmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw2ICs3MSw3IEBAIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLQXV0aGVudGljYXQKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKiBXS0F1dGhlbnRpY2F0aW9uRGVjaXNp
b25MaXN0ZW5lclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRM
aXN0KiBXS0JhY2tGb3J3YXJkTGlzdFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
QmFja0ZvcndhcmRMaXN0SXRlbSogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmOwordHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tSZXNvdXJjZUNhY2hlTWFuYWdlciogV0tSZXNvdXJjZUNhY2hl
TWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250
ZXh0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDcmVkZW50aWFsKiBXS0NyZWRl
bnRpYWxSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0RhdGFiYXNlTWFuYWdlciog
V0tEYXRhYmFzZU1hbmFnZXJSZWY7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUg
IlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUg
IldLQ29udGV4dFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldl
YkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgpAQCAtOTUsNiArOTYsNyBAQCBXZWJDb250ZXh0OjpXZWJDb250ZXh0KFByb2Nlc3NN
b2RlbCBwcm9jCiAgICAgLCBtX2NsZWFyQXBwbGljYXRpb25DYWNoZUZvck5ld1dlYlByb2Nlc3Mo
ZmFsc2UpCiAgICAgLCBtX21lbW9yeVNhbXBsZXJFbmFibGVkKGZhbHNlKQogICAgICwgbV9tZW1v
cnlTYW1wbGVySW50ZXJ2YWwoMTQwMC4wKQorICAgICwgbV9yZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5KFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1f
ZGF0YWJhc2VNYW5hZ2VyUHJveHkoV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk6OmNyZWF0ZSh0aGlz
KSkKICAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoV2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OmNyZWF0ZSh0aGlzKSkKICNpZiBQTEFURk9STShXSU4pCkBAIC0xMTQsNiArMTE2LDkg
QEAgV2ViQ29udGV4dDo6fldlYkNvbnRleHQoKQogCiAgICAgV2ViUHJvY2Vzc01hbmFnZXI6OnNo
YXJlZCgpLmNvbnRleHRXYXNEZXN0cm95ZWQodGhpcyk7CiAKKyAgICBtX3Jlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHktPmludmFsaWRhdGUoKTsKKyAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHktPmNsZWFyQ29udGV4dCgpOworCiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+aW52
YWxpZGF0ZSgpOwogICAgIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHktPmNsZWFyQ29udGV4dCgp
OwogCkBAIC00ODMsNiArNDg4LDExIEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8
Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4oKSkgewor
ICAgICAgICBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50
cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJ
UEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlclByb3h5PigpKSB7CiAgICAgICAgIG1f
ZGF0YWJhc2VNYW5hZ2VyUHJveHktPmRpZFJlY2VpdmVXZWJEYXRhYmFzZU1hbmFnZXJQcm94eU1l
c3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOwogICAgICAgICByZXR1cm47
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJldmlzaW9uIDc4NTAx
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5
KQpAQCAtNDUsNiArNDUsNyBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERvd25sb2Fk
UHJveHk7CitjbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViRGF0
YWJhc2VNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTsKIGNs
YXNzIFdlYlBhZ2VHcm91cDsKQEAgLTEyNyw2ICsxMjgsNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgSGFzaFNldDxTdHJpbmcsIENhc2VGb2xkaW5nSGFzaD4gcGRmQW5kUG9zdFNjcmlwdE1JTUVU
eXBlcygpOwogCisgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSogcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5nZXQoKTsgfQogICAgIFdlYkRhdGFiYXNlTWFuYWdlclByb3h5KiBkYXRhYmFzZU1hbmFnZXJQ
cm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2VNYW5hZ2VyUHJveHkuZ2V0KCk7IH0KICAg
ICBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSogZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkoKSBj
b25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LmdldCgpOyB9CiAKQEAgLTIw
Miw2ICsyMDQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tZW1vcnlTYW1wbGVyRW5hYmxlZDsK
ICAgICBkb3VibGUgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWw7CiAKKyAgICBSZWZQdHI8V2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eT4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogICAg
IFJlZlB0cjxXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eTsK
ICAgICBSZWZQdHI8V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+IG1fZ2VvbG9jYXRpb25NYW5h
Z2VyUHJveHk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMwLDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNzYWdlKAogICAgIGlmIChtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dD4oKQogICAgICAgICB8fCBtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeT4oKQogICAgICAgICB8
fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRG93bmxvYWRQcm94eT4oKQorICAg
ICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2Fn
ZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkKICAgICAgICAgfHwgbWVzc2FnZUlELmlz
PENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKSB7CiAg
ICAgICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlE
LCBhcmd1bWVudHMpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgorCisjaW5j
bHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5Lmgi
CisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6
Y3JlYXRlKFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KHdlYkNvbnRleHQpKTsKK30KKworV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eShXZWJD
b250ZXh0KiB3ZWJDb250ZXh0KQorICAgIDogbV93ZWJDb250ZXh0KHdlYkNvbnRleHQpCit7Cit9
CisKK1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6On5XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5KCkKK3sKK30KKwordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjppbnZh
bGlkYXRlKCkKK3sKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9hcnJheUNhbGxiYWNrcyk7
Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Z2V0Q2FjaGVPcmlnaW5z
KFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVmUHRyPEFy
cmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7CisgICAgaWYgKCFtX3dlYkNvbnRl
eHQtPmhhc1ZhbGlkUHJvY2VzcygpKSB7CisgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxi
YWNrLT5jYWxsYmFja0lEKCk7CisgICAgbV9hcnJheUNhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwg
Y2FsbGJhY2sucmVsZWFzZSgpKTsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChN
ZXNzYWdlczo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OkdldENhY2hlT3JpZ2lucyhjYWxsYmFj
a0lEKSwgMCk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0
Q2FjaGVPcmlnaW5zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVudGlmaWVycywgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sg
PSBtX2FycmF5Q2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7CisgICAgaWYgKCFjYWxsYmFjaykg
eworICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2VydC4KKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHNpemVfdCBvcmlnaW5JZGVudGlmaWVyc0NvdW50ID0gb3JpZ2luSWRl
bnRpZmllcnMuc2l6ZSgpOworICAgIFZlY3RvcjxSZWZQdHI8QVBJT2JqZWN0PiA+IHNlY3VyaXR5
T3JpZ2luczsKKyAgICBzZWN1cml0eU9yaWdpbnMucmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbklkZW50
aWZpZXJzQ291bnQpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmlnaW5JZGVudGlm
aWVyc0NvdW50OyArK2kpIHsKKyAgICAgICAgUmVmUHRyPEFQSU9iamVjdD4gb3JpZ2luID0gV2Vi
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luSWRlbnRpZmllcnNbaV0pOwor
ICAgICAgICBpZiAoIW9yaWdpbikKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzZWN1
cml0eU9yaWdpbnMudW5jaGVja2VkQXBwZW5kKG9yaWdpbik7CisgICAgfQorCisgICAgY2FsbGJh
Y2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShJbW11dGFibGVBcnJheTo6YWRvcHQo
c2VjdXJpdHlPcmlnaW5zKS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eTo6Y2xlYXJDYWNoZUZvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiogb3JpZ2luKQor
eworICAgIGlmICghbV93ZWJDb250ZXh0LT5oYXNWYWxpZFByb2Nlc3MoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZvck9yaWdpbihvcmlnaW4tPnRvU3RyaW5nKCkp
LCAwKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpjbGVhckNhY2hl
Rm9yQWxsT3JpZ2lucygpCit7CisgICAgaWYgKCFtX3dlYkNvbnRleHQtPmhhc1ZhbGlkUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm47CisgICAgbV93ZWJDb250ZXh0LT5wcm9jZXNzKCktPnNlbmQo
TWVzc2FnZXM6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpDbGVhckNhY2hlRm9yQWxsT3JpZ2lu
cygpLCAwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNs
dWRlICJBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247Citj
bGFzcyBNZXNzYWdlSUQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJDb250
ZXh0OworY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CisKK3R5cGVkZWYgR2VuZXJpY0NhbGxiYWNr
PFdLQXJyYXlSZWY+IEFycmF5Q2FsbGJhY2s7CisKK2NsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3Qg
VHlwZSBBUElUeXBlID0gVHlwZUNhY2hlTWFuYWdlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAg
dmlydHVhbCB+V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbnZh
bGlkYXRlKCk7CisgICAgdm9pZCBjbGVhckNvbnRleHQoKSB7IG1fd2ViQ29udGV4dCA9IDA7IH0K
KworICAgIHZvaWQgZ2V0Q2FjaGVPcmlnaW5zKFBhc3NSZWZQdHI8QXJyYXlDYWxsYmFjaz4pOwor
ICAgIHZvaWQgY2xlYXJDYWNoZUZvck9yaWdpbihXZWJTZWN1cml0eU9yaWdpbiopOworICAgIHZv
aWQgY2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgor
ICAgIGV4cGxpY2l0IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOwor
CisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAg
ICAvLyBNZXNzYWdlIGhhbmRsZXJzLgorICAgIHZvaWQgZGlkR2V0Q2FjaGVPcmlnaW5zKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5JZGVudGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCk7
CisKKyAgICBXZWJDb250ZXh0KiBtX3dlYkNvbnRleHQ7CisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPEFycmF5Q2FsbGJhY2s+ID4gbV9hcnJheUNhbGxiYWNrczsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRGF0YWJhc2VNYW5hZ2VyUHJveHlfaApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
IHsKKyAgICBEaWRHZXRDYWNoZU9yaWdpbnMoVmVjdG9yPFdURjo6U3RyaW5nPiBvcmlnaW5JZGVu
dGlmaWVycywgdWludDY0X3QgY2FsbGJhY2tJRCkKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2
ICs0Nyw3IEBAIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0UHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOworY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKIGNs
YXNzIFdlYkNvbnRleHQ7CiBjbGFzcyBXZWJDcmVkZW50aWFsOwogY2xhc3MgV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHk7CkBAIC02OCw2ICs2OSw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhl
bnRpY2F0aW9uQ2hhbGwKIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNp
b25MaXN0ZW5lclJlZiwgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKQogV0tfQUREX0FQ
SV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSkKIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdFJlZiwgV2ViQmFja0Zvcndh
cmRMaXN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYsIFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0
UmVmLCBXZWJDb250ZXh0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ3JlZGVudGlhbFJlZiwgV2Vi
Q3JlZGVudGlhbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0RhdGFiYXNlTWFuYWdlclJlZiwgV2Vi
RGF0YWJhc2VNYW5hZ2VyUHJveHkpCkBAIC05Miw5ICs5NCw5IEBAIFdLX0FERF9BUElfTUFQUElO
RyhXS0luc3BlY3RvclJlZiwgV2ViSW4KIAogLyogRW51bSBjb252ZXJzaW9ucyAqLwogCi1pbmxp
bmUgQ2FjaGVNb2RlbCB0b0NhY2hlTW9kZWwoV0tDYWNoZU1vZGVsIHdrQ2FjaGVNb2RlbCkKK2lu
bGluZSBDYWNoZU1vZGVsIHRvQ2FjaGVNb2RlbChXS0NhY2hlTW9kZWwgV0tDYWNoZU1vZGVsKQog
ewotICAgIHN3aXRjaCAod2tDYWNoZU1vZGVsKSB7CisgICAgc3dpdGNoIChXS0NhY2hlTW9kZWwp
IHsKICAgICBjYXNlIGtXS0NhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjoKICAgICAgICAgcmV0dXJu
IENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjsKICAgICBjYXNlIGtXS0NhY2hlTW9kZWxEb2N1bWVu
dEJyb3dzZXI6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDYgKzE1OCwxMSBAQCB2b2lk
IFdLQ29udGV4dENsZWFyQXBwbGljYXRpb25DYWNoZShXS0NvCiAgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5jbGVhckFwcGxpY2F0aW9uQ2FjaGUoKTsKIH0KIAorV0tSZXNvdXJjZUNhY2hlTWFuYWdl
clJlZiBXS0NvbnRleHRHZXRSZXNvdXJjZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4
dFJlZikKK3sKKyAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5yZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5KCkpOworfQorCiBXS0RhdGFiYXNlTWFuYWdlclJlZiBXS0NvbnRleHRH
ZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCiB7CiAgICAgcmV0dXJu
IHRvQVBJKHRvSW1wbChjb250ZXh0UmVmKS0+ZGF0YWJhc2VNYW5hZ2VyUHJveHkoKSk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCShyZXZpc2lvbiA3
ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMyw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dENs
ZWFyQXBwbGljYXRpb24KIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFN0YXJ0TWVtb3J5U2FtcGxl
cihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tEb3VibGVSZWYgaW50ZXJ2YWwpOwogV0tfRVhQT1JU
IHZvaWQgV0tDb250ZXh0U3RvcE1lbW9yeVNhbXBsZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwog
CitXS19FWFBPUlQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBXS0NvbnRleHRHZXRSZXNvdXJj
ZUNhY2hlTWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tEYXRhYmFz
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0RGF0YWJhc2VNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250
ZXh0KTsKIFdLX0VYUE9SVCBXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBXS0NvbnRleHRHZXRHZW9s
b2NhdGlvbk1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFn
ZXIuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
UmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCIK
KyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKworI2lmZGVmIF9fQkxPQ0tTX18KKyNpbmNsdWRlIDxC
bG9jay5oPgorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdL
UmVzb3VyY2VDYWNoZU1hbmFnZXJHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b0FQSShXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpBUElUeXBlKTsKK30KKwordm9pZCBXS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgY2Fj
aGVNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0LCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyR2V0Q2Fj
aGVPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2spCit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJl
ZiktPmdldENhY2hlT3JpZ2lucyhBcnJheUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJh
Y2spKTsKK30KKwordm9pZCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyQ2xlYXJDYWNoZUZvck9yaWdp
bihXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdlclJlZiwgV0tTZWN1cml0eU9y
aWdpblJlZiBvcmlnaW5SZWYpCit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJlZiktPmNsZWFy
Q2FjaGVGb3JPcmlnaW4odG9JbXBsKG9yaWdpblJlZikpOworfQorCit2b2lkIFdLUmVzb3VyY2VD
YWNoZU1hbmFnZXJDbGVhckNhY2hlRm9yQWxsT3JpZ2lucyhXS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
UmVmIGNhY2hlTWFuYWdlclJlZikKK3sKKyAgICB0b0ltcGwoY2FjaGVNYW5hZ2VyUmVmKS0+Y2xl
YXJDYWNoZUZvckFsbE9yaWdpbnMoKTsgICAgCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hl
TWFuYWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyX2gKKyNkZWZpbmUgV0tSZXNvdXJjZUNhY2hlTWFu
YWdlcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3Bs
dXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyR2V0VHlwZUlEKCk7CisKK3R5cGVkZWYgdm9pZCAoKldLUmVzb3VyY2VDYWNo
ZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNGdW5jdGlvbikoV0tBcnJheVJlZiwgV0tFcnJvclJlZiwg
dm9pZCopOworV0tfRVhQT1JUIHZvaWQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlckdldENhY2hlT3Jp
Z2lucyhXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNvbnRleHRSZWYsIHZvaWQqIGNvbnRleHQs
IFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNGdW5jdGlvbiBmdW5jdGlvbik7
CisKK1dLX0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJDbGVhckNhY2hlRm9yT3Jp
Z2luKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgY2FjaGVNYW5nZXIsIFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luKTsKK1dLX0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJDbGVh
ckNhY2hlRm9yQWxsT3JpZ2lucyhXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuYWdl
cik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc4NzQ2KQorKysgU291cmNlL1dlYktp
dDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDUsNiArMjQ1LDE2IEBACiAJCTFDQThCOTU0MTI3Qzg5MTUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0
b3JNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzhFMkRBRDEyNzhDNUIyMDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yTWFjLm1tICovOyB9OwogCQky
OUNENTVBQTEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5Q0Q1NUE4MTI4
RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICovOyB9OwogCQky
OUNENTVBQjEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBOTEy
OEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW0gKi87IH07CisJ
CTMzMzY3NjJGMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYyQzEz
MEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovOyB9OworCQkz
MzM2NzYzMDEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMzY3NjJEMTMwQzk5
OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovOyB9OworCQkzMzM2NzYz
NTEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYzMjEzMEM5
OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJ
CTMzMzY3NjM2MTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYz
MzEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oICovOyB9
OworCQkzMzM2NzYzQTEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYz
ODEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi87IH07CisJ
CTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYzOTEzMEM5
OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJMzMzNjc2NTUxMzBDOUVDQTAwNkM5REUy
IC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMzY3NjUxMTMwQzlFQ0EwMDZD
OURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07
CisJCTMzMzY3NjU2MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MzM2NzY1MjEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdl
cy5oICovOyB9OworCQkzMzM2NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzY1MzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTMzMzY3
NjU4MTMwQzlFQ0IwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMzY3
NjU0MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCAqLzsgfTsKIAkJMzdGNjIzQjgxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3
MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyog
V2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1l
bnVDbGllbnRNYWMubW0gKi87IH07CiAJCTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJD
b250ZXh0TWVudUl0ZW1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhLmNwcCAqLzsgfTsKQEAgLTEwMjIsNiArMTAzMiwxOCBAQAogCQkyOUNENTVBODEyOEUy
OTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlDRDU1QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUwMEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdDJQcmVmaXguaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2MkMxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcDsgcGF0aCA9IFJlc291cmNlQ2FjaGUvV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MzM2NzYyRDEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaDsg
cGF0aCA9IFJlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2MkUxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBwYXRoID0gUmVzb3VyY2VDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMzMzNjc2MzIxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMz
MzY3NjMzMTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2MzQxMzBDOTlCMjAw
NkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2MzgxMzBDOTlEQzAwNkM5REUy
IC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMzMzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUmVzb3VyY2VDYWNo
ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2NTExMzBDOUVD
QTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IC9Vc2Vycy9icmlhbl93ZWluc3RlaW4vT3Bl
blNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1Zy9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKKwkJMzMzNjc2NTIxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oOyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVp
bi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OworCQkzMzM2NzY1MzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsg
cGF0aCA9IC9Vc2Vycy9icmlhbl93ZWluc3RlaW4vT3BlblNvdXJjZS9XZWJLaXRCdWlsZC9EZWJ1
Zy9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzMzM2NzY1
NDEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVpbi9PcGVuU291
cmNlL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07
CiAJCTM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25zLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRmluZE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51
Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
Q29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbURhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAyMyw2ICsyMDQ1LDE2IEBACiAJ
CQl0YWJXaWR0aCA9IDg7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTMzMzY3NjJCMTMwQzk5
NzgwMDZDOURFMiAvKiBSZXNvdXJjZUNhY2hlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJ
CQljaGlsZHJlbiA9ICgKKwkJCQkzMzM2NzYyQzEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTMzMzY3NjJEMTMwQzk5OTgwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oICovLAorCQkJCTMzMzY3NjJFMTMwQzk5OTgwMDZDOURF
MiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlu
YW1lID0gUmVzb3VyY2VDYWNoZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTUxMkY1ODg2MTJBODgzNDcwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbiAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0yMDY3LDYgKzIwOTksNyBAQAogCQkJ
CUJDMjA0RURGMTFDODNFNzIwMDhGMzM3NSAvKiBJbmplY3RlZEJ1bmRsZSAqLywKIAkJCQkxQTZG
QTAxQzExRTE1MjYzMDBEQjEzNzEgLyogbWFjICovLAogCQkJCTFBNkZCN0FBMTFFNjRCNDkwMERC
MTM3MSAvKiBQbHVnaW5zICovLAorCQkJCTMzMzY3NjJCMTMwQzk5NzgwMDZDOURFMiAvKiBSZXNv
dXJjZUNhY2hlICovLAogCQkJCUJDMDMyRDVEMTBGNDM3MjIwMDU4QzE1QSAvKiBXZWJDb3JlU3Vw
cG9ydCAqLywKIAkJCQlCQzAzMkQ1RTEwRjQzNzJCMDA1OEMxNUEgLyogV2ViUGFnZSAqLywKIAkJ
CQkxQTZGQTMxNTExRTM5MjM2MDBEQjEzNzEgLyogV2ViS2l0TWFpbi5jcHAgKi8sCkBAIC0yMjU4
LDYgKzIyOTEsOSBAQAogCQkJCUJDMTExQjBEMTEyRjVFNEYwMDMzN0JBQiAvKiBXZWJQcm9jZXNz
UHJveHkuY3BwICovLAogCQkJCUJDMDMyRENGMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNz
UHJveHkuaCAqLywKIAkJCQlCQ0VFN0FCMzEyODE3MDk1MDA5ODI3REEgLyogV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTMzMzY3NjMyMTMwQzk5QjIwMDZDOURFMiAvKiBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCAqLywKKwkJCQkzMzM2NzYzMzEzMEM5OUIyMDA2
QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oICovLAorCQkJCTMzMzY3NjM0
MTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluICovLAogCQkJCUJDODU4QTFGMTJDMDM1N0IwMEVERUIyRSAvKiBXZWJSZXNvdXJjZUxvYWRD
bGllbnQuY3BwICovLAogCQkJCUJDODU4QTFFMTJDMDM1N0IwMEVERUIyRSAvKiBXZWJSZXNvdXJj
ZUxvYWRDbGllbnQuaCAqLywKIAkJCQkxQTU5NEFCODExMkExRkI2MDA5REU3QzcgLyogV2ViVUlD
bGllbnQuY3BwICovLApAQCAtMjMzNSw2ICsyMzcxLDggQEAKIAkJCQk1MTJGNThGMzEyQTg4QTU0
MDA2Mjk1MzAgLyogV0tQcm90ZWN0aW9uU3BhY2UuY3BwICovLAogCQkJCTUxMkY1OEY0MTJBODhB
NTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25TcGFjZS5oICovLAogCQkJCTUxOEFDQUU5MTJBRUU2
QkIwMEIwNEI4MyAvKiBXS1Byb3RlY3Rpb25TcGFjZVR5cGVzLmggKi8sCisJCQkJMzMzNjc2Mzgx
MzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovLAorCQkJCTMz
MzY3NjM5MTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IEM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjgwMCw2
ICsyODM4LDEwIEBACiAJCQkJQkMzMDY2QkQxMjVBNDQyMTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NN
ZXNzYWdlcy5oICovLAogCQkJCUJDRUU3QUNDMTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNz
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUJDRUU3QUNEMTI4MTc5ODgwMDk4MjdE
QSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTMzMzY3NjUxMTMwQzlFQ0Ew
MDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJMzMzNjc2NTIxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
TWVzc2FnZXMuaCAqLywKKwkJCQkzMzM2NzY1MzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMzMzNjc2NTQx
MzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
ICovLAogCQkJKTsKIAkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKIAkJCXBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyOwpAQCAtMzE4OSw2ICszMjMxLDExIEBACiAJCQkJQkNBNTZBNjkx
MkY5QzlBRDAwQzU2NkM3IC8qIFdLR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQzg2RkY0MTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDODcwMkQxMzBCNDlBMjAwMkMxMjU3IC8qIFdlYlBsdWdp
blNpdGVEYXRhTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzMzNjc2MzAxMzBDOTk5ODAw
NkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkz
MzM2NzYzNjEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMzMzNjc2M0IxMzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzMzY3NjU2MTMwQzlFQ0EwMDZD
OURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzMzM2NzY1ODEzMEM5RUNCMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTM2NjgsNiArMzcxNSwxMSBAQAogCQkJ
CTY1OUM1NTFFMTMwMDA2NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VSZXNvdXJjZUxv
YWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDODZGRjMxMzBCNDZEMzAwMkMxMjU3
IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzg3
MDJFMTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMzMzNjc2MkYxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMzY3NjM1MTMwQzk5QjIwMDZDOURF
MiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTMzMzY3NjNBMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMzMzY3NjU1MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMzM2
NzY1NzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUg
IlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFz
ZU1hbmFnZXIuaCIKQEAgLTUwLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Nyb3NzT3Jp
Z2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0xhbmd1YWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNo
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdy
b3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgpAQCAtNTEwLDYgKzUx
MiwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VD
bGFzc1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyPigpKSB7CisgICAgICAgIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2Fn
ZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlcj4oKSkgewogICAg
ICAgICBXZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZCgpLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjIzLDYg
KzYzMCw4IEBAIHZvaWQgV2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNhY2hlcygpCiAgICAgc2V0
Q2FjaGVNb2RlbChDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXIpOwogICAgIHNldENhY2hlTW9kZWwo
Y2FjaGVNb2RlbCk7CiAKKyAgICBtZW1vcnlDYWNoZSgpLT5ldmljdFJlc291cmNlcygpOworCiAg
ICAgLy8gRW1wdHkgdGhlIGNyb3NzLW9yaWdpbiBwcmVmbGlnaHQgY2FjaGUuCiAgICAgQ3Jvc3NP
cmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2hhcmVkKCkuZW1wdHkoKTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTQsNiArMTE0LDggQEAgcHVibGljOgogICAgIC8vIEdlb2xvY2F0aW9uCiAgICAgV2ViR2VvbG9j
YXRpb25NYW5hZ2VyJiBnZW9sb2NhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX2dlb2xvY2F0aW9u
TWFuYWdlcjsgfQogCisgICAgdm9pZCBjbGVhclJlc291cmNlQ2FjaGVzKCk7CisKIHByaXZhdGU6
CiAgICAgV2ViUHJvY2VzcygpOwogCkBAIC0xMzksNyArMTQxLDYgQEAgcHJpdmF0ZToKICAgICBz
dGF0aWMgdm9pZCBjYWxjdWxhdGVDYWNoZVNpemVzKENhY2hlTW9kZWwgY2FjaGVNb2RlbCwgdWlu
dDY0X3QgbWVtb3J5U2l6ZSwgdWludDY0X3QgZGlza0ZyZWVTaXplLAogICAgICAgICB1bnNpZ25l
ZCYgY2FjaGVUb3RhbENhcGFjaXR5LCB1bnNpZ25lZCYgY2FjaGVNaW5EZWFkQ2FwYWNpdHksIHVu
c2lnbmVkJiBjYWNoZU1heERlYWRDYXBhY2l0eSwgZG91YmxlJiBkZWFkRGVjb2RlZERhdGFEZWxl
dGlvbkludGVydmFsLAogICAgICAgICB1bnNpZ25lZCYgcGFnZUNhY2hlQ2FwYWNpdHksIHVuc2ln
bmVkIGxvbmcmIHVybENhY2hlTWVtb3J5Q2FwYWNpdHksIHVuc2lnbmVkIGxvbmcmIHVybENhY2hl
RGlza0NhcGFjaXR5KTsKLSAgICB2b2lkIGNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2b2lk
IHBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hlcygpOwogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlv
bkNhY2hlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNo
ZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9X
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYgV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXI6OnNoYXJlZCgpCit7CisgICAgc3RhdGljIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
JiBzaGFyZWQgPSAqbmV3IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOworICAgIHJldHVybiBzaGFy
ZWQ7Cit9CisKK1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
cigpCit7Cit9CisKK1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjp+V2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXIoKQoreworfQorCit2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdl
SUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAg
ICBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1l
c3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKworCit2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
OjpnZXRDYWNoZU9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCkgY29uc3QKK3sKKyAgICBIYXNo
U2V0PFN0cmluZz4gb3JpZ2luczsKKyAgICBtZW1vcnlDYWNoZSgpLT5nZXRPcmlnaW5zV2l0aENh
Y2hlKG9yaWdpbnMpOworCisgICAgVmVjdG9yPFN0cmluZz4gaWRlbnRpZmllcnM7CisgICAgY29w
eVRvVmVjdG9yKG9yaWdpbnMsIGlkZW50aWZpZXJzKTsKKworICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eTo6RGlkR2V0Q2FjaGVPcmlnaW5zKGlkZW50aWZpZXJzLCBjYWxsYmFja0lEKSwgMCk7Cit9
CisKK3ZvaWQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmNsZWFyQ2FjaGVGb3JPcmlnaW4oY29u
c3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpIGNvbnN0Cit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5TdHJp
bmcpOworICAgIGlmICghb3JpZ2luKQorICAgICAgICByZXR1cm47CisKKyAgICBtZW1vcnlDYWNo
ZSgpLT5yZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKG9yaWdpbi5nZXQoKSk7Cit9CisKK3ZvaWQg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKCkgY29uc3QK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jbGVhclJlc291cmNlQ2FjaGVzKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9S
ZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJfaAorI2Rl
ZmluZSBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcl9oCisKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xh
c3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1lc3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcik7CitwdWJsaWM6CisgICAgc3RhdGljIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyJiBzaGFyZWQoKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIo
KTsKKyAgICB2aXJ0dWFsIH5XZWJSZXNvdXJjZUNhY2hlTWFuYWdlcigpOworCisgICAgLy8gSW1w
bGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKworICAgIHZvaWQgZ2V0Q2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGNvbnN0OworICAgIHZvaWQgY2xlYXJDYWNoZUZvck9yaWdpbihjb25zdCBTdHJpbmcm
IG9yaWdpbikgY29uc3Q7CisgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lucygpIGNvbnN0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyIHsKKyAgICB2b2lk
IEdldENhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIHZvaWQgQ2xlYXJDYWNo
ZUZvck9yaWdpbihXVEY6OlN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQorICAgIHZvaWQgQ2xlYXJD
YWNoZUZvckFsbE9yaWdpbnMoKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
dmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagko
cmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTEzNDIsNiArMTM0MiwyMiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJPC9GaWx0ZXI+CisgICAgICAgICAgICA8RmlsdGVyCisgICAgICAgICAgICAgICAgTmFtZT0i
UmVzb3VyY2VDYWNoZSIKKyAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGVcV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlXFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGVcV2ViUmVzb3VyY2VDYWNoZU1hbmFn
ZXIubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisgICAgICAgICAgICA8L0ZpbHRl
cj4KIAkJCTxGaWx0ZXIKIAkJCQlOYW1lPSJXZWJDb3JlU3VwcG9ydCIKIAkJCQk+CkBAIC0yMjU4
LDYgKzIyNzQsMTggQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJCYWNrRm9y
d2FyZExpc3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVBy
b2Nlc3NcV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkNvbnRleHQuY3BwIgogCQkJCT4KQEAg
LTI1NjAsNiArMjU4OCwxNCBAQAogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tCYWNrRm9yd2FyZExpc3RJdGVtLmgiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KKyAgICAg
ICAgICAgICAgICAgICAgPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+CisJ
CQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS1Jlc291
cmNlQ2FjaGVNYW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKIAkJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5jcHAiCiAJCQkJ
CQk+CkBAIC0zMjk0LDYgKzMzMzAsMjIgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcRHJhd2luZ0Fy
ZWFQcm94eU1lc3NhZ2VzLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDb250ZXh0
TWVzc2FnZVJlY2VpdmVyLmNwcCIKIAkJCQk+CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0MkNvbW1vbi52c3Byb3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDb21tb24udnNwcm9wcwkod29ya2luZyBjb3B5KQpAQCAtNiw3ICs2LDcgQEAKIAk+
CiAJPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJQWRkaXRpb25hbEluY2x1ZGVE
aXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cY2cm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBDJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFx3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJ
XGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0JnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xM
YXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5zJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdl
YlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3Rl
ZEJ1bmRsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRC
dW5kbGVcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVj
dGVkQnVuZGxlXERPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5q
ZWN0ZWRCdW5kbGVcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQ
bHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zXE5l
dHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1x3aW4mcXVvdDs7
JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVv
dDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRl
XHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVh
ZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlw
dENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIK
KwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9y
bVxDb3JlSVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFNoYXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcQVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJ
UENTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xBUElcQ1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNw
cCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEF1
dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xEb3du
bG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fkc1xj
ZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcR2VvbG9jYXRpb24mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIp
XEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJk
aW5nSGVhZGVycyZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VC
S0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNl
UHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0
MlByZWZpeC5oIgpJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5tYWtl
CShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVk
Lm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDcgQEAgYWxsOgogICAgIHhjb3B5IC95
IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIu
aCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAv
eSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0LmgiICIlQ29uZmlndXJh
dGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIgIiVDb25maWd1cmF0aW9uQnVpbGRE
aXIlXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxD
XFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1
ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4
dC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5
IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0UHJpdmF0ZS5oIiAiJUNvbmZpZ3Vy
YXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tDcmVkZW50aWFsLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNs
dWRlXFdlYktpdDIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82762</attachid>
            <date>2011-02-17 00:35:59 -0800</date>
            <delta_ts>2011-02-17 11:18:14 -0800</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>web_cache_manager.patch</filename>
            <type>text/plain</type>
            <size>78348</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjcxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTYgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdDI6IE5lZWQgYSB3YXkgdG8gbWFuYWdlIHRo
ZSBXZWJDb3JlIENhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUwMQorICAgICAgICAKKyAgICAgICAgQWRkIGEgd2F5IHRvIGdldCBhIHNldCBv
ZiBhbGwgb2YgdGhlIG9yaWdpbnMgdGhhdCBoYXZlIGVudHJpZXMgaW4gdGhlCisgICAgICAgIFdl
YkNvcmUgbWVtb3J5IGNhY2hlLCBhbmQgYSBtZXRob2QgdG8gcmVtb3ZlIGFsbCByZXNvdXJjZXMg
ZnJvbSB0aGUgbWVtb3J5CisgICAgICAgIGNhY2hlIGZyb20gYSBnaXZlbiBzZWN1cml0eSBvcmln
aW4uCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEFkZCBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGJlIGV4cG9ydGVkLgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1v
cnlDYWNoZTo6cmVtb3ZlUmVzb3VyY2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmg6CisKIDIwMTEtMDItMTUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg3NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw5IEBAIF9fWk43V2ViQ29y
ZTExSGlzdG9yeUl0ZW1EMUV2CiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTFzZXREaXNhYmxl
ZEViCiBfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTNnZXRTdGF0aXN0aWNzRXYKIF9fWk43V2Vi
Q29yZTExTWVtb3J5Q2FjaGUxM3NldENhcGFjaXRpZXNFampqCitfX1pON1dlYkNvcmUxMU1lbW9y
eUNhY2hlMTRldmljdFJlc291cmNlc0V2CitfX1pON1dlYkNvcmUxMU1lbW9yeUNhY2hlMTlnZXRP
cmlnaW5zV2l0aENhY2hlRVJOM1dURjdIYXNoU2V0SU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlP
cmlnaW5FRUVOU18xOFNlY3VyaXR5T3JpZ2luSGFzaEVOUzFfMTBIYXNoVHJhaXRzSVM1X0VFRUUK
K19fWk43V2ViQ29yZTExTWVtb3J5Q2FjaGUyNXJlbW92ZVJlc291cmNlc1dpdGhPcmlnaW5FUE5T
XzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVyMTlzY3JvbGxSZWN0
VG9WaXNpYmxlRVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pO
N1dlYkNvcmUxMWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3Jl
MTFtZW1vcnlDYWNoZUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL01lbW9yeUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5j
bHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00NzQsNiArNDc1LDMxIEBAIHZvaWQgTWVtb3J5Q2FjaGU6
OnJlc291cmNlQWNjZXNzZWQoQ2FjaGUKICAgICBpbnNlcnRJbkxSVUxpc3QocmVzb3VyY2UpOwog
fQogCit2b2lkIE1lbW9yeUNhY2hlOjpyZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCit7CisgICAgVmVjdG9yPENhY2hlZFJlc291cmNlKj4gcmVzb3VyY2Vz
V2l0aE9yaWdpbjsKKworICAgIENhY2hlZFJlc291cmNlTWFwOjppdGVyYXRvciBlID0gbV9yZXNv
dXJjZXMuZW5kKCk7CisgICAgZm9yIChDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBlOyArK2l0KSB7CisgICAgICAgIENhY2hlZFJlc291
cmNlKiByZXNvdXJjZSA9IGl0LT5zZWNvbmQ7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gcmVzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhyZXNv
dXJjZS0+dXJsKCkpOworICAgICAgICBpZiAoIXJlc291cmNlT3JpZ2luKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIGlmIChyZXNvdXJjZU9yaWdpbi0+ZXF1YWwob3JpZ2luKSkKKyAg
ICAgICAgICAgIHJlc291cmNlc1dpdGhPcmlnaW4uYXBwZW5kKHJlc291cmNlKTsKKyAgICB9CisK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc291cmNlc1dpdGhPcmlnaW4uc2l6ZSgpOyAr
K2kpCisgICAgICAgIHJlbW92ZShyZXNvdXJjZXNXaXRoT3JpZ2luW2ldKTsKK30KKwordm9pZCBN
ZW1vcnlDYWNoZTo6Z2V0T3JpZ2luc1dpdGhDYWNoZShTZWN1cml0eU9yaWdpblNldCYgb3JpZ2lu
cykKK3sKKyAgICBDYWNoZWRSZXNvdXJjZU1hcDo6aXRlcmF0b3IgZSA9IG1fcmVzb3VyY2VzLmVu
ZCgpOworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJj
ZXMuYmVnaW4oKTsgaXQgIT0gZTsgKytpdCkKKyAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShLVVJMKEtVUkwoKSwgaXQtPnNlY29uZC0+dXJsKCkpKSk7Cit9CisKIHZv
aWQgTWVtb3J5Q2FjaGU6OnJlbW92ZUZyb21MaXZlRGVjb2RlZFJlc291cmNlc0xpc3QoQ2FjaGVk
UmVzb3VyY2UqIHJlc291cmNlKQogewogICAgIC8vIElmIHdlJ3ZlIG5ldmVyIGJlZW4gYWNjZXNz
ZWQsIHRoZW4gd2UncmUgYnJhbmQgbmV3IGFuZCBub3QgaW4gYW55IGxpc3QuCkBAIC02MjIsNiAr
NjQ4LDE1IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnNldERpc2FibGVkKGJvb2wgZGlzYWIKICAgICB9
CiB9CiAKK3ZvaWQgTWVtb3J5Q2FjaGU6OmV2aWN0UmVzb3VyY2VzKCkKK3sKKyAgICBpZiAoZGlz
YWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0RGlzYWJsZWQodHJ1ZSk7CisgICAg
c2V0RGlzYWJsZWQoZmFsc2UpOworfQorCiAjaWZuZGVmIE5ERUJVRwogdm9pZCBNZW1vcnlDYWNo
ZTo6ZHVtcFN0YXRzKCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5oCShyZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9NZW1vcnlDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNzIENh
Y2hlZENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKIGNsYXNzIENhY2hlZFJl
c291cmNlTG9hZGVyOwogY2xhc3MgS1VSTDsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworc3RydWN0
IFNlY3VyaXR5T3JpZ2luSGFzaDsKIAogLy8gVGhpcyBjYWNoZSBob2xkcyBzdWJyZXNvdXJjZXMg
dXNlZCBieSBXZWIgcGFnZXM6IGltYWdlcywgc2NyaXB0cywgc3R5bGVzaGVldHMsIGV0Yy4KIApA
QCAtMTI1LDYgKzEyNyw4IEBAIHB1YmxpYzoKICAgICAvLyBzdGlsbCBsaXZlIG9uIGlmIHRoZXkg
YXJlIHJlZmVyZW5jZWQgYnkgc29tZSBXZWIgcGFnZSB0aG91Z2guCiAgICAgdm9pZCBzZXREaXNh
YmxlZChib29sKTsKICAgICBib29sIGRpc2FibGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxl
ZDsgfQorCisgICAgdm9pZCBldmljdFJlc291cmNlcygpOwogICAgIAogICAgIHZvaWQgc2V0UHJ1
bmVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3BydW5lRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAg
ICB2b2lkIHBydW5lKCkKQEAgLTE2Myw2ICsxNjcsMTAgQEAgcHVibGljOgogICAgIAogICAgIHZv
aWQgcmVzb3VyY2VBY2Nlc3NlZChDYWNoZWRSZXNvdXJjZSopOwogCisgICAgdHlwZWRlZiBIYXNo
U2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNlY3VyaXR5T3JpZ2luSGFzaD4gU2VjdXJpdHlP
cmlnaW5TZXQ7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZXNXaXRoT3JpZ2luKFNlY3VyaXR5T3Jp
Z2luKik7CisgICAgdm9pZCBnZXRPcmlnaW5zV2l0aENhY2hlKFNlY3VyaXR5T3JpZ2luU2V0JiBv
cmlnaW5zKTsKKwogcHJpdmF0ZToKICAgICBNZW1vcnlDYWNoZSgpOwogICAgIH5NZW1vcnlDYWNo
ZSgpOyAvLyBOb3QgaW1wbGVtZW50ZWQgdG8gbWFrZSBzdXJlIG5vYm9keSBhY2NpZGVudGFsbHkg
Y2FsbHMgZGVsZXRlIC0tIFdlYkNvcmUgZG9lcyBub3QgZGVsZXRlIHNpbmdsZXRvbnMuCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3ODY3MSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg3IEBACisyMDExLTAyLTE2ICBCcmlhbiBXZWluc3Rl
aW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyOiBOZWVkIGEgd2F5IHRvIG1hbmFnZSB0aGUgV2Vi
Q29yZSBDYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTQ1MDEKKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCBhIFdlYktpdDIgQVBJIHRvIG1h
bmFnZSB0aGUgV2ViQ29yZSBtZW1vcnkgY2FjaGUuIFRoaXMgQVBJIGV4cG9zZXMgdGhyZWUgZnVu
Y3Rpb25zOgorICAgICAgICAKKyAgICAgICAgMSkgQSBtZXRob2QgdG8gZ2V0IGEgbGlzdCBvZiBh
bGwgc2VjdXJpdHkgb3JpZ2lucyB0aGF0IGhhdmUgZW50cmllcyBpbiB0aGUgV2ViQ29yZSBtZW1v
cnkgY2FjaGUuCisgICAgICAgIDIpIEEgbWV0aG9kIHRvIHJlbW92ZSBhbGwgZW50cmllcyBpbiB0
aGUgV2ViQ29yZSBtZW1vcnkgY2FjaGUgZnJvbSBhIFNlY3VyaXR5T3JpZ2luLgorICAgICAgICAz
KSBBIG1ldGhvZCB0byByZW1vdmUgYWxsIGVudHJpZXMgZnJvbSB0aGUgV2ViQ29yZSBtZW1vcnkg
Y2FjaGUuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oOiBBZGQgdHdv
IG5ldyBNZXNzYWdlQ2xhc3Nlcy4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6Cisg
ICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOiBBZGQgYSBDYWNoZU1hbmFnZXIgdHlwZS4KKyAg
ICAgICAgKiBTaGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaDogVHlwZWRlZiBXS0NhY2hlTWFuYWdl
clJlZi4KKyAgICAgICAgKFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJp
bmcpOiBDcmVhdGVzIGEgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4gdXNpbmcgCisgICAgICAgICAg
ICBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZy4KKyAgICAgICAgKFdlYktpdDo6V2Vi
U2VjdXJpdHlPcmlnaW46OnRvU3RyaW5nKTogQ2FsbHMgdGhyb3VnaCB0byBTZWN1cml0eU9yaWdp
bjo6dG9TdHJpbmcuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ2FjaGVNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS0NhY2hlTWFuYWdlckdldFR5cGVJRCk6IFJldHVybnMgdGhlIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyUHJveHkgdHlwZS4KKyAgICAgICAgKFdLQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmln
aW5zKTogQ2FsbHMgdGhyb3VnaCB0byBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpnZXRD
YWNoZU9yaWdpbnMuCisgICAgICAgIChjYWxsR2V0Q2FjaGVPcmlnaW5zQmxvY2tCbG9ja0FuZERp
c3Bvc2UpOgorICAgICAgICAoV0tDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdpbnNfYik6CisgICAg
ICAgIChXS0NhY2hlTWFuYWdlckRlbGV0ZUNhY2hlRm9yT3JpZ2luKTogQ2FsbHMgdGhyb3VnaCB0
byBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkZWxldGVDYWNoZUZvck9yaWdpbi4KKyAg
ICAgICAgKFdLQ2FjaGVNYW5hZ2VyRGVsZXRlQWxsQ2FjaGUpOiBDYWxscyB0aHJvdWdoIHRvIFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmRlbGV0ZUFsbENhY2hlLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NhY2hlTWFuYWdlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0R2V0Q2FjaGVNYW5h
Z2VyKTogQ2FsbHMgdG8gZ2V0IHRoZSBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaDoKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNyZWF0ZSk6IENhbGxzIHRocm91Z2gg
dG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KTogSW5pdGlhbGl6ZSB0aGUg
bV93ZWJDb250ZXh0IHZhcmlhYmxlLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5Ojp+V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUpOiBJbnZhbGlk
YXRlIHRoZSBjYWxsYmFjayBtYXAuCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyUHJveHk6OmdldENhY2hlT3JpZ2lucyk6IENhbGwgdGhyb3VnaCB0byB0aGUgd2ViIHBy
b2Nlc3MgdG8gZ2V0IHRoZSBjYWNoZQorICAgICAgICAgICAgb3JpZ2lucy4KKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGlkR2V0Q2FjaGVPcmlnaW5zKTog
Q2FsbCB0aGUgY2FsbGJhY2suCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHk6OmRlbGV0ZUNhY2hlRm9yT3JpZ2luKTogQ2FsbCB0aHJvdWdoIHRvIHRoZSB3ZWIg
cHJvY2VzcyB0byBkZWxldGUgY2FjaGUKKyAgICAgICAgICAgIGZvciB0aGUgZ2l2ZW4gb3JpZ2lu
LiAKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6ZGVsZXRl
QWxsQ2FjaGUpOiBDYWxsIHRocm91Z2ggdG8gdGhlIHdlYiBwcm9jZXNzIHRvIGRlbGV0ZSBhbGwg
b2YgdGhlIGNhY2hlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OldlYkNvbnRleHQp
OiBJbml0aWFsaXplIG5ldyBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJLaXQ6OldlYkNv
bnRleHQ6On5XZWJDb250ZXh0KTogIEludmFsaWRhdGVzIG5ldyBtZW1iZXIgdmFyaWFibGUuCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdlKTogUGFzc2VzIGNh
Y2hlIG1lc3NhZ2VzIHRvIHRoZSBjYWNoZSBtYW5hZ2VyLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNhY2hlTWFuYWdlclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6IEFkZCBhIG5ldyBt
ZXNzYWdlIGNsYXNzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlcjo6c2hhcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXI6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXI6On5XZWJSZXNvdXJjZUNhY2hlTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZSk6IENh
bGxzIHRocm91Z2ggdG8gZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZS4K
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmdldENhY2hlT3JpZ2lu
cyk6IEdldHMgYSBsaXN0IG9mIG9yaWdpbnMgd2l0aCBjYWNoZSBlbnRyaWVzIGZyb20gdGhlIG1l
bW9yeQorICAgICAgICAgICAgY2FjaGUsIGFuZCBwdXRzIHRoZW0gaW50byBhIHZlY3RvciB0byBz
ZW5kIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlcjo6ZGVsZXRlQ2FjaGVGb3JPcmlnaW4pOiBDYWxscyB0aHJvdWdoIHRvIG1lbW9yeUNh
Y2hlIHRvIGRlbGV0ZSBhbGwgY2FjaGUgZW50cmllcworICAgICAgICAgICAgZnJvbSBhIGdpdmVu
IG9yaWdpbi4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OmRlbGV0
ZUFsbENhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL01lbW9yeUNhY2hlL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTWVtb3J5Q2FjaGUv
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjbGVhclJl
c291cmNlQ2FjaGVzKTogVGVsbCB0aGUgbWVtb3J5IGNhY2hlIHRvIGV2aWN0IGl0cyByZXNvdXJj
ZXMuIFRoaXMgd2FzIGRvbmUgb24gV2ViS2l0MSwgCisgICAgICAgICAgICBidXQgbm90IFdlYktp
dDIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIAorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgbmV3IGZpbGVzLgor
ICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajogRGl0dG8uCisgICAgICAgICogd2luL1dlYktp
dDJDb21tb24udnNwcm9wczogQWRkZWQgbmV3IGluY2x1ZGUgZGlyZWN0b3J5LgorICAgICAgICAq
IHdpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2U6IEFkZGVkIG5ldyBoZWFkZXIuCisKIDIwMTEtMDIt
MTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQko
cmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL0dl
b2xvY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvUGx1Z2lucyBcCisgICAgJChX
ZWJLaXQyKS9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUgXAogICAgICQoV2ViS2l0MikvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydCBcCiAgICAgJChXZWJLaXQyKS9XZWJQcm9jZXNzL1dlYlBhZ2Ug
XAogICAgICQoV2ViS2l0MikvV2ViUHJvY2VzcyBcCkBAIC01Niw2ICs1Nyw4IEBAIE1FU1NBR0Vf
UkVDRUlWRVJTID0gXAogICAgIFdlYlByb2Nlc3MgXAogICAgIFdlYlByb2Nlc3NDb25uZWN0aW9u
IFwKICAgICBXZWJQcm9jZXNzUHJveHkgXAorICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyIFwK
KyAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5IFwKICMKIAogU0NSSVBUUyA9IFwKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnBybwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcm8JKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNl
L1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJvCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw3
IEBAIFZQQVRIID0gXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAogICAgIFdlYlBy
b2Nlc3MvR2VvbG9jYXRpb24gXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucyBcCisgICAgV2ViUHJv
Y2Vzcy9SZXNvdXJjZUNhY2hlIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0IFwKICAg
ICBXZWJQcm9jZXNzL1dlYlBhZ2UgXAogICAgIFdlYlByb2Nlc3MgXApAQCAtMTAzLDcgKzEwNCw5
IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBc
CiAgICAgV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBcCiAgICAgV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gXAotICAgIFdlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorICAgIFdlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBcCisgICAgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVz
c2FnZXMuaW4gXAorICAgIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
IAogU0NSSVBUUyA9IFwKICAgICAkJFBXRC9TY3JpcHRzL2dlbmVyYXRlLW1lc3NhZ2UtcmVjZWl2
ZXIucHkgXApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dl
YktpdDIvV2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsNyBAQCBXRUJL
SVQyX0lOQ0xVREVQQVRIID0gXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUgXAogICAg
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jIFwKKyAgICBXZWJQcm9jZXNzL01lbW9yeUNhY2hlIFwKICAgICBXZWJQcm9j
ZXNzL1BsdWdpbnMgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydCBcCkBAIC0xNzYsNiArMTc3LDggQEAgV0VCS0lUMl9HRU5F
UkFURURfSEVBREVSUyA9IFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1Bs
dWdpblByb2Nlc3NNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNf
RElSL1BsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggXAogICAgICQkV0VCS0lUMl9HRU5FUkFU
RURfU09VUkNFU19ESVIvUGx1Z2luUHJveHlNZXNzYWdlcy5oIFwKKyAgICAkJFdFQktJVDJfR0VO
RVJBVEVEX1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCisg
ICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9X
ZWJDb250ZXh0TWVzc2FnZXMuaCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJ
Ui9XZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlcy5oIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCkBAIC0xOTYs
NiArMTk5LDggQEAgV0VCS0lUMl9HRU5FUkFURURfU09VUkNFUyA9IFwKICAgICAkJFdFQktJVDJf
R0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
ICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1BsdWdpblByb2Nlc3NQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgXAogICAgICQkV0VCS0lUMl9HRU5FUkFURURfU09VUkNFU19ESVIv
UGx1Z2luUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKyAgICAkJFdFQktJVDJfR0VORVJBVEVE
X1NPVVJDRVNfRElSL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBc
CisgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQyX0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUi9XZWJDb250ZXh0TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAgICAgJCRXRUJLSVQy
X0dFTkVSQVRFRF9TT1VSQ0VTX0RJUi9XZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKICAgICAkJFdFQktJVDJfR0VORVJBVEVEX1NPVVJDRVNfRElSL1dlYkRhdGFiYXNlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCkBAIC0yNjMsNiArMjY4LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0YS5oIFwKICAgICBTaGFyZWQv
UHJpbnRJbmZvLmggXAogICAgIFNoYXJlZC9TYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIFwK
KyAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggXAogICAgIFNoYXJlZC9TZXNzaW9uU3Rh
dGUuaCBcCiAgICAgU2hhcmVkL1N0cmluZ1BhaXJWZWN0b3IuaCBcCiAgICAgU2hhcmVkL1VzZXJN
ZXNzYWdlQ29kZXJzLmggXApAQCAtMjk4LDYgKzMwNCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAogICAg
IFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NyZWRlbnRpYWwuaCBcCkBAIC0zNTQsNiArMzYxLDcgQEAgSEVBREVSUyArPSBcCiAgICAg
VUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAogICAgIFVJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVh
UHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaCBcCisgICAgVUlQ
cm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dE1lbnVQcm94eS5oIFwKQEAgLTQxMiw2ICs0
MjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCBcCisgICAgV2ViUHJvY2Vzcy9N
ZW1vcnlDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvSlNOUE9iamVjdC5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBK
U09iamVjdC5oIFwKQEAgLTQ5Myw2ICs1MDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQv
T3JpZ2luQW5kRGF0YWJhc2VzLmNwcCBcCiAgICAgU2hhcmVkL1BsYXRmb3JtUG9wdXBNZW51RGF0
YS5jcHAgXAogICAgIFNoYXJlZC9QcmludEluZm8uY3BwIFwKKyAgICBTaGFyZWQvU2VjdXJpdHlP
cmlnaW5EYXRhLmNwcCBcCiAgICAgU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAgXAogICAgIFNoYXJl
ZC9WaXNpdGVkTGlua1RhYmxlLmNwcCBcCiAgICAgU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0uY3BwIFwKQEAgLTUyOCw2ICs1MzgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VD
YWNoZU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS0RhdGFiYXNlTWFuYWdlci5jcHAgXApAQCAtNTc0LDYgKzU4NSw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNz
L1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBc
CisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBV
SVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBcCiAgICAgVUlQcm9j
ZXNzL1dlYkNvbnRleHRNZW51UHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViRGF0YWJhc2VN
YW5hZ2VyUHJveHkuY3BwIFwKQEAgLTY0Nyw2ICs2NTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZVF0
LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9NZW1vcnlDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
ci5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwIFwKICAgICBX
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgXApJbmRleDogU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCShyZXZpc2lvbiA3ODUwMSkK
KysrIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDYgKzM5LDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VD
bGFzc0RyYXdpbmdBcmVhLAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhTGVnYWN5LAogICAg
IE1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlLAorICAgIE1lc3NhZ2VDbGFzc1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkRhdGFiYXNlTWFuYWdlciwKICAgICBN
ZXNzYWdlQ2xhc3NXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NX
ZWJJbnNwZWN0b3IsCkBAIC00OSw2ICs1MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBN
ZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhUHJv
eHksCiAgICAgTWVzc2FnZUNsYXNzRHJhd2luZ0FyZWFQcm94eUxlZ2FjeSwKKyAgICBNZXNzYWdl
Q2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNv
bnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xh
c3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eSwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0
LmgJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gVUlQ
cm9jZXNzIHR5cGVzCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3QsCiAgICAgICAgIFR5cGVC
YWNrRm9yd2FyZExpc3RJdGVtLAorICAgICAgICBUeXBlQ2FjaGVNYW5hZ2VyLAogICAgICAgICBU
eXBlQ29udGV4dCwKICAgICAgICAgVHlwZURhdGFiYXNlTWFuYWdlciwKICAgICAgICAgVHlwZURv
d25sb2FkLApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0
YS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2VjdXJpdHlPcmln
aW5EYXRhLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKworI2lu
Y2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgU2VjdXJpdHlPcmlnaW5EYXRhOjplbmNv
ZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXItPmVuY29kZShDb3JlSVBDOjpJbihwcm90b2NvbCwgaG9zdCwgcG9ydCkpOworfQorCitib29s
IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVj
b2RlciwgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbkRhdGEpCit7CisgICAgcmV0
dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpPdXQoc2VjdXJpdHlPcmlnaW5EYXRhLnByb3Rv
Y29sLCBzZWN1cml0eU9yaWdpbkRhdGEuaG9zdCwgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
U2VjdXJpdHlPcmlnaW5EYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L1NlY3VyaXR5T3JpZ2luRGF0YS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBTZWN1cml0eU9yaWdpbkRhdGFfaAorI2RlZmluZSBTZWN1cml0
eU9yaWdpbkRhdGFfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBDb3JlSVBDIHsKKyAgICBjbGFzcyBBcmd1bWVudERlY29kZXI7CisgICAgY2xhc3MgQXJn
dW1lbnRFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YSB7CisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikg
Y29uc3Q7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlcios
IFNlY3VyaXR5T3JpZ2luRGF0YSYpOworCisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBzZW5k
aW5nIG1vcmUgc3RhdGUgYWNyb3NzIHRoZSB3aXJlIHRoYW4ganVzdCB0aGUgcHJvdG9jb2wsCisg
ICAgLy8gaG9zdCwgYW5kIHBvcnQuCisKKyAgICBTdHJpbmcgcHJvdG9jb2w7CisgICAgU3RyaW5n
IGhvc3Q7CisgICAgaW50IHBvcnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFNlY3VyaXR5T3JpZ2luRGF0YV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViU2VjdXJpdHlPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTAgKzUyLDE5
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZWN1cml0eU9yaWdp
bihzZWN1cml0eU9yaWdpbi5yZWxlYXNlKCkpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJTZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKKyAgICB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4gPSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhz
dHJpbmcpOworICAgICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKQorICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViU2VjdXJpdHlPcmlnaW4oc2VjdXJp
dHlPcmlnaW4ucmVsZWFzZSgpKSk7CisgICAgfQorCiAgICAgY29uc3QgU3RyaW5nIHByb3RvY29s
KCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+cHJvdG9jb2woKTsgfQogICAgIGNv
bnN0IFN0cmluZyBob3N0KCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+aG9zdCgp
OyB9CiAgICAgdW5zaWduZWQgc2hvcnQgcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlP
cmlnaW4tPnBvcnQoKTsgfQogCisgICAgY29uc3QgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKTsgfQogICAgIGNvbnN0IFN0cmluZyBk
YXRhYmFzZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5kYXRh
YmFzZUlkZW50aWZpZXIoKTsgfQogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDcgQEAgdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNhdAogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2Fy
ZExpc3QqIFdLQmFja0ZvcndhcmRMaXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tCYWNrRm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyKiBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0Nv
bnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0NyZWRlbnRpYWwqIFdLQ3Jl
ZGVudGlhbFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRGF0YWJhc2VNYW5hZ2Vy
KiBXS0RhdGFiYXNlTWFuYWdlclJlZjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCkBAIC05NSw2ICs5Niw3IEBAIFdlYkNvbnRleHQ6OldlYkNvbnRleHQoUHJvY2Vz
c01vZGVsIHByb2MKICAgICAsIG1fY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2Vz
cyhmYWxzZSkKICAgICAsIG1fbWVtb3J5U2FtcGxlckVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX21l
bW9yeVNhbXBsZXJJbnRlcnZhbCgxNDAwLjApCisgICAgLCBtX3Jlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogICAgICwg
bV9kYXRhYmFzZU1hbmFnZXJQcm94eShXZWJEYXRhYmFzZU1hbmFnZXJQcm94eTo6Y3JlYXRlKHRo
aXMpKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eShXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eTo6Y3JlYXRlKHRoaXMpKQogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTExNCw2ICsxMTYs
OSBAQCBXZWJDb250ZXh0Ojp+V2ViQ29udGV4dCgpCiAKICAgICBXZWJQcm9jZXNzTWFuYWdlcjo6
c2hhcmVkKCkuY29udGV4dFdhc0Rlc3Ryb3llZCh0aGlzKTsKIAorICAgIG1fcmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS0+aW52YWxpZGF0ZSgpOworICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eS0+Y2xlYXJDb250ZXh0KCk7CisKICAgICBtX2dlb2xvY2F0aW9uTWFuYWdlclByb3h5LT5p
bnZhbGlkYXRlKCk7CiAgICAgbV9nZW9sb2NhdGlvbk1hbmFnZXJQcm94eS0+Y2xlYXJDb250ZXh0
KCk7CiAKQEAgLTQ4Myw2ICs0ODgsMTEgQEAgdm9pZCBXZWJDb250ZXh0OjpkaWRSZWNlaXZlTWVz
c2FnZShDb3JlSQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5p
czxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PigpKSB7
CisgICAgICAgIG1fcmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYlJlc291
cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHk+KCkpIHsKICAgICAgICAg
bV9kYXRhYmFzZU1hbmFnZXJQcm94eS0+ZGlkUmVjZWl2ZVdlYkRhdGFiYXNlTWFuYWdlclByb3h5
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVy
bjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkocmV2aXNpb24gNzg1
MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NSw2ICs0NSw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxv
YWRQcm94eTsKK2NsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJE
YXRhYmFzZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5Owog
Y2xhc3MgV2ViUGFnZUdyb3VwOwpAQCAtMTI3LDYgKzEyOCw3IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBIYXNoU2V0PFN0cmluZywgQ2FzZUZvbGRpbmdIYXNoPiBwZGZBbmRQb3N0U2NyaXB0TUlN
RVR5cGVzKCk7CiAKKyAgICBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KiByZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5LmdldCgpOyB9CiAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHkqIGRhdGFiYXNlTWFuYWdl
clByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZU1hbmFnZXJQcm94eS5nZXQoKTsgfQog
ICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5KiBnZW9sb2NhdGlvbk1hbmFnZXJQcm94eSgp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuZ2V0KCk7IH0KIApAQCAt
MjAyLDYgKzIwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21lbW9yeVNhbXBsZXJFbmFibGVk
OwogICAgIGRvdWJsZSBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbDsKIAorICAgIFJlZlB0cjxXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5PiBtX3Jlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiAg
ICAgUmVmUHRyPFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PiBtX2RhdGFiYXNlTWFuYWdlclByb3h5
OwogICAgIFJlZlB0cjxXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eT4gbV9nZW9sb2NhdGlvbk1h
bmFnZXJQcm94eTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoCiAgICAgaWYgKG1lc3NhZ2VJ
RC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0PigpCiAgICAgICAgIHx8IG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5PigpCiAgICAgICAg
IHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NEb3dubG9hZFByb3h5PigpCisg
ICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5PigpCiAgICAgICAgIHx8IG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXJQcm94eT4oKQogICAgICAgICB8fCBtZXNzYWdlSUQu
aXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk+KCkpIHsK
ICAgICAgICAgbV9jb250ZXh0LT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdl
SUQsIGFyZ3VtZW50cyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3Bw
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCisKKyNp
bmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnku
aCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclBy
b3h5PiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogd2Vi
Q29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHkod2ViQ29udGV4dCkpOworfQorCitXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
OjpXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5KFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCisg
ICAgOiBtX3dlYkNvbnRleHQod2ViQ29udGV4dCkKK3sKK30KKworV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXJQcm94eTo6fldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lk
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIGludmFs
aWRhdGVDYWxsYmFja01hcChtX2FycmF5Q2FsbGJhY2tzKTsKK30KKwordm9pZCBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlclByb3h5OjpnZXRDYWNoZU9yaWdpbnMoUGFzc1JlZlB0cjxBcnJheUNhbGxi
YWNrPiBwcnBDYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gY2FsbGJhY2sg
PSBwcnBDYWxsYmFjazsKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkp
IHsKKyAgICAgICAgY2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAg
ICBtX2FycmF5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5yZWxlYXNlKCkpOwor
ICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlcjo6R2V0Q2FjaGVPcmlnaW5zKGNhbGxiYWNrSUQpLCAwKTsKK30KKwordm9pZCBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OjpkaWRHZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbnMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7
CisgICAgUmVmUHRyPEFycmF5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9hcnJheUNhbGxiYWNrcy50
YWtlKGNhbGxiYWNrSUQpOworICAgIGlmICghY2FsbGJhY2spIHsKKyAgICAgICAgLy8gRklYTUU6
IExvZyBlcnJvciBvciBhc3NlcnQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzaXpl
X3Qgb3JpZ2luSWRlbnRpZmllcnNDb3VudCA9IG9yaWdpbnMuc2l6ZSgpOworICAgIFZlY3RvcjxS
ZWZQdHI8QVBJT2JqZWN0PiA+IHNlY3VyaXR5T3JpZ2luczsKKyAgICBzZWN1cml0eU9yaWdpbnMu
cmVzZXJ2ZUNhcGFjaXR5KG9yaWdpbklkZW50aWZpZXJzQ291bnQpOworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBvcmlnaW5JZGVudGlmaWVyc0NvdW50OyArK2kpIHsKKyAgICAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEgPSBvcmlnaW5zW2ldOworICAgICAgICBSZWZQdHI8
QVBJT2JqZWN0PiBvcmlnaW4gPSBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEu
cHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKKyAgICAgICAgaWYg
KCFvcmlnaW4pCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc2VjdXJpdHlPcmlnaW5z
LnVuY2hlY2tlZEFwcGVuZChvcmlnaW4pOworICAgIH0KKworICAgIGNhbGxiYWNrLT5wZXJmb3Jt
Q2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoSW1tdXRhYmxlQXJyYXk6OmFkb3B0KHNlY3VyaXR5T3Jp
Z2lucykuZ2V0KCkpOworfQorCit2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNs
ZWFyQ2FjaGVGb3JPcmlnaW4oV2ViU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpZiAo
IW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbjsKKyAgICBzZWN1cml0eU9yaWdpbi5w
cm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsKKyAgICBzZWN1cml0eU9yaWdpbi5ob3N0ID0g
b3JpZ2luLT5ob3N0KCk7CisgICAgc2VjdXJpdHlPcmlnaW4ucG9ydCA9IG9yaWdpbi0+cG9ydCgp
OworICAgIG1fd2ViQ29udGV4dC0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlcjo6Q2xlYXJDYWNoZUZvck9yaWdpbihzZWN1cml0eU9yaWdpbiksIDApOwor
fQorCit2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk6OmNsZWFyQ2FjaGVGb3JBbGxP
cmlnaW5zKCkKK3sKKyAgICBpZiAoIW1fd2ViQ29udGV4dC0+aGFzVmFsaWRQcm9jZXNzKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX3dlYkNvbnRleHQtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdl
czo6V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXI6OkNsZWFyQ2FjaGVGb3JBbGxPcmlnaW5zKCksIDAp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUNhY2hlTWFuYWdl
clByb3h5LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkFy
Z3VtZW50cy5oIgorI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgorI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIENvcmVJ
UEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIE1l
c3NhZ2VJRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
RGF0YTsKK2NsYXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKKwordHlw
ZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tBcnJheVJlZj4gQXJyYXlDYWxsYmFjazsKKworY2xhc3Mg
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQ2FjaGVNYW5hZ2VyOworCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eT4gY3JlYXRl
KFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5
KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsg
bV93ZWJDb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBnZXRDYWNoZU9yaWdpbnMoUGFzc1JlZlB0
cjxBcnJheUNhbGxiYWNrPik7CisgICAgdm9pZCBjbGVhckNhY2hlRm9yT3JpZ2luKFdlYlNlY3Vy
aXR5T3JpZ2luKik7CisgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lucygpOworCisgICAg
dm9pZCBkaWRSZWNlaXZlV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQ
cm94eShXZWJDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIEFQSVR5cGU7IH0KKworICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCisgICAgdm9pZCBkaWRH
ZXRDYWNoZU9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIG9yaWdpbklk
ZW50aWZpZXJzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKworICAgIFdlYkNvbnRleHQqIG1fd2Vi
Q29udGV4dDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8QXJyYXlDYWxsYmFjaz4gPiBt
X2FycmF5Q2FsbGJhY2tzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBEYXRhYmFzZU1hbmFnZXJQcm94eV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisj
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2Vz
IC0+IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkgeworICAgIERpZEdldENhY2hlT3JpZ2lu
cyhWZWN0b3I8V2ViS2l0OjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbklkZW50aWZpZXJzLCB1
aW50NjRfdCBjYWxsYmFja0lEKQorfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0FQSUNhc3QuaAkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAg
Y2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQ
cm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CitjbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQ29u
dGV4dDsKIGNsYXNzIFdlYkNyZWRlbnRpYWw7CiBjbGFzcyBXZWJEYXRhYmFzZU1hbmFnZXJQcm94
eTsKQEAgLTY4LDYgKzY5LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVudGljYXRpb25D
aGFsbAogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVy
UmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIpCiBXS19BRERfQVBJX01BUFBJTkco
V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0UmVmLCBXZWJCYWNrRm9yd2FyZExpc3QpCitX
S19BRERfQVBJX01BUFBJTkcoV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiwgV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0NvbnRleHRSZWYsIFdlYkNv
bnRleHQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDcmVkZW50aWFsUmVmLCBXZWJDcmVkZW50aWFs
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLRGF0YWJhc2VNYW5hZ2VyUmVmLCBXZWJEYXRhYmFzZU1h
bmFnZXJQcm94eSkKQEAgLTkyLDkgKzk0LDkgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVj
dG9yUmVmLCBXZWJJbgogCiAvKiBFbnVtIGNvbnZlcnNpb25zICovCiAKLWlubGluZSBDYWNoZU1v
ZGVsIHRvQ2FjaGVNb2RlbChXS0NhY2hlTW9kZWwgd2tDYWNoZU1vZGVsKQoraW5saW5lIENhY2hl
TW9kZWwgdG9DYWNoZU1vZGVsKFdLQ2FjaGVNb2RlbCBXS0NhY2hlTW9kZWwpCiB7Ci0gICAgc3dp
dGNoICh3a0NhY2hlTW9kZWwpIHsKKyAgICBzd2l0Y2ggKFdLQ2FjaGVNb2RlbCkgewogICAgIGNh
c2Uga1dLQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyOgogICAgICAgICByZXR1cm4gQ2FjaGVNb2Rl
bERvY3VtZW50Vmlld2VyOwogICAgIGNhc2Uga1dLQ2FjaGVNb2RlbERvY3VtZW50QnJvd3NlcjoK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCShy
ZXZpc2lvbiA3ODUwMSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDExIEBAIHZvaWQgV0tDb250ZXh0
Q2xlYXJBcHBsaWNhdGlvbkNhY2hlKFdLQ28KICAgICB0b0ltcGwoY29udGV4dFJlZiktPmNsZWFy
QXBwbGljYXRpb25DYWNoZSgpOwogfQogCitXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29u
dGV4dEdldFJlc291cmNlQ2FjaGVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQorewor
ICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHkoKSk7Cit9CisKIFdLRGF0YWJhc2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldERhdGFiYXNl
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9BUEkodG9J
bXBsKGNvbnRleHRSZWYpLT5kYXRhYmFzZU1hbmFnZXJQcm94eSgpKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgJKHJldmlzaW9uIDc4NTAxKQorKysg
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjMsNiArMTIzLDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0Q2xlYXJBcHBsaWNh
dGlvbgogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U3RhcnRNZW1vcnlTYW1wbGVyKFdLQ29udGV4
dFJlZiBjb250ZXh0LCBXS0RvdWJsZVJlZiBpbnRlcnZhbCk7CiBXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTdG9wTWVtb3J5U2FtcGxlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKK1dLX0VYUE9S
VCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIFdLQ29udGV4dEdldFJlc291cmNlQ2FjaGVNYW5h
Z2VyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS0RhdGFiYXNlTWFuYWdlclJl
ZiBXS0NvbnRleHRHZXREYXRhYmFzZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tf
RVhQT1JUIFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIFdLQ29udGV4dEdldEdlb2xvY2F0aW9uTWFu
YWdlcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5o
IgorCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS1Jl
c291cmNlQ2FjaGVNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoV2ViUmVz
b3VyY2VDYWNoZU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlckdldENhY2hlT3JpZ2lucyhXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNhY2hl
TWFuYWdlclJlZiwgdm9pZCogY29udGV4dCwgV0tSZXNvdXJjZUNhY2hlTWFuYWdlckdldENhY2hl
T3JpZ2luc0Z1bmN0aW9uIGNhbGxiYWNrKQoreworICAgIHRvSW1wbChjYWNoZU1hbmFnZXJSZWYp
LT5nZXRDYWNoZU9yaWdpbnMoQXJyYXlDYWxsYmFjazo6Y3JlYXRlKGNvbnRleHQsIGNhbGxiYWNr
KSk7Cit9CisKK3ZvaWQgV0tSZXNvdXJjZUNhY2hlTWFuYWdlckNsZWFyQ2FjaGVGb3JPcmlnaW4o
V0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmFnZXJSZWYsIFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luUmVmKQoreworICAgIHRvSW1wbChjYWNoZU1hbmFnZXJSZWYpLT5jbGVhckNh
Y2hlRm9yT3JpZ2luKHRvSW1wbChvcmlnaW5SZWYpKTsKK30KKwordm9pZCBXS1Jlc291cmNlQ2Fj
aGVNYW5hZ2VyQ2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJl
ZiBjYWNoZU1hbmFnZXJSZWYpCit7CisgICAgdG9JbXBsKGNhY2hlTWFuYWdlclJlZiktPmNsZWFy
Q2FjaGVGb3JBbGxPcmlnaW5zKCk7ICAgIAorfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1h
bmFnZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV0tSZXNvdXJjZUNhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdLUmVzb3VyY2VDYWNoZU1hbmFn
ZXJfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVz
CitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlckdldFR5cGVJRCgpOworCit0eXBlZGVmIHZvaWQgKCpXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyR2V0Q2FjaGVPcmlnaW5zRnVuY3Rpb24pKFdLQXJyYXlSZWYsIFdLRXJyb3JSZWYsIHZv
aWQqKTsKK1dLX0VYUE9SVCB2b2lkIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJHZXRDYWNoZU9yaWdp
bnMoV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBjb250ZXh0UmVmLCB2b2lkKiBjb250ZXh0LCBX
S1Jlc291cmNlQ2FjaGVNYW5hZ2VyR2V0Q2FjaGVPcmlnaW5zRnVuY3Rpb24gZnVuY3Rpb24pOwor
CitXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyQ2xlYXJDYWNoZUZvck9yaWdp
bihXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmIGNhY2hlTWFuZ2VyLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmIG9yaWdpbik7CitXS19FWFBPUlQgdm9pZCBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyQ2xlYXJD
YWNoZUZvckFsbE9yaWdpbnMoV0tSZXNvdXJjZUNhY2hlTWFuYWdlclJlZiBjYWNoZU1hbmFnZXIp
OworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA3ODc0NikKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjQ1
LDYgKzI0NSwxOCBAQAogCQkxQ0E4Qjk1NDEyN0M4OTE1MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9y
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUM4
RTJEQUQxMjc4QzVCMjAwQkM3QkQwIC8qIFdlYkluc3BlY3Rvck1hYy5tbSAqLzsgfTsKIAkJMjlD
RDU1QUExMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUNENTVBODEyOEUy
OTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3QuaCAqLzsgfTsKIAkJMjlD
RDU1QUIxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlDRDU1QTkxMjhF
Mjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovOyB9OworCQkz
MzE1Mjk3NTEzMEQwQ0IyMDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMTUyOTczMTMwRDBDQjIw
MEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRhdGEuY3BwICovOyB9OworCQkzMzE1Mjk3NjEzMEQw
Q0IyMDBFRDI0ODMgLyogU2VjdXJpdHlPcmlnaW5EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzE1Mjk3NDEzMEQwQ0IyMDBFRDI0ODMgLyogU2Vj
dXJpdHlPcmlnaW5EYXRhLmggKi87IH07CisJCTMzMzY3NjJGMTMwQzk5OTgwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYyQzEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIuY3BwICovOyB9OworCQkzMzM2NzYzMDEzMEM5OTk4MDA2QzlERTIgLyogV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMzMzY3NjJEMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlci5oICovOyB9OworCQkzMzM2NzYzNTEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMzM2NzYzMjEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5jcHAgKi87IH07CisJCTMzMzY3NjM2MTMwQzk5QjIwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYzMzEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJQcm94eS5oICovOyB9OworCQkzMzM2NzYzQTEzMEM5OURDMDA2QzlERTIg
LyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzYzODEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJj
ZUNhY2hlTWFuYWdlci5jcHAgKi87IH07CisJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBX
S1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMzM2NzYzOTEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hl
TWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
KwkJMzMzNjc2NTUxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMzMzY3NjUxMTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTMzMzY3NjU2MTMwQzlFQ0EwMDZDOURFMiAv
KiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzY1MjEzMEM5RUNBMDA2QzlERTIgLyogV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkzMzM2NzY1NzEzMEM5RUNB
MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMzM2NzY1
MzEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CisJCTMzMzY3NjU4MTMwQzlFQ0IwMDZDOURFMiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzMzY3NjU0MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMzdGNjIzQjgxMkE1N0I2
MjAwRTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRp
b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1
MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2
Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi87IH07CiAJCTUxMEZC
QjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEZCQjk4MTI4OEM5NUUw
MEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCAqLzsgfTsKQEAgLTEwMjIsNiAr
MTAzNCwyMCBAQAogCQkyOUNENTVBODEyOEUyOTRGMDAxMzNDODUgLyogQWNjZXNzaWJpbGl0eVdl
YlBhZ2VPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjlDRDU1
QTkxMjhFMjk0RjAwMTMzQzg1IC8qIEFjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUw
MEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdDJQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMxNTI5
NzMxMzBEMENCMjAwRUQyNDgzIC8qIFNlY3VyaXR5T3JpZ2luRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1cml0eU9yaWdpbkRhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMzE1Mjk3NDEzMEQwQ0IyMDBFRDI0ODMgLyogU2VjdXJp
dHlPcmlnaW5EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlY3VyaXR5
T3JpZ2luRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzM2NzYyQzEzMEM5
OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOyBwYXRo
ID0gUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTMzMzY3NjJEMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlci5oOyBwYXRoID0gUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hl
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzM2NzYyRTEzMEM5OTk4
MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW47IHBhdGgg
PSBSZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzM2NzYzMjEzMEM5OUIyMDA2QzlERTIgLyogV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2MzMxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMzM2NzYzNDEzMEM5OUIyMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMzM2
NzYzODEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzMzNjc2MzkxMzBDOTlEQzAwNkM5REUy
IC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMzM2NzY1MTEzMEM5RUNBMDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gL1VzZXJz
L2JyaWFuX3dlaW5zdGVpbi9PcGVuU291cmNlL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQkzMzM2NzY1MjEzMEM5RUNBMDA2QzlERTIg
LyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSAv
VXNlcnMvYnJpYW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCTMzMzY3NjUzMTMwQzlFQ0EwMDZDOURFMiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gL1VzZXJzL2JyaWFuX3dlaW5zdGVpbi9PcGVuU291
cmNlL1dlYktpdEJ1aWxkL0RlYnVnL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CisJCTMzMzY3NjU0MTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hl
TWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSAvVXNlcnMvYnJp
YW5fd2VpbnN0ZWluL09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvRGVidWcvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMzdGNjIzQjcxMkE1N0I2MjAwRTNGREY2IC8qIFdLRmlu
ZE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kT3B0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAz
M0MgLyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
Q29udGV4dE1lbnVJdGVtRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODQ3LDYgKzE4NzMsOCBAQAogCQkJCUUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludElu
Zm8uaCAqLywKIAkJCQlCQzJEMDIxNjEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUuaCAqLywKIAkJCQkxQUFCNEE4QzEyOTZGMEEyMDAyMzk1MkYgLyogU2FuZGJv
eEV4dGVuc2lvbi5oICovLAorCQkJCTMzMTUyOTczMTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0
eU9yaWdpbkRhdGEuY3BwICovLAorCQkJCTMzMTUyOTc0MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1
cml0eU9yaWdpbkRhdGEuaCAqLywKIAkJCQkxQUE0MUFCNDEyQzAyRUM0MDAyQkU2N0IgLyogU2Vs
ZWN0aW9uU3RhdGUuaCAqLywKIAkJCQk1MThEMkNDODEyRDUxREZCMDAzQkI5M0IgLyogU2Vzc2lv
blN0YXRlLmNwcCAqLywKIAkJCQk1MThEMkNDOTEyRDUxREZCMDAzQkI5M0IgLyogU2Vzc2lvblN0
YXRlLmggKi8sCkBAIC0yMDIzLDYgKzIwNTEsMTYgQEAKIAkJCXRhYldpZHRoID0gODsKIAkJCXVz
ZXNUYWJzID0gMDsKIAkJfTsKKwkJMzMzNjc2MkIxMzBDOTk3ODAwNkM5REUyIC8qIFJlc291cmNl
Q2FjaGUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTMz
MzY3NjJDMTMwQzk5OTgwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8s
CisJCQkJMzMzNjc2MkQxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
LmggKi8sCisJCQkJMzMzNjc2MkUxMzBDOTk5ODAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVN
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJKTsKKwkJCW5hbWUgPSBSZXNvdXJjZUNhY2hlOwor
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTEyRjU4ODYxMkE4ODM0NzAwNjI5
NTMwIC8qIEF1dGhlbnRpY2F0aW9uICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKQEAgLTIwNjcsNiArMjEwNSw3IEBACiAJCQkJQkMyMDRFREYxMUM4M0U3MjAwOEYz
Mzc1IC8qIEluamVjdGVkQnVuZGxlICovLAogCQkJCTFBNkZBMDFDMTFFMTUyNjMwMERCMTM3MSAv
KiBtYWMgKi8sCiAJCQkJMUE2RkI3QUExMUU2NEI0OTAwREIxMzcxIC8qIFBsdWdpbnMgKi8sCisJ
CQkJMzMzNjc2MkIxMzBDOTk3ODAwNkM5REUyIC8qIFJlc291cmNlQ2FjaGUgKi8sCiAJCQkJQkMw
MzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovLAogCQkJCUJDMDMyRDVF
MTBGNDM3MkIwMDU4QzE1QSAvKiBXZWJQYWdlICovLAogCQkJCTFBNkZBMzE1MTFFMzkyMzYwMERC
MTM3MSAvKiBXZWJLaXRNYWluLmNwcCAqLywKQEAgLTIyNTgsNiArMjI5Nyw5IEBACiAJCQkJQkMx
MTFCMEQxMTJGNUU0RjAwMzM3QkFCIC8qIFdlYlByb2Nlc3NQcm94eS5jcHAgKi8sCiAJCQkJQkMw
MzJEQ0YxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oICovLAogCQkJCUJDRUU3
QUIzMTI4MTcwOTUwMDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gKi8sCisJ
CQkJMzMzNjc2MzIxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkuY3BwICovLAorCQkJCTMzMzY3NjMzMTMwQzk5QjIwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlclByb3h5LmggKi8sCisJCQkJMzMzNjc2MzQxMzBDOTlCMjAwNkM5REUyIC8qIFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJQkM4NThBMUYx
MkMwMzU3QjAwRURFQjJFIC8qIFdlYlJlc291cmNlTG9hZENsaWVudC5jcHAgKi8sCiAJCQkJQkM4
NThBMUUxMkMwMzU3QjAwRURFQjJFIC8qIFdlYlJlc291cmNlTG9hZENsaWVudC5oICovLAogCQkJ
CTFBNTk0QUI4MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVudC5jcHAgKi8sCkBAIC0yMzM1
LDYgKzIzNzcsOCBAQAogCQkJCTUxMkY1OEYzMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rp
b25TcGFjZS5jcHAgKi8sCiAJCQkJNTEyRjU4RjQxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVj
dGlvblNwYWNlLmggKi8sCiAJCQkJNTE4QUNBRTkxMkFFRTZCQjAwQjA0QjgzIC8qIFdLUHJvdGVj
dGlvblNwYWNlVHlwZXMuaCAqLywKKwkJCQkzMzM2NzYzODEzMEM5OURDMDA2QzlERTIgLyogV0tS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAgKi8sCisJCQkJMzMzNjc2MzkxMzBDOTlEQzAwNkM5REUy
IC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yODAwLDYgKzI4NDQsMTAgQEAKIAkJCQlCQzMw
NjZCRDEyNUE0NDIxMDBFNzEyNzggLyogV2ViUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJQkNF
RTdBQ0MxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJQkNFRTdBQ0QxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQcm94eU1l
c3NhZ2VzLmggKi8sCisJCQkJMzMzNjc2NTExMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzMzM2NzY1MjEzMEM5RUNB
MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTMz
MzY3NjUzMTMwQzlFQ0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkzMzM2NzY1NDEzMEM5RUNBMDA2QzlERTIgLyogV2Vi
UmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9
ICJEZXJpdmVkIFNvdXJjZXMiOwogCQkJcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDI7CkBA
IC0zMTg5LDYgKzMyMzcsMTIgQEAKIAkJCQlCQ0E1NkE2OTEyRjlDOUFEMDBDNTY2QzcgLyogV0tH
cmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDODZGRjQxMzBCNDZEMzAw
MkMxMjU3IC8qIFdLUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUM4NzAyRDEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkzMzM2NzYzMDEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzMzY3NjM2MTMwQzk5QjIwMDZDOURF
MiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQkz
MzM2NzYzQjEzMEM5OURDMDA2QzlERTIgLyogV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMzMzNjc2NTYxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2Fj
aGVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTMzMzY3NjU4MTMwQzlFQ0Iw
MDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMzMTUyOTc2MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1cml0eU9yaWdpbkRh
dGEuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzY2OCw2ICszNzIyLDEyIEBACiAJCQkJNjU5QzU1MUUx
MzAwMDY0MTAwMjVDMEMyIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUM4NkZGMzEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVn
aW5TaXRlRGF0YU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDODcwMkUxMzBCNDlB
MjAwMkMxMjU3IC8qIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkzMzM2NzYyRjEzMEM5OTk4MDA2QzlERTIgLyogV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzMzNjc2MzUxMzBDOTlCMjAwNkM5REUyIC8qIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMzMzNjc2M0Ex
MzBDOTlEQzAwNkM5REUyIC8qIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMzMzNjc2NTUxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMzY3NjU3MTMwQzlF
Q0EwMDZDOURFMiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMzMTUyOTc1MTMwRDBDQjIwMEVEMjQ4MyAvKiBTZWN1
cml0eU9yaWdpbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMs
NyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNs
dWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUg
IldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0
YWJhc2VNYW5hZ2VyLmgiCkBAIC01MCw2ICs1MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Dcm9z
c09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5
Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KQEAgLTUxMCw2
ICs1MTIsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNz
YWdlQ2xhc3NXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcj4oKSkgeworICAgICAgICBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlcjo6c2hhcmVkKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVz
c2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKG1l
c3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXI+KCkpIHsK
ICAgICAgICAgV2ViRGF0YWJhc2VNYW5hZ2VyOjpzaGFyZWQoKS5kaWRSZWNlaXZlTWVzc2FnZShj
b25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKQEAgLTYy
Myw2ICs2MzAsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyUmVzb3VyY2VDYWNoZXMoKQogICAg
IHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyKTsKICAgICBzZXRDYWNoZU1v
ZGVsKGNhY2hlTW9kZWwpOwogCisgICAgbWVtb3J5Q2FjaGUoKS0+ZXZpY3RSZXNvdXJjZXMoKTsK
KwogICAgIC8vIEVtcHR5IHRoZSBjcm9zcy1vcmlnaW4gcHJlZmxpZ2h0IGNhY2hlLgogICAgIENy
b3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmVtcHR5KCk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gNzg1MDEpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMTE0LDYgKzExNCw4IEBAIHB1YmxpYzoKICAgICAvLyBHZW9sb2NhdGlvbgogICAgIFdlYkdl
b2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRpb25NYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2Nh
dGlvbk1hbmFnZXI7IH0KIAorICAgIHZvaWQgY2xlYXJSZXNvdXJjZUNhY2hlcygpOworCiBwcml2
YXRlOgogICAgIFdlYlByb2Nlc3MoKTsKIApAQCAtMTM5LDcgKzE0MSw2IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgY2FsY3VsYXRlQ2FjaGVTaXplcyhDYWNoZU1vZGVsIGNhY2hlTW9kZWws
IHVpbnQ2NF90IG1lbW9yeVNpemUsIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSwKICAgICAgICAgdW5z
aWduZWQmIGNhY2hlVG90YWxDYXBhY2l0eSwgdW5zaWduZWQmIGNhY2hlTWluRGVhZENhcGFjaXR5
LCB1bnNpZ25lZCYgY2FjaGVNYXhEZWFkQ2FwYWNpdHksIGRvdWJsZSYgZGVhZERlY29kZWREYXRh
RGVsZXRpb25JbnRlcnZhbCwKICAgICAgICAgdW5zaWduZWQmIHBhZ2VDYWNoZUNhcGFjaXR5LCB1
bnNpZ25lZCBsb25nJiB1cmxDYWNoZU1lbW9yeUNhcGFjaXR5LCB1bnNpZ25lZCBsb25nJiB1cmxD
YWNoZURpc2tDYXBhY2l0eSk7Ci0gICAgdm9pZCBjbGVhclJlc291cmNlQ2FjaGVzKCk7CiAgICAg
dm9pZCBwbGF0Zm9ybUNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKICAgICB2b2lkIGNsZWFyQXBwbGlj
YXRpb25DYWNoZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNl
Q2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2Fj
aGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEw
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJSZXNv
dXJjZUNhY2hlTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL01lbW9yeUNhY2hlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5IYXNoLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUmVzb3VyY2VDYWNoZU1h
bmFnZXImIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpzaGFyZWQoKQoreworICAgIHN0YXRpYyBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYgc2hhcmVkID0gKm5ldyBXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlcjsKKyAgICByZXR1cm4gc2hhcmVkOworfQorCitXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6
V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIoKQoreworfQorCitXZWJSZXNvdXJjZUNhY2hlTWFuYWdl
cjo6fldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyKCkKK3sKK30KKwordm9pZCBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVj
dGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
TWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7Cit9CisKKwordm9pZCBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6Z2V0Q2FjaGVPcmlnaW5zKHVpbnQ2NF90IGNhbGxiYWNr
SUQpIGNvbnN0Cit7CisgICAgTWVtb3J5Q2FjaGU6OlNlY3VyaXR5T3JpZ2luU2V0IG9yaWdpbnM7
CisgICAgbWVtb3J5Q2FjaGUoKS0+Z2V0T3JpZ2luc1dpdGhDYWNoZShvcmlnaW5zKTsKKworICAg
IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJz
LnJlc2VydmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7CisKKyAgICBNZW1vcnlDYWNoZTo6U2Vj
dXJpdHlPcmlnaW5TZXQ6Oml0ZXJhdG9yIGVuZCA9IG9yaWdpbnMuZW5kKCk7CisgICAgZm9yIChN
ZW1vcnlDYWNoZTo6U2VjdXJpdHlPcmlnaW5TZXQ6Oml0ZXJhdG9yIGl0ID0gb3JpZ2lucy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBv
cmlnaW4gPSAqaXQ7CisgICAgICAgIAorICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2lu
RGF0YTsKKyAgICAgICAgb3JpZ2luRGF0YS5wcm90b2NvbCA9IG9yaWdpbi0+cHJvdG9jb2woKTsK
KyAgICAgICAgb3JpZ2luRGF0YS5ob3N0ID0gb3JpZ2luLT5ob3N0KCk7CisgICAgICAgIG9yaWdp
bkRhdGEucG9ydCA9IG9yaWdpbi0+cG9ydCgpOworCisgICAgICAgIGlkZW50aWZpZXJzLnVuY2hl
Y2tlZEFwcGVuZChvcmlnaW5EYXRhKTsKKyAgICB9CisKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQo
KS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHk6OkRpZEdldENhY2hlT3JpZ2lucyhpZGVudGlmaWVycywgY2FsbGJhY2tJRCksIDApOworfQor
Cit2b2lkIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyOjpjbGVhckNhY2hlRm9yT3JpZ2luKFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhKSBjb25zdAoreworICAgIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShvcmlnaW5EYXRhLnByb3RvY29s
LCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CisgICAgaWYgKCFvcmlnaW4pCisg
ICAgICAgIHJldHVybjsKKworICAgIG1lbW9yeUNhY2hlKCktPnJlbW92ZVJlc291cmNlc1dpdGhP
cmlnaW4ob3JpZ2luLmdldCgpKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcjo6
Y2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoKSBjb25zdAoreworICAgIFdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNsZWFyUmVzb3VyY2VDYWNoZXMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jlc291cmNlQ2FjaGUvV2ViUmVzb3VyY2VD
YWNoZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJSZXNvdXJjZUNhY2hlTWFu
YWdlci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlcl9oCisjZGVmaW5lIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyX2gKKworI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQ
QyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworY2xhc3MgTWVz
c2FnZUlEOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2VjdXJpdHlPcmlnaW5E
YXRhOworCitjbGFzcyBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIpOworcHVibGljOgorICAgIHN0YXRpYyBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlciYgc2hhcmVkKCk7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIFdlYlJlc291cmNlQ2FjaGVNYW5h
Z2VyKCk7CisgICAgdmlydHVhbCB+V2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIoKTsKKworICAgIC8v
IEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJSZXNvdXJjZUNhY2hlTWFuYWdlck1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKik7CisKKyAgICB2b2lkIGdldENhY2hlT3JpZ2lucyh1aW50NjRfdCBj
YWxsYmFja0lEKSBjb25zdDsKKyAgICB2b2lkIGNsZWFyQ2FjaGVGb3JPcmlnaW4oU2VjdXJpdHlP
cmlnaW5EYXRhIG9yaWdpbikgY29uc3Q7CisgICAgdm9pZCBjbGVhckNhY2hlRm9yQWxsT3JpZ2lu
cygpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlcl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Jl
c291cmNlQ2FjaGUvV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9SZXNvdXJjZUNhY2hlL1dlYlJlc291cmNlQ2FjaGVNYW5hZ2VyLm1lc3NhZ2Vz
LmluCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdodCAoQykgMjAxMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyIHsK
KyAgICB2b2lkIEdldENhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIHZvaWQg
Q2xlYXJDYWNoZUZvck9yaWdpbihXZWJLaXQ6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5JZGVu
dGlmaWVyKQorICAgIHZvaWQgQ2xlYXJDYWNoZUZvckFsbE9yaWdpbnMoKQorfQpJbmRleDogU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzg1MDEpCisrKyBTb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ5OSw2ICs0OTksMTQgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVk
XFNlY3VyaXR5T3JpZ2luRGF0YS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxTZWN1cml0eU9yaWdpbkRhdGEuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXFNlbGVjdGlv
blN0YXRlLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTM0Miw2ICsxMzUwLDIyIEBACiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CiAJCQk8L0ZpbHRlcj4KKyAgICAgICAgICAgIDxGaWx0ZXIKKyAgICAg
ICAgICAgICAgICBOYW1lPSJSZXNvdXJjZUNhY2hlIgorICAgICAgICAgICAgICAgID4KKyAgICAg
ICAgICAgICAgICA8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcUmVzb3Vy
Y2VDYWNoZVxXZWJSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2Fj
aGVcV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNoZVxXZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKyAg
ICAgICAgICAgIDwvRmlsdGVyPgogCQkJPEZpbHRlcgogCQkJCU5hbWU9IldlYkNvcmVTdXBwb3J0
IgogCQkJCT4KQEAgLTIyNTgsNiArMjI4MiwxOCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXFdlYkJhY2tGb3J3YXJkTGlzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAg
ICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViUmVzb3VyY2VDYWNo
ZU1hbmFnZXJQcm94eS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCisJ
CQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwv
RmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29udGV4
dC5jcHAiCiAJCQkJPgpAQCAtMjU2MCw2ICsyNTk2LDE0IEBACiAJCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKIAkJCQkJCT4KIAkJ
CQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcQVBJXENcV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAiCisJCQkJCQk+
CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXEFQSVxDXFdLUmVzb3VyY2VDYWNoZU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxl
PgogCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tD
b250ZXh0LmNwcCIKIAkJCQkJCT4KQEAgLTMyOTQsNiArMzMzOCwyMiBAQAogCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cisg
ICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJSZXNvdXJjZUNhY2hlTWFu
YWdlck1lc3NhZ2VSZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJNZXNzYWdlcy5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYlJlc291cmNl
Q2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXFdlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3BwIgogCQkJCT4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcwkocmV2aXNpb24gNzg1MDEpCisrKyBT
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCSh3b3JraW5nIGNvcHkpCkBA
IC02LDcgKzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlB
ZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtXENv
cmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
U2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJl
ZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQQ1N1
cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQ
SVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3BwJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQ
cm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVu
dGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXERvd25sb2Fk
cyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xHZW9sb2NhdGlvbiZxdW90Ozsm
cXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJy
YXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0Rp
cilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
SW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZx
dW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRp
bmdIZWFkZXJzJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDsk
KFByb2plY3REaXIpXC4uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFBsYXRmb3JtXENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQ
bHVnaW5Qcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFNoYXJlZFxjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcQ29yZUlQQ1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxT
aGFyZWRcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5z
XE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xBUElcY3BwJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGlj
YXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0
XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlJnF1b3Q7OyZxdW90
OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcYyZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcRE9NJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVx3aW4mcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xHZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUmVz
b3VyY2VDYWNoZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRl
XHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDsk
KFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7
OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENv
cmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxG
b3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVk
ZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz0iX1VTUkRMTDtXRUJLSVRfRVhQT1JUUztGUkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJ
TkdfV0VCS0lUIgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFk
ZXJUaHJvdWdoPSJXZWJLaXQyUHJlZml4LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0MkdlbmVyYXRlZC5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyR2VuZXJhdGVkLm1ha2UJKHJldmlzaW9uIDc4NTAxKQorKysgU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJHZW5lcmF0ZWQubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsNyBAQCBh
bGw6CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0F1dGhlbnRpY2F0aW9u
RGVjaXNpb25MaXN0ZW5lci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJL
aXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExp
c3QuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29w
eSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0SXRlbS5oIiAiJUNv
bmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5oIiAiJUNvbmZpZ3VyYXRp
b25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nl
c3NcQVBJXENcV0tDb250ZXh0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdl
YktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NvbnRleHRQcml2
YXRlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNv
cHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NyZWRlbnRpYWwuaCIgIiVDb25maWd1cmF0
aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIK
</data>
<flag name="review"
          id="74459"
          type_id="1"
          status="+"
          setter="beidson"
    />
    <flag name="commit-queue"
          id="74535"
          type_id="3"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>