<?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>148896</bug_id>
          
          <creation_ts>2015-09-05 01:48:20 -0700</creation_ts>
          <short_desc>[ES6] Cache the resolution result in JSModuleRecord</short_desc>
          <delta_ts>2015-09-14 14:15:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147340</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1123919</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-05 01:48:20 -0700</bug_when>
    <thetext>When resolveExport is succeeded, we should cache the result in JSModuleRecord since it is frequently called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125292</commentid>
    <comment_count>1</comment_count>
      <attachid>261026</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-11 16:31:43 -0700</bug_when>
    <thetext>Created attachment 261026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125293</commentid>
    <comment_count>2</comment_count>
      <attachid>261027</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-11 16:34:54 -0700</bug_when>
    <thetext>Created attachment 261027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125296</commentid>
    <comment_count>3</comment_count>
      <attachid>261029</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-11 16:40:32 -0700</bug_when>
    <thetext>Created attachment 261029
Patch

debug build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125307</commentid>
    <comment_count>4</comment_count>
      <attachid>261033</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-11 16:59:58 -0700</bug_when>
    <thetext>Created attachment 261033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125308</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-11 17:00:18 -0700</bug_when>
    <thetext>OK, the patch is ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125316</commentid>
    <comment_count>6</comment_count>
      <attachid>261033</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-11 17:11:06 -0700</bug_when>
    <thetext>Comment on attachment 261033
Patch

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

r=me with comments.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:362
&gt; +    {

I think official style is to have this on the line above. (Even if the style checker complains, unless we&apos;ve recently changed the style guide on this).

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.h:168
&gt; +    Optional&lt;Resolution&gt; tryGetCachedResolsion(UniquedStringImpl* exportName);

tryGetCachedResolsion =&gt; tryGetCachedResolution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125363</commentid>
    <comment_count>7</comment_count>
      <attachid>261050</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-12 00:55:45 -0700</bug_when>
    <thetext>Created attachment 261050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125365</commentid>
    <comment_count>8</comment_count>
      <attachid>261050</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-12 00:56:56 -0700</bug_when>
    <thetext>Comment on attachment 261050
Patch

I&apos;ll add the test that leverages namespace object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125457</commentid>
    <comment_count>9</comment_count>
      <attachid>261076</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-12 22:39:19 -0700</bug_when>
    <thetext>Created attachment 261076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125462</commentid>
    <comment_count>10</comment_count>
      <attachid>261033</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-13 02:10:52 -0700</bug_when>
    <thetext>Comment on attachment 261033
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:362
&gt;&gt; +    {
&gt; 
&gt; I think official style is to have this on the line above. (Even if the style checker complains, unless we&apos;ve recently changed the style guide on this).

Thanks. I&apos;ll fix this.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.h:168
&gt;&gt; +    Optional&lt;Resolution&gt; tryGetCachedResolsion(UniquedStringImpl* exportName);
&gt; 
&gt; tryGetCachedResolsion =&gt; tryGetCachedResolution

Oops. Fixing...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125463</commentid>
    <comment_count>11</comment_count>
      <attachid>261080</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-13 02:13:01 -0700</bug_when>
    <thetext>Created attachment 261080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125464</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-13 02:15:57 -0700</bug_when>
    <thetext>Attachment 261080 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSModuleRecord.cpp:599:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 39 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>1125465</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-13 02:20:13 -0700</bug_when>
    <thetext>OK, patch is ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125466</commentid>
    <comment_count>14</comment_count>
      <attachid>261081</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-13 02:31:59 -0700</bug_when>
    <thetext>Created attachment 261081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125467</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-13 02:32:51 -0700</bug_when>
    <thetext>Oops, one thing is fixed. Now, the patch is ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125468</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-13 02:35:35 -0700</bug_when>
    <thetext>Attachment 261081 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSModuleRecord.cpp:599:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 39 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>1125713</commentid>
    <comment_count>17</comment_count>
      <attachid>261081</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2015-09-14 13:21:58 -0700</bug_when>
    <thetext>Comment on attachment 261081
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:300
&gt; +    // Technically, the all JSModuleRecord have the Map&lt;ExportName, Resolution&gt; for caching.

&quot;the all JSModuleRecord&quot; =&gt; &quot;all the JSModuleRecords&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:305
&gt; +    //  - *cacheable* means that we can cache the gain result because the result is the same to the result
&gt; +    //    that will be produced when starting from this node. This means that the following 2 is the same.

I would write this as:
*cacheable* means that traversing to this node from a path will produce the same results as starting from this node.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:307
&gt; +    //      1. The resolving route from this node when tracing the nodes from the other starting node.
&gt; +    //      2. The resolving route from this node when starting from this node.

Not needed given the above sentence.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:309
&gt; +    //    Here, we define the resovling route. We represent [?] as the module that has the searched local binding.

I think you mean [?] as something that is resolved with a local binding, right? Not just searched.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:325
&gt; +    //  - Cacheability depends on the resolving route from this node. Not depend on the node.
&gt; +    //    The node is sometimes cacheable. And sometimes non-cacheable.
&gt; +    //    The resolving route depends on the starting node.

I think this can be written as:
&quot;The cache ability of a node depends on the resolving route from this node.&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:329
&gt; +    // By the definition of the cacheable, the starting point is always cacheable.

not needed.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:331
&gt; +    //  =&gt; The starting point is always cacheable.

not needed.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:341
&gt; +    //  =&gt; The module that has the searched local resolution is always cacheable.

I would write this as:
&quot;A module that has resolved a local binding is always cacheable.&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:343
&gt; +    // 3. Indirect exported bindings are cacheable if there is only non-star links.

&quot;is only non-star&quot; =&gt; &quot;are no star&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:346
&gt; +    //  If there are only non-star links, it means that there is *no branch* in the module dependency graph.
&gt; +    //  This *no branch* feature makes the all module cachable.

I would explain what you mean by &quot;branch&quot; here.
I.e, if we traverse one star link (even if we successfully resolve that start link),
we must still traverse all other star links. I would also explain we don&apos;t run into
this when resolving a local/indirect link. When resolving a local/indirect link,
we won&apos;t traverse any star links.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:375
&gt; +    //  should already finish the resolution when reaching this *once-visited* node.

&quot;should already finish the resolution when reaching this *once-visited* node&quot; =&gt; &quot;should have already finished the resolution before reaching this *once-visited* node&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:427
&gt; +    //  The star link makes the node conditional.
&gt; +    //
&gt; +    //       (A) *--&gt; [B]
&gt; +    //            |    ^
&gt; +    //            |    |
&gt; +    //            +-&gt; (C) *-&gt; (D)
&gt; +    //                 ^
&gt; +    //                 |
&gt; +    //                (E)
&gt; +    //                 ^
&gt; +    //                 |
&gt; +    //                 @
&gt; +    //
&gt; +    //  When starting from @,
&gt; +    //
&gt; +    //    1. (E) will follow the link to (C).
&gt; +    //    2. Looking (C), it has star link, but it also has the indirect link. So once we follow the link to [B].
&gt; +    //    3. [B] is resolved. And it is cacheable by 1.
&gt; +    //    4. (C) is resolved. And since we don&apos;t follow any star link during this, (C) is cacheable.
&gt; +    //    5. (E) is cacheable by definition.
&gt; +    //
&gt; +    //  But, in the following,
&gt; +    //
&gt; +    //  @ -&gt; (A) *--&gt; [B]
&gt; +    //            |    ^
&gt; +    //            |    |
&gt; +    //            +-&gt; (C) *-&gt; (D)
&gt; +    //                 ^
&gt; +    //                 |
&gt; +    //                (E)
&gt; +    //
&gt; +    //    1. (A) will follow the star links.
&gt; +    //    2. [B] is resolved &amp; cacheable by definition.
&gt; +    //    3. In (C), we attempt to follow the link to [B], but we cannot since [B] is already *once-visited*.
&gt; +    //    4. So, we fall back to the star link to (D).
&gt; +    //    5. (D) is not resolved. So (C) is not resolved.
&gt; +    //
&gt; +    //  In the previous one, (C) is cacheable. But in the above route, (C) becomes uncacheable.
&gt; +    //  So in the second trial, we should not retrieve the result from (C) when visiting (C).
&gt; +    //  Here, we can observe the one thing. In some situation, we should not retrieve the cached result
&gt; +    //  from the node.

I think we don&apos;t need these examples. The below example explains this more simply.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:468
&gt; +    //  resolution. Because if they have the resolution, we should already finish the tracing.

&quot;Because if they have the resolution, we should already finish the tracing.&quot; =&gt; &quot;Because if they had a local/indirect resolution, we should have already finished the tracing&quot;.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:472
&gt; +    //  of the link is always not-found since (A) does not have any location resolution.

&quot;location&quot; =&gt; &quot;local&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:479
&gt; +    // 5. Once we see the star links, even if it does not used yet, we should disable caching.

&quot;Once we see the star links, even if it does not used yet, we should disable caching.&quot; =&gt; &quot;Once we see start links, even if we have not yet traversed that star link path, we should disable caching&quot;.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:481
&gt; +    //  And there is another edge case.

&quot;And there is another edge case.&quot; =&gt; &quot;Here is the reason why:&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:517
&gt; +    //  To avoid this, once we see the star links, even if it does not used yet, we should disable caching.

Not needed.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:519
&gt; +    //  =&gt; Once we see the star links, even if it does not used yet, we should disable caching.

Not needed.

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:521
&gt; +    // To summarize the observation.

&quot;observation&quot; =&gt; &quot;observations&quot;

&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:616
&gt; +            //  =&gt; Once we see the star links, even if it does not used yet, we should disable caching.

rename to my above suggestion (or something similar).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125728</commentid>
    <comment_count>18</comment_count>
      <attachid>261081</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-14 14:08:34 -0700</bug_when>
    <thetext>Comment on attachment 261081
Patch

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

Thanks! I&apos;ve reflected your comments :)

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:300
&gt;&gt; +    // Technically, the all JSModuleRecord have the Map&lt;ExportName, Resolution&gt; for caching.
&gt; 
&gt; &quot;the all JSModuleRecord&quot; =&gt; &quot;all the JSModuleRecords&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:305
&gt;&gt; +    //    that will be produced when starting from this node. This means that the following 2 is the same.
&gt; 
&gt; I would write this as:
&gt; *cacheable* means that traversing to this node from a path will produce the same results as starting from this node.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:307
&gt;&gt; +    //      2. The resolving route from this node when starting from this node.
&gt; 
&gt; Not needed given the above sentence.

Dropped.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:309
&gt;&gt; +    //    Here, we define the resovling route. We represent [?] as the module that has the searched local binding.
&gt; 
&gt; I think you mean [?] as something that is resolved with a local binding, right? Not just searched.

[?] means the module that has a local binding for the current query. I&apos;ve dropped the word &quot;searched&quot;.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:329
&gt;&gt; +    // By the definition of the cacheable, the starting point is always cacheable.
&gt; 
&gt; not needed.

Dropped.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:331
&gt;&gt; +    //  =&gt; The starting point is always cacheable.
&gt; 
&gt; not needed.

Dropped.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:341
&gt;&gt; +    //  =&gt; The module that has the searched local resolution is always cacheable.
&gt; 
&gt; I would write this as:
&gt; &quot;A module that has resolved a local binding is always cacheable.&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:343
&gt;&gt; +    // 3. Indirect exported bindings are cacheable if there is only non-star links.
&gt; 
&gt; &quot;is only non-star&quot; =&gt; &quot;are no star&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:346
&gt;&gt; +    //  This *no branch* feature makes the all module cachable.
&gt; 
&gt; I would explain what you mean by &quot;branch&quot; here.
&gt; I.e, if we traverse one star link (even if we successfully resolve that start link),
&gt; we must still traverse all other star links. I would also explain we don&apos;t run into
&gt; this when resolving a local/indirect link. When resolving a local/indirect link,
&gt; we won&apos;t traverse any star links.

Thanks. I&apos;ve inserted your explanation. And I&apos;ve inserted the following paragraph.

And since the module can hold only one local/indirect link for the specific export name (if there
are multiple local/indirect links that has the same export name, it should be syntax error in the
parsing phase.), there is no multiple outgoing links from a module.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:375
&gt;&gt; +    //  should already finish the resolution when reaching this *once-visited* node.
&gt; 
&gt; &quot;should already finish the resolution when reaching this *once-visited* node&quot; =&gt; &quot;should have already finished the resolution before reaching this *once-visited* node&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:427
&gt;&gt; +    //  from the node.
&gt; 
&gt; I think we don&apos;t need these examples. The below example explains this more simply.

Dropped. Thanks.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:468
&gt;&gt; +    //  resolution. Because if they have the resolution, we should already finish the tracing.
&gt; 
&gt; &quot;Because if they have the resolution, we should already finish the tracing.&quot; =&gt; &quot;Because if they had a local/indirect resolution, we should have already finished the tracing&quot;.

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:472
&gt;&gt; +    //  of the link is always not-found since (A) does not have any location resolution.
&gt; 
&gt; &quot;location&quot; =&gt; &quot;local&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:479
&gt;&gt; +    // 5. Once we see the star links, even if it does not used yet, we should disable caching.
&gt; 
&gt; &quot;Once we see the star links, even if it does not used yet, we should disable caching.&quot; =&gt; &quot;Once we see start links, even if we have not yet traversed that star link path, we should disable caching&quot;.

Fixed. And use it at the title.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:481
&gt;&gt; +    //  And there is another edge case.
&gt; 
&gt; &quot;And there is another edge case.&quot; =&gt; &quot;Here is the reason why:&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:517
&gt;&gt; +    //  To avoid this, once we see the star links, even if it does not used yet, we should disable caching.
&gt; 
&gt; Not needed.

Dropped.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:519
&gt;&gt; +    //  =&gt; Once we see the star links, even if it does not used yet, we should disable caching.
&gt; 
&gt; Not needed.

Dropped.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:521
&gt;&gt; +    // To summarize the observation.
&gt; 
&gt; &quot;observation&quot; =&gt; &quot;observations&quot;

Fixed.

&gt;&gt; Source/JavaScriptCore/runtime/JSModuleRecord.cpp:616
&gt;&gt; +            //  =&gt; Once we see the star links, even if it does not used yet, we should disable caching.
&gt; 
&gt; rename to my above suggestion (or something similar).

Fixed :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125732</commentid>
    <comment_count>19</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-09-14 14:15:31 -0700</bug_when>
    <thetext>Committed r189747: &lt;http://trac.webkit.org/changeset/189747&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261026</attachid>
            <date>2015-09-11 16:31:43 -0700</date>
            <delta_ts>2015-09-11 16:34:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150911163137.patch</filename>
            <type>text/plain</type>
            <size>9797</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi4zYTI5MGZmNTQwNzI3YTAw
YzNiYjliZmMzMGI4ZjE4OGJkNTFmZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxNS0wOS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgdmFyaWFibGUgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlIHRoZSByZWZlcmVuY2UKKyAg
ICAgICAgcXVlcmllZCBieSB0aGUgb3JpZ2luYWwgbW9kdWxlLgorCisgICAgICAgIFRoZSByZXNv
bHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBwdXJlIGZ1bmN0aW9uOyBnaXZlbiBhIG1vZHVsZSByZWNv
cmQgYW5kIGFuIGV4cG9ydCBuYW1lLAorICAgICAgICBpdCBhbHdheXMgcmV0dXJucyB0aGUgc2Ft
ZSByZXN1bHQuIFNvIHdlIGNhY2hlIHJlc29sdXRpb24gcmVzdWx0cyBpbiB0aGUgbW9kdWxlIHJl
Y29yZCB0byBhdm9pZAorICAgICAgICByZXBlYXRlZCByZXNvbHZlRXhwb3J0IGNhbGxzIHdpdGgg
dGhlIHNhbWUgYXJndW1lbnRzLgorICAgICAgICBIZXJlLCB3ZSBvbmx5IGNhY2hlIHRoZSBjb3Jy
ZWN0bHkgcmVzb2x2ZWQgcmVmZXJlbmNlcywgc2luY2UsCisgICAgICAgIDEuIFdlIHJhcmVseSBs
b29rZWQgdXAgdGhlIG5vbi1jb3JyZWN0bHktcmVzb2x2ZWQgb25lcy4gSW4gdGhlIGxpbmtpbmcg
cGhhc2UsIGF0dGVtcHRpbmcgdG8KKyAgICAgICAgICAgcmVzb2x2ZSBub24tY29ycmVjdGx5LXJl
c29sdmVkIG9uZXMgdGhyb3dzIGEgc3ludGF4IGVycm9yLiBTbyBvbmx5IG5hbWVzcGFjZSBvYmpl
Y3QgY3JlYXRpb24KKyAgICAgICAgICAgcGhhc2UgZG9lcyBpdCBpbiBhIHN5bnRheCB2YWxpZCBz
Y3JpcHQuCisgICAgICAgIDIuIFRoaXMgc3RyYXRlZ3kgbGltaXRzIHRoZSBzaXplIG9mIHRoZSBj
YWNoZSBtYXAuIFRoZSBudW1iZXIgb2YgdGhlIGNvcnJlY3RseSBleHBvcnRlZCBiaW5kaW5ncwor
ICAgICAgICAgICBpcyBkZWZpbmVkIGJ5IHRoZSBtb2R1bGVzJyBjb2RlLiBTbyB0aGUgc2l6ZSBk
b2VzIG5vdCBiZWNvbWUgaW5maW5pdGVseSBsYXJnZS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNN
b2R1bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpKU01vZHVsZVJlY29yZDo6Y2FjaGVSZXNv
bHV0aW9uKToKKyAgICAgICAgKEpTQzo6Y2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkpOgorICAgICAg
ICAoSlNDOjpyZXNvbHZlRXhwb3J0TG9vcCk6CisgICAgICAgICogcnVudGltZS9KU01vZHVsZVJl
Y29yZC5oOgorCiAyMDE1LTA5LTExICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtAZ21h
aWwuY29tPgogCiAgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZsb2F0cyBpbiBXZWJB
c3NzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVj
b3JkLmNwcAppbmRleCBmYjM2NDI4ZjJhN2E3ZmNmMDFmZDJlNWUzMzMyMmVjMjVkN2NhMmU0Li5m
ODI0ZTU3ZjEzMTcxMzlkYWM5NzlkMTliOTQxMGE2NTZjZjNkMTNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC0yMjAsNiArMjIw
LDI1IEBAIGlubGluZSBib29sIFJlc29sdmVRdWVyeUhhc2g6OmVxdWFsKGNvbnN0IFJlc29sdmVR
dWVyeSYgbGhzLCBjb25zdCBSZXNvbHZlUXVlcnkmCiAgICAgcmV0dXJuIGxocy5tb2R1bGVSZWNv
cmQgPT0gcmhzLm1vZHVsZVJlY29yZCAmJiBsaHMuZXhwb3J0TmFtZSA9PSByaHMuZXhwb3J0TmFt
ZTsKIH0KIAorYXV0byBKU01vZHVsZVJlY29yZDo6dHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKFVuaXF1
ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKSAtPiBPcHRpb25hbDxSZXNvbHV0aW9uPgoreworICAg
IGNvbnN0IGF1dG8gaXRlcmF0b3IgPSBtX3Jlc29sdXRpb25DYWNoZS5maW5kKGV4cG9ydE5hbWUp
OworICAgIGlmIChpdGVyYXRvciA9PSBtX3Jlc29sdXRpb25DYWNoZS5lbmQoKSkKKyAgICAgICAg
cmV0dXJuIE51bGxvcHQ7CisgICAgcmV0dXJuIE9wdGlvbmFsPFJlc29sdXRpb24+KGl0ZXJhdG9y
LT52YWx1ZSk7Cit9CisKK3ZvaWQgSlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVzb2x1dGlvbihVbmlx
dWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSwgY29uc3QgUmVzb2x1dGlvbiYgcmVzb2x1dGlvbikK
K3sKKyAgICBtX3Jlc29sdXRpb25DYWNoZS5hZGQoZXhwb3J0TmFtZSwgcmVzb2x1dGlvbik7Cit9
CisKK3N0YXRpYyB2b2lkIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KGNvbnN0IFJlc29sdmVRdWVy
eSYgcXVlcnksIGNvbnN0IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uJiByZXNvbHV0aW9uKQor
eworICAgIEFTU0VSVChyZXNvbHV0aW9uLnR5cGUgPT0gSlNNb2R1bGVSZWNvcmQ6OlR5cGU6OlJl
c29sdmVkKTsKKyAgICBxdWVyeS5tb2R1bGVSZWNvcmQtPmNhY2hlUmVzb2x1dGlvbihxdWVyeS5l
eHBvcnROYW1lLmdldCgpLCByZXNvbHV0aW9uKTsKK30KKwogc3RhdGljIEpTTW9kdWxlUmVjb3Jk
OjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVz
b2x2ZVF1ZXJ5JiByb290KQogewogICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFs
Lm9yZy9lY21hLTI2Mi82LjAvI3NlYy1yZXNvbHZlZXhwb3J0CkBAIC0zNTAsMTAgKzM2OSwxOCBA
QCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogCiAgICAgICAgIHN3aXRjaCAodGFzay50eXBlKSB7
CiAgICAgICAgIGNhc2UgVHlwZTo6UXVlcnk6IHsKKyAgICAgICAgICAgIEpTTW9kdWxlUmVjb3Jk
KiBtb2R1bGVSZWNvcmQgPSBxdWVyeS5tb2R1bGVSZWNvcmQ7CisKKyAgICAgICAgICAgIC8vIExv
b2sgdXAgdGhlIGNhY2hlZCByZXNvbHV0aW9uIGZpcnN0LgorICAgICAgICAgICAgaWYgKE9wdGlv
bmFsPFJlc29sdXRpb24+IGNhY2hlZFJlc29sdXRpb24gPSBtb2R1bGVSZWNvcmQtPnRyeUdldENh
Y2hlZFJlc29sc2lvbihxdWVyeS5leHBvcnROYW1lLmdldCgpKSkgeworICAgICAgICAgICAgICAg
IGlmICghbWVyZ2VUb0N1cnJlbnRUb3AoKmNhY2hlZFJlc29sdXRpb24pKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7CisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmICghcmVzb2x2ZVNldC5h
ZGQodGFzay5xdWVyeSkuaXNOZXdFbnRyeSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IHF1ZXJ5Lm1vZHVsZVJl
Y29yZDsKICAgICAgICAgICAgIGNvbnN0IE9wdGlvbmFsPEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRF
bnRyeT4gb3B0aW9uYWxFeHBvcnRFbnRyeSA9IG1vZHVsZVJlY29yZC0+dHJ5R2V0RXhwb3J0RW50
cnkocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIW9wdGlvbmFsRXhw
b3J0RW50cnkpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBtYXRjaGVkIGV4
cG9ydGVkIGJpbmRpbmcgaW4gdGhlIGN1cnJlbnQgbW9kdWxlLApAQCAtMzY2LDEwICszOTMsMTQg
QEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgICAgIGNvbnN0IEpTTW9kdWxlUmVj
b3JkOjpFeHBvcnRFbnRyeSYgZXhwb3J0RW50cnkgPSAqb3B0aW9uYWxFeHBvcnRFbnRyeTsKICAg
ICAgICAgICAgIHN3aXRjaCAoZXhwb3J0RW50cnkudHlwZSkgewogICAgICAgICAgICAgY2FzZSBK
U01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6OkxvY2FsOgotICAgICAgICAgICAgY2Fz
ZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6Ok5hbWVzcGFjZToKLSAgICAgICAg
ICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKFJlc29sdXRpb24geyBSZXNvbHV0aW9uOjpU
eXBlOjpSZXNvbHZlZCwgbW9kdWxlUmVjb3JkLCBleHBvcnRFbnRyeS5sb2NhbE5hbWUgfSkpCisg
ICAgICAgICAgICBjYXNlIEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRyeTo6VHlwZTo6TmFtZXNw
YWNlOiB7CisgICAgICAgICAgICAgICAgUmVzb2x1dGlvbiByZXNvbHV0aW9uIHsgUmVzb2x1dGlv
bjo6VHlwZTo6UmVzb2x2ZWQsIG1vZHVsZVJlY29yZCwgZXhwb3J0RW50cnkubG9jYWxOYW1lIH07
CisgICAgICAgICAgICAgICAgLy8gQ2FjaGUgdGhlIGxvY2FsIHJlc29sdXRpb24gcmVzdWx0IGhl
cmUuCisgICAgICAgICAgICAgICAgY2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkocXVlcnksIHJlc29s
dXRpb24pOworICAgICAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3AocmVzb2x1dGlv
bikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uOjphbWJpZ3VvdXMoKTsK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
Y2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6OkluZGlyZWN0OiB7CiAgICAg
ICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIGltcG9ydGVkTW9kdWxlUmVjb3JkID0gbW9kdWxl
UmVjb3JkLT5ob3N0UmVzb2x2ZUltcG9ydGVkTW9kdWxlKGV4ZWMsIGV4cG9ydEVudHJ5Lm1vZHVs
ZU5hbWUpOwpAQCAtMzk3LDYgKzQyOCwxMCBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29s
dXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKHJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNv
bHZlZCwgIldoZW4gd2Ugc2VlIEVycm9yIGFuZCBBbWJpZ3VvdXMsIHdlIGltbWVkaWF0ZWx5IHJl
dHVybiBmcm9tIHRoaXMgbG9vcC4gU28gaGVyZSwgb25seSBSZXNvbHZlZCBjb21lcy4iKTsKKyAg
ICAgICAgICAgIC8vIENhY2hlIHRoZSBpbmRpcmVjdCByZXNvbHV0aW9uIHJlc3VsdCBoZXJlLgor
ICAgICAgICAgICAgY2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkocXVlcnksIHJlc29sdXRpb24pOwor
CiAgICAgICAgICAgICAvLyBJZiBpbmRpcmVjdCBleHBvcnQgZW50cnkgcHJvZHVjZXMgUmVzb2x2
ZWQsIHdlIHNob3VsZCBtZXJnZSBpdCB0byB0aGUgdXBwZXIgZnJhbWUuCiAgICAgICAgICAgICAv
LyBBbmQgZG8gbm90IGludmVzdGlnYXRlIHRoZSBzdGFycyBvZiB0aGUgY3VycmVudCBtb2R1bGUu
CiAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHJlc29sdXRpb24pKQpAQCAtNDA1
LDggKzQ0MCwxNSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4
cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBUeXBlOjpHYXRoZXJTdGFyczogewotICAgICAgICAgICAgLy8gTWVyZ2UgdGhlIHN0
YXIgcmVzb2x1dGlvbiB0byB0aGUgdXBwZXIgZnJhbWUuCiAgICAgICAgICAgICBKU01vZHVsZVJl
Y29yZDo6UmVzb2x1dGlvbiBzdGFyUmVzb2x1dGlvbiA9IGZyYW1lcy50YWtlTGFzdCgpOworICAg
ICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShzdGFyUmVzb2x1dGlvbi50eXBlID09IFJlc29s
dXRpb246OlR5cGU6OlJlc29sdmVkIHx8IHN0YXJSZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlv
bjo6VHlwZTo6Tm90Rm91bmQsICJXaGVuIHdlIHNlZSBFcnJvciBhbmQgQW1iaWd1b3VzLCB3ZSBp
bW1lZGlhdGVseSByZXR1cm4gZnJvbSB0aGlzIGxvb3AuIFNvIGhlcmUsIG9ubHkgUmVzb2x2ZWQg
YW5kIE5vdEZvdW5kIGNvbWVzLiIpOworCisgICAgICAgICAgICBpZiAoc3RhclJlc29sdXRpb24u
dHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCkgeworICAgICAgICAgICAgICAgIC8v
IENhY2hlIHRoZSBzdGFyIHJlc29sdXRpb24gcmVzdWx0IGhlcmUuCisgICAgICAgICAgICAgICAg
Y2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkocXVlcnksIHN0YXJSZXNvbHV0aW9uKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLy8gTWVyZ2UgdGhlIHN0YXIgcmVzb2x1dGlvbiB0byB0aGUg
dXBwZXIgZnJhbWUuCiAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHN0YXJSZXNv
bHV0aW9uKSkKICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTQyMCw2ICs0NjIsOSBAQCBzdGF0aWMgSlNNb2R1bGVS
ZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBSZXNvbAogCiBhdXRvIEpTTW9kdWxlUmVjb3JkOjpyZXNvbHZlRXhwb3J0KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgZXhwb3J0TmFtZSkgLT4gUmVzb2x1dGlvbgogeworICAg
IC8vIExvb2sgdXAgdGhlIGNhY2hlZCByZXNvbHV0aW9uIGZpcnN0IGJlZm9yZSBlbnRlcmluZyB0
aGUgcmVzb2x2aW5nIGxvb3AsIHNpbmNlIHRoZSBsb29wIHNldHVwIHRha2VzIHNvbWUgY29zdC4K
KyAgICBpZiAoT3B0aW9uYWw8UmVzb2x1dGlvbj4gY2FjaGVkUmVzb2x1dGlvbiA9IHRyeUdldENh
Y2hlZFJlc29sc2lvbihleHBvcnROYW1lLmltcGwoKSkpCisgICAgICAgIHJldHVybiAqY2FjaGVk
UmVzb2x1dGlvbjsKICAgICByZXR1cm4gcmVzb2x2ZUV4cG9ydExvb3AoZXhlYywgUmVzb2x2ZVF1
ZXJ5KHRoaXMsIGV4cG9ydE5hbWUuaW1wbCgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oCmluZGV4IDcwYTE5MGY4MmM2NzhkMTg2MWY1
MDZlZDFkODBmMjI1YmNjOTBlNWUuLjRiN2I4YTRmNmI3YTNjOGVlYzAzMzE5M2U3NDRhNGI0Yzlk
YzY3YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNv
cmQuaApAQCAtMTQ0LDYgKzE0NCw5IEBAIGNsYXNzIEpTTW9kdWxlUmVjb3JkIDogcHVibGljIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAgIEpTTW9kdWxlUmVjb3JkKiBob3N0UmVzb2x2ZUlt
cG9ydGVkTW9kdWxlKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG1vZHVsZU5hbWUpOwog
CisgICAgLy8gT25seSB1c2VkIGJ5IHRoZSByZXNvbHZlRXhwb3J0IGxvb3AgaW1wbGVtZW50YXRp
b24uCisgICAgT3B0aW9uYWw8UmVzb2x1dGlvbj4gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKFVuaXF1
ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKTsKKyAgICB2b2lkIGNhY2hlUmVzb2x1dGlvbihVbmlx
dWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSwgY29uc3QgUmVzb2x1dGlvbiYpOwogcHJpdmF0ZToK
ICAgICBKU01vZHVsZVJlY29yZChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJ
ZGVudGlmaWVyJiBtb2R1bGVLZXksIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUsIGNvbnN0
IFZhcmlhYmxlRW52aXJvbm1lbnQmIGRlY2xhcmVkVmFyaWFibGVzLCBjb25zdCBWYXJpYWJsZUVu
dmlyb25tZW50JiBsZXhpY2FsVmFyaWFibGVzKQogICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKQEAgLTIwMiw2ICsyMDUsMTMgQEAgY2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMgSlNE
ZXN0cnVjdGlibGVPYmplY3QgewogICAgIFdyaXRlQmFycmllcjxNb2R1bGVQcm9ncmFtRXhlY3V0
YWJsZT4gbV9tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNNb2R1
bGVFbnZpcm9ubWVudD4gbV9tb2R1bGVFbnZpcm9ubWVudDsKICAgICBXcml0ZUJhcnJpZXI8SlNN
b2R1bGVOYW1lc3BhY2VPYmplY3Q+IG1fbW9kdWxlTmFtZXNwYWNlT2JqZWN0OworCisgICAgLy8g
V2UgYXNzdW1lIHRoYXQgYWxsIHRoZSBKU01vZHVsZVJlY29yZCBhcmUgcmV0YWluZWQgYnkgTW9k
dWxlTG9hZGVyT2JqZWN0J3MgcmVnaXN0cnkuCisgICAgLy8gU28gaGVyZSwgd2UgZG9uJ3Qgdmlz
aXQgZWFjaCBvYmplY3QgZm9yIEdDLiBUaGUgcmVzb2x1dGlvbiBjYWNoZSBtYXAgY2FjaGVzIHRo
ZSBvbmNlCisgICAgLy8gbG9va2VkIHVwIGNvcnJlY3RseSByZXNvbHZlZCByZXNvbHV0aW9uLCBz
aW5jZSAoMSkgd2UgcmFyZWx5IGxvb2tlZCB1cCB0aGUgbm9uLXJlc29sdmVkIG9uZSwKKyAgICAv
LyBhbmQgKDIpIGlmIHdlIGNhY2hlIGFsbCB0aGUgYXR0ZW1wdHMgdGhlIHNpemUgb2YgdGhlIG1h
cCBiZWNvbWVzIGluZmluaXRlbHkgbGFyZ2UuCisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxV
bmlxdWVkU3RyaW5nSW1wbD4sIFJlc29sdXRpb24sIElkZW50aWZpZXJSZXBIYXNoLCBIYXNoVHJh
aXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+PiBSZXNvbHV0aW9uczsKKyAgICBSZXNvbHV0
aW9ucyBtX3Jlc29sdXRpb25DYWNoZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261027</attachid>
            <date>2015-09-11 16:34:54 -0700</date>
            <delta_ts>2015-09-11 16:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150911163448.patch</filename>
            <type>text/plain</type>
            <size>9798</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi4yZjM3NTUzOGQ1ODUzYzNh
N2RjNTJhMjVmZDRjNDA3ODE5MTNjY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxNS0wOS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVz
b2x1dGlvbik6CisgICAgICAgIChKU0M6OmNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KToKKyAgICAg
ICAgKEpTQzo6cmVzb2x2ZUV4cG9ydExvb3ApOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaDoKKwogMjAxNS0wOS0xMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBmbG9hdHMgaW4gV2Vi
QXNzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJl
Y29yZC5jcHAKaW5kZXggZmIzNjQyOGYyYTdhN2ZjZjAxZmQyZTVlMzMzMjJlYzI1ZDdjYTJlNC4u
ZjgyNGU1N2YxMzE3MTM5ZGFjOTc5ZDE5Yjk0MTBhNjU2Y2YzZDEzYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcApAQCAtMjIwLDYgKzIy
MCwyNSBAQCBpbmxpbmUgYm9vbCBSZXNvbHZlUXVlcnlIYXNoOjplcXVhbChjb25zdCBSZXNvbHZl
UXVlcnkmIGxocywgY29uc3QgUmVzb2x2ZVF1ZXJ5JgogICAgIHJldHVybiBsaHMubW9kdWxlUmVj
b3JkID09IHJocy5tb2R1bGVSZWNvcmQgJiYgbGhzLmV4cG9ydE5hbWUgPT0gcmhzLmV4cG9ydE5h
bWU7CiB9CiAKK2F1dG8gSlNNb2R1bGVSZWNvcmQ6OnRyeUdldENhY2hlZFJlc29sc2lvbihVbmlx
dWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSkgLT4gT3B0aW9uYWw8UmVzb2x1dGlvbj4KK3sKKyAg
ICBjb25zdCBhdXRvIGl0ZXJhdG9yID0gbV9yZXNvbHV0aW9uQ2FjaGUuZmluZChleHBvcnROYW1l
KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9yZXNvbHV0aW9uQ2FjaGUuZW5kKCkpCisgICAgICAg
IHJldHVybiBOdWxsb3B0OworICAgIHJldHVybiBPcHRpb25hbDxSZXNvbHV0aW9uPihpdGVyYXRv
ci0+dmFsdWUpOworfQorCit2b2lkIEpTTW9kdWxlUmVjb3JkOjpjYWNoZVJlc29sdXRpb24oVW5p
cXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNvbnN0IFJlc29sdXRpb24mIHJlc29sdXRpb24p
Cit7CisgICAgbV9yZXNvbHV0aW9uQ2FjaGUuYWRkKGV4cG9ydE5hbWUsIHJlc29sdXRpb24pOwor
fQorCitzdGF0aWMgdm9pZCBjYWNoZVJlc29sdXRpb25Gb3JRdWVyeShjb25zdCBSZXNvbHZlUXVl
cnkmIHF1ZXJ5LCBjb25zdCBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiYgcmVzb2x1dGlvbikK
K3sKKyAgICBBU1NFUlQocmVzb2x1dGlvbi50eXBlID09IEpTTW9kdWxlUmVjb3JkOjpUeXBlOjpS
ZXNvbHZlZCk7CisgICAgcXVlcnkubW9kdWxlUmVjb3JkLT5jYWNoZVJlc29sdXRpb24ocXVlcnku
ZXhwb3J0TmFtZS5nZXQoKSwgcmVzb2x1dGlvbik7Cit9CisKIHN0YXRpYyBKU01vZHVsZVJlY29y
ZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJl
c29sdmVRdWVyeSYgcm9vdCkKIHsKICAgICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25h
bC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtcmVzb2x2ZWV4cG9ydApAQCAtMzUwLDEwICszNjksMTgg
QEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKIAogICAgICAgICBzd2l0Y2ggKHRhc2sudHlwZSkg
ewogICAgICAgICBjYXNlIFR5cGU6OlF1ZXJ5OiB7CisgICAgICAgICAgICBKU01vZHVsZVJlY29y
ZCogbW9kdWxlUmVjb3JkID0gcXVlcnkubW9kdWxlUmVjb3JkOworCisgICAgICAgICAgICAvLyBM
b29rIHVwIHRoZSBjYWNoZWQgcmVzb2x1dGlvbiBmaXJzdC4KKyAgICAgICAgICAgIGlmIChPcHRp
b25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNvbHV0aW9uID0gbW9kdWxlUmVjb3JkLT50cnlHZXRD
YWNoZWRSZXNvbHNpb24ocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKCpjYWNoZWRSZXNvbHV0aW9uKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIFJlc29sdXRpb246OmFtYmlndW91cygpOworICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAoIXJlc29sdmVTZXQu
YWRkKHRhc2sucXVlcnkpLmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBxdWVyeS5tb2R1bGVS
ZWNvcmQ7CiAgICAgICAgICAgICBjb25zdCBPcHRpb25hbDxKU01vZHVsZVJlY29yZDo6RXhwb3J0
RW50cnk+IG9wdGlvbmFsRXhwb3J0RW50cnkgPSBtb2R1bGVSZWNvcmQtPnRyeUdldEV4cG9ydEVu
dHJ5KHF1ZXJ5LmV4cG9ydE5hbWUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKCFvcHRpb25hbEV4
cG9ydEVudHJ5KSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gbWF0Y2hlZCBl
eHBvcnRlZCBiaW5kaW5nIGluIHRoZSBjdXJyZW50IG1vZHVsZSwKQEAgLTM2NiwxMCArMzkzLDE0
IEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgICAgICBjb25zdCBKU01vZHVsZVJl
Y29yZDo6RXhwb3J0RW50cnkmIGV4cG9ydEVudHJ5ID0gKm9wdGlvbmFsRXhwb3J0RW50cnk7CiAg
ICAgICAgICAgICBzd2l0Y2ggKGV4cG9ydEVudHJ5LnR5cGUpIHsKICAgICAgICAgICAgIGNhc2Ug
SlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpMb2NhbDoKLSAgICAgICAgICAgIGNh
c2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpOYW1lc3BhY2U6Ci0gICAgICAg
ICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChSZXNvbHV0aW9uIHsgUmVzb2x1dGlvbjo6
VHlwZTo6UmVzb2x2ZWQsIG1vZHVsZVJlY29yZCwgZXhwb3J0RW50cnkubG9jYWxOYW1lIH0pKQor
ICAgICAgICAgICAgY2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6Ok5hbWVz
cGFjZTogeworICAgICAgICAgICAgICAgIFJlc29sdXRpb24gcmVzb2x1dGlvbiB7IFJlc29sdXRp
b246OlR5cGU6OlJlc29sdmVkLCBtb2R1bGVSZWNvcmQsIGV4cG9ydEVudHJ5LmxvY2FsTmFtZSB9
OworICAgICAgICAgICAgICAgIC8vIENhY2hlIHRoZSBsb2NhbCByZXNvbHV0aW9uIHJlc3VsdCBo
ZXJlLgorICAgICAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCByZXNv
bHV0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHJlc29sdXRp
b24pKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7
CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IGNhc2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpJbmRpcmVjdDogewogICAg
ICAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBpbXBvcnRlZE1vZHVsZVJlY29yZCA9IG1vZHVs
ZVJlY29yZC0+aG9zdFJlc29sdmVJbXBvcnRlZE1vZHVsZShleGVjLCBleHBvcnRFbnRyeS5tb2R1
bGVOYW1lKTsKQEAgLTM5Nyw2ICs0MjgsMTAgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNv
bHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRShyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVz
b2x2ZWQsICJXaGVuIHdlIHNlZSBFcnJvciBhbmQgQW1iaWd1b3VzLCB3ZSBpbW1lZGlhdGVseSBy
ZXR1cm4gZnJvbSB0aGlzIGxvb3AuIFNvIGhlcmUsIG9ubHkgUmVzb2x2ZWQgY29tZXMuIik7Cisg
ICAgICAgICAgICAvLyBDYWNoZSB0aGUgaW5kaXJlY3QgcmVzb2x1dGlvbiByZXN1bHQgaGVyZS4K
KyAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCByZXNvbHV0aW9uKTsK
KwogICAgICAgICAgICAgLy8gSWYgaW5kaXJlY3QgZXhwb3J0IGVudHJ5IHByb2R1Y2VzIFJlc29s
dmVkLCB3ZSBzaG91bGQgbWVyZ2UgaXQgdG8gdGhlIHVwcGVyIGZyYW1lLgogICAgICAgICAgICAg
Ly8gQW5kIGRvIG5vdCBpbnZlc3RpZ2F0ZSB0aGUgc3RhcnMgb2YgdGhlIGN1cnJlbnQgbW9kdWxl
LgogICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChyZXNvbHV0aW9uKSkKQEAgLTQw
NSw4ICs0NDAsMTUgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVF
eHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgfQogCiAgICAg
ICAgIGNhc2UgVHlwZTo6R2F0aGVyU3RhcnM6IHsKLSAgICAgICAgICAgIC8vIE1lcmdlIHRoZSBz
dGFyIHJlc29sdXRpb24gdG8gdGhlIHVwcGVyIGZyYW1lLgogICAgICAgICAgICAgSlNNb2R1bGVS
ZWNvcmQ6OlJlc29sdXRpb24gc3RhclJlc29sdXRpb24gPSBmcmFtZXMudGFrZUxhc3QoKTsKKyAg
ICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uoc3RhclJlc29sdXRpb24udHlwZSA9PSBSZXNv
bHV0aW9uOjpUeXBlOjpSZXNvbHZlZCB8fCBzdGFyUmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRp
b246OlR5cGU6Ok5vdEZvdW5kLCAiV2hlbiB3ZSBzZWUgRXJyb3IgYW5kIEFtYmlndW91cywgd2Ug
aW1tZWRpYXRlbHkgcmV0dXJuIGZyb20gdGhpcyBsb29wLiBTbyBoZXJlLCBvbmx5IFJlc29sdmVk
IGFuZCBOb3RGb3VuZCBjb21lcy4iKTsKKworICAgICAgICAgICAgaWYgKHN0YXJSZXNvbHV0aW9u
LnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQpIHsKKyAgICAgICAgICAgICAgICAv
LyBDYWNoZSB0aGUgc3RhciByZXNvbHV0aW9uIHJlc3VsdCBoZXJlLgorICAgICAgICAgICAgICAg
IGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCBzdGFyUmVzb2x1dGlvbik7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC8vIE1lcmdlIHRoZSBzdGFyIHJlc29sdXRpb24gdG8gdGhl
IHVwcGVyIGZyYW1lLgogICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChzdGFyUmVz
b2x1dGlvbikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRpb246OmFtYmlndW91cygp
OwogICAgICAgICAgICAgYnJlYWs7CkBAIC00MjAsNiArNDYyLDkgQEAgc3RhdGljIEpTTW9kdWxl
UmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgUmVzb2wKIAogYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUV4cG9ydChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGV4cG9ydE5hbWUpIC0+IFJlc29sdXRpb24KIHsKKyAg
ICAvLyBMb29rIHVwIHRoZSBjYWNoZWQgcmVzb2x1dGlvbiBmaXJzdCBiZWZvcmUgZW50ZXJpbmcg
dGhlIHJlc29sdmluZyBsb29wLCBzaW5jZSB0aGUgbG9vcCBzZXR1cCB0YWtlcyBzb21lIGNvc3Qu
CisgICAgaWYgKE9wdGlvbmFsPFJlc29sdXRpb24+IGNhY2hlZFJlc29sdXRpb24gPSB0cnlHZXRD
YWNoZWRSZXNvbHNpb24oZXhwb3J0TmFtZS5pbXBsKCkpKQorICAgICAgICByZXR1cm4gKmNhY2hl
ZFJlc29sdXRpb247CiAgICAgcmV0dXJuIHJlc29sdmVFeHBvcnRMb29wKGV4ZWMsIFJlc29sdmVR
dWVyeSh0aGlzLCBleHBvcnROYW1lLmltcGwoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAppbmRleCA3MGExOTBmODJjNjc4ZDE4NjFm
NTA2ZWQxZDgwZjIyNWJjYzkwZTVlLi40YjdiOGE0ZjZiN2EzYzhlZWMwMzMxOTNlNzQ0YTRiNGM5
ZGM2N2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVs
ZVJlY29yZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVj
b3JkLmgKQEAgLTE0NCw2ICsxNDQsOSBAQCBjbGFzcyBKU01vZHVsZVJlY29yZCA6IHB1YmxpYyBK
U0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBKU01vZHVsZVJlY29yZCogaG9zdFJlc29sdmVJ
bXBvcnRlZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBtb2R1bGVOYW1lKTsK
IAorICAgIC8vIE9ubHkgdXNlZCBieSB0aGUgcmVzb2x2ZUV4cG9ydCBsb29wIGltcGxlbWVudGF0
aW9uLgorICAgIE9wdGlvbmFsPFJlc29sdXRpb24+IHRyeUdldENhY2hlZFJlc29sc2lvbihVbmlx
dWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSk7CisgICAgdm9pZCBjYWNoZVJlc29sdXRpb24oVW5p
cXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNvbnN0IFJlc29sdXRpb24mKTsKIHByaXZhdGU6
CiAgICAgSlNNb2R1bGVSZWNvcmQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3Qg
SWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBjb25z
dCBWYXJpYWJsZUVudmlyb25tZW50JiBkZWNsYXJlZFZhcmlhYmxlcywgY29uc3QgVmFyaWFibGVF
bnZpcm9ubWVudCYgbGV4aWNhbFZhcmlhYmxlcykKICAgICAgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1
cmUpCkBAIC0yMDIsNiArMjA1LDEzIEBAIGNsYXNzIEpTTW9kdWxlUmVjb3JkIDogcHVibGljIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8TW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGU+IG1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGU7CiAgICAgV3JpdGVCYXJyaWVyPEpTTW9k
dWxlRW52aXJvbm1lbnQ+IG1fbW9kdWxlRW52aXJvbm1lbnQ7CiAgICAgV3JpdGVCYXJyaWVyPEpT
TW9kdWxlTmFtZXNwYWNlT2JqZWN0PiBtX21vZHVsZU5hbWVzcGFjZU9iamVjdDsKKworICAgIC8v
IFdlIGFzc3VtZSB0aGF0IGFsbCB0aGUgSlNNb2R1bGVSZWNvcmQgYXJlIHJldGFpbmVkIGJ5IE1v
ZHVsZUxvYWRlck9iamVjdCdzIHJlZ2lzdHJ5LgorICAgIC8vIFNvIGhlcmUsIHdlIGRvbid0IHZp
c2l0IGVhY2ggb2JqZWN0IGZvciBHQy4gVGhlIHJlc29sdXRpb24gY2FjaGUgbWFwIGNhY2hlcyB0
aGUgb25jZQorICAgIC8vIGxvb2tlZCB1cCBjb3JyZWN0bHkgcmVzb2x2ZWQgcmVzb2x1dGlvbiwg
c2luY2UgKDEpIHdlIHJhcmVseSBsb29rZWQgdXAgdGhlIG5vbi1yZXNvbHZlZCBvbmUsCisgICAg
Ly8gYW5kICgyKSBpZiB3ZSBjYWNoZSBhbGwgdGhlIGF0dGVtcHRzIHRoZSBzaXplIG9mIHRoZSBt
YXAgYmVjb21lcyBpbmZpbml0ZWx5IGxhcmdlLgorICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8
VW5pcXVlZFN0cmluZ0ltcGw+LCBSZXNvbHV0aW9uLCBJZGVudGlmaWVyUmVwSGFzaCwgSGFzaFRy
YWl0czxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+Pj4gUmVzb2x1dGlvbnM7CisgICAgUmVzb2x1
dGlvbnMgbV9yZXNvbHV0aW9uQ2FjaGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261029</attachid>
            <date>2015-09-11 16:40:32 -0700</date>
            <delta_ts>2015-09-11 16:59:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150911164026.patch</filename>
            <type>text/plain</type>
            <size>9810</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi4yZjM3NTUzOGQ1ODUzYzNh
N2RjNTJhMjVmZDRjNDA3ODE5MTNjY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAxNS0wOS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVz
b2x1dGlvbik6CisgICAgICAgIChKU0M6OmNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KToKKyAgICAg
ICAgKEpTQzo6cmVzb2x2ZUV4cG9ydExvb3ApOgorICAgICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaDoKKwogMjAxNS0wOS0xMSAgU3Vrb2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdt
YWlsLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBmbG9hdHMgaW4gV2Vi
QXNzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01v
ZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJl
Y29yZC5jcHAKaW5kZXggZmIzNjQyOGYyYTdhN2ZjZjAxZmQyZTVlMzMzMjJlYzI1ZDdjYTJlNC4u
Y2JlNzQ5Zjk1YWU2YWYyMWY5ZGY2ODg2NzEwMjg1ZjBkMjZjMjliZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNwcApAQCAtMjIwLDYgKzIy
MCwyNSBAQCBpbmxpbmUgYm9vbCBSZXNvbHZlUXVlcnlIYXNoOjplcXVhbChjb25zdCBSZXNvbHZl
UXVlcnkmIGxocywgY29uc3QgUmVzb2x2ZVF1ZXJ5JgogICAgIHJldHVybiBsaHMubW9kdWxlUmVj
b3JkID09IHJocy5tb2R1bGVSZWNvcmQgJiYgbGhzLmV4cG9ydE5hbWUgPT0gcmhzLmV4cG9ydE5h
bWU7CiB9CiAKK2F1dG8gSlNNb2R1bGVSZWNvcmQ6OnRyeUdldENhY2hlZFJlc29sc2lvbihVbmlx
dWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSkgLT4gT3B0aW9uYWw8UmVzb2x1dGlvbj4KK3sKKyAg
ICBjb25zdCBhdXRvIGl0ZXJhdG9yID0gbV9yZXNvbHV0aW9uQ2FjaGUuZmluZChleHBvcnROYW1l
KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9yZXNvbHV0aW9uQ2FjaGUuZW5kKCkpCisgICAgICAg
IHJldHVybiBOdWxsb3B0OworICAgIHJldHVybiBPcHRpb25hbDxSZXNvbHV0aW9uPihpdGVyYXRv
ci0+dmFsdWUpOworfQorCit2b2lkIEpTTW9kdWxlUmVjb3JkOjpjYWNoZVJlc29sdXRpb24oVW5p
cXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNvbnN0IFJlc29sdXRpb24mIHJlc29sdXRpb24p
Cit7CisgICAgbV9yZXNvbHV0aW9uQ2FjaGUuYWRkKGV4cG9ydE5hbWUsIHJlc29sdXRpb24pOwor
fQorCitzdGF0aWMgdm9pZCBjYWNoZVJlc29sdXRpb25Gb3JRdWVyeShjb25zdCBSZXNvbHZlUXVl
cnkmIHF1ZXJ5LCBjb25zdCBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiYgcmVzb2x1dGlvbikK
K3sKKyAgICBBU1NFUlQocmVzb2x1dGlvbi50eXBlID09IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0
aW9uOjpUeXBlOjpSZXNvbHZlZCk7CisgICAgcXVlcnkubW9kdWxlUmVjb3JkLT5jYWNoZVJlc29s
dXRpb24ocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSwgcmVzb2x1dGlvbik7Cit9CisKIHN0YXRpYyBK
U01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFJlc29sdmVRdWVyeSYgcm9vdCkKIHsKICAgICAvLyBodHRwOi8vd3d3LmVjbWEt
aW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtcmVzb2x2ZWV4cG9ydApAQCAtMzUw
LDEwICszNjksMTggQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVF
eHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKIAogICAgICAgICBzd2l0Y2gg
KHRhc2sudHlwZSkgewogICAgICAgICBjYXNlIFR5cGU6OlF1ZXJ5OiB7CisgICAgICAgICAgICBK
U01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gcXVlcnkubW9kdWxlUmVjb3JkOworCisgICAg
ICAgICAgICAvLyBMb29rIHVwIHRoZSBjYWNoZWQgcmVzb2x1dGlvbiBmaXJzdC4KKyAgICAgICAg
ICAgIGlmIChPcHRpb25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNvbHV0aW9uID0gbW9kdWxlUmVj
b3JkLT50cnlHZXRDYWNoZWRSZXNvbHNpb24ocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKCpjYWNoZWRSZXNvbHV0aW9uKSkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRpb246OmFtYmlndW91cygpOworICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAo
IXJlc29sdmVTZXQuYWRkKHRhc2sucXVlcnkpLmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBx
dWVyeS5tb2R1bGVSZWNvcmQ7CiAgICAgICAgICAgICBjb25zdCBPcHRpb25hbDxKU01vZHVsZVJl
Y29yZDo6RXhwb3J0RW50cnk+IG9wdGlvbmFsRXhwb3J0RW50cnkgPSBtb2R1bGVSZWNvcmQtPnRy
eUdldEV4cG9ydEVudHJ5KHF1ZXJ5LmV4cG9ydE5hbWUuZ2V0KCkpOwogICAgICAgICAgICAgaWYg
KCFvcHRpb25hbEV4cG9ydEVudHJ5KSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMg
bm8gbWF0Y2hlZCBleHBvcnRlZCBiaW5kaW5nIGluIHRoZSBjdXJyZW50IG1vZHVsZSwKQEAgLTM2
NiwxMCArMzkzLDE0IEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZl
RXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgICAgICBjb25z
dCBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnkmIGV4cG9ydEVudHJ5ID0gKm9wdGlvbmFsRXhw
b3J0RW50cnk7CiAgICAgICAgICAgICBzd2l0Y2ggKGV4cG9ydEVudHJ5LnR5cGUpIHsKICAgICAg
ICAgICAgIGNhc2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpMb2NhbDoKLSAg
ICAgICAgICAgIGNhc2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpOYW1lc3Bh
Y2U6Ci0gICAgICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChSZXNvbHV0aW9uIHsg
UmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQsIG1vZHVsZVJlY29yZCwgZXhwb3J0RW50cnkubG9j
YWxOYW1lIH0pKQorICAgICAgICAgICAgY2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6
OlR5cGU6Ok5hbWVzcGFjZTogeworICAgICAgICAgICAgICAgIFJlc29sdXRpb24gcmVzb2x1dGlv
biB7IFJlc29sdXRpb246OlR5cGU6OlJlc29sdmVkLCBtb2R1bGVSZWNvcmQsIGV4cG9ydEVudHJ5
LmxvY2FsTmFtZSB9OworICAgICAgICAgICAgICAgIC8vIENhY2hlIHRoZSBsb2NhbCByZXNvbHV0
aW9uIHJlc3VsdCBoZXJlLgorICAgICAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5
KHF1ZXJ5LCByZXNvbHV0aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50
VG9wKHJlc29sdXRpb24pKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6
YW1iaWd1b3VzKCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIGNhc2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpJbmRp
cmVjdDogewogICAgICAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBpbXBvcnRlZE1vZHVsZVJl
Y29yZCA9IG1vZHVsZVJlY29yZC0+aG9zdFJlc29sdmVJbXBvcnRlZE1vZHVsZShleGVjLCBleHBv
cnRFbnRyeS5tb2R1bGVOYW1lKTsKQEAgLTM5Nyw2ICs0MjgsMTAgQEAgc3RhdGljIEpTTW9kdWxl
UmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgUmVzb2wKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIAorICAg
ICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlv
bjo6VHlwZTo6UmVzb2x2ZWQsICJXaGVuIHdlIHNlZSBFcnJvciBhbmQgQW1iaWd1b3VzLCB3ZSBp
bW1lZGlhdGVseSByZXR1cm4gZnJvbSB0aGlzIGxvb3AuIFNvIGhlcmUsIG9ubHkgUmVzb2x2ZWQg
Y29tZXMuIik7CisgICAgICAgICAgICAvLyBDYWNoZSB0aGUgaW5kaXJlY3QgcmVzb2x1dGlvbiBy
ZXN1bHQgaGVyZS4KKyAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCBy
ZXNvbHV0aW9uKTsKKwogICAgICAgICAgICAgLy8gSWYgaW5kaXJlY3QgZXhwb3J0IGVudHJ5IHBy
b2R1Y2VzIFJlc29sdmVkLCB3ZSBzaG91bGQgbWVyZ2UgaXQgdG8gdGhlIHVwcGVyIGZyYW1lLgog
ICAgICAgICAgICAgLy8gQW5kIGRvIG5vdCBpbnZlc3RpZ2F0ZSB0aGUgc3RhcnMgb2YgdGhlIGN1
cnJlbnQgbW9kdWxlLgogICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChyZXNvbHV0
aW9uKSkKQEAgLTQwNSw4ICs0NDAsMTUgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0
aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAg
ICAgfQogCiAgICAgICAgIGNhc2UgVHlwZTo6R2F0aGVyU3RhcnM6IHsKLSAgICAgICAgICAgIC8v
IE1lcmdlIHRoZSBzdGFyIHJlc29sdXRpb24gdG8gdGhlIHVwcGVyIGZyYW1lLgogICAgICAgICAg
ICAgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gc3RhclJlc29sdXRpb24gPSBmcmFtZXMudGFr
ZUxhc3QoKTsKKyAgICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uoc3RhclJlc29sdXRpb24u
dHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCB8fCBzdGFyUmVzb2x1dGlvbi50eXBl
ID09IFJlc29sdXRpb246OlR5cGU6Ok5vdEZvdW5kLCAiV2hlbiB3ZSBzZWUgRXJyb3IgYW5kIEFt
YmlndW91cywgd2UgaW1tZWRpYXRlbHkgcmV0dXJuIGZyb20gdGhpcyBsb29wLiBTbyBoZXJlLCBv
bmx5IFJlc29sdmVkIGFuZCBOb3RGb3VuZCBjb21lcy4iKTsKKworICAgICAgICAgICAgaWYgKHN0
YXJSZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQpIHsKKyAgICAg
ICAgICAgICAgICAvLyBDYWNoZSB0aGUgc3RhciByZXNvbHV0aW9uIHJlc3VsdCBoZXJlLgorICAg
ICAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCBzdGFyUmVzb2x1dGlv
bik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIE1lcmdlIHRoZSBzdGFyIHJlc29s
dXRpb24gdG8gdGhlIHVwcGVyIGZyYW1lLgogICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVu
dFRvcChzdGFyUmVzb2x1dGlvbikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRpb246
OmFtYmlndW91cygpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC00MjAsNiArNDYyLDkgQEAgc3Rh
dGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgUmVzb2wKIAogYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUV4cG9y
dChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGV4cG9ydE5hbWUpIC0+IFJlc29s
dXRpb24KIHsKKyAgICAvLyBMb29rIHVwIHRoZSBjYWNoZWQgcmVzb2x1dGlvbiBmaXJzdCBiZWZv
cmUgZW50ZXJpbmcgdGhlIHJlc29sdmluZyBsb29wLCBzaW5jZSB0aGUgbG9vcCBzZXR1cCB0YWtl
cyBzb21lIGNvc3QuCisgICAgaWYgKE9wdGlvbmFsPFJlc29sdXRpb24+IGNhY2hlZFJlc29sdXRp
b24gPSB0cnlHZXRDYWNoZWRSZXNvbHNpb24oZXhwb3J0TmFtZS5pbXBsKCkpKQorICAgICAgICBy
ZXR1cm4gKmNhY2hlZFJlc29sdXRpb247CiAgICAgcmV0dXJuIHJlc29sdmVFeHBvcnRMb29wKGV4
ZWMsIFJlc29sdmVRdWVyeSh0aGlzLCBleHBvcnROYW1lLmltcGwoKSkpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAppbmRleCA3MGExOTBm
ODJjNjc4ZDE4NjFmNTA2ZWQxZDgwZjIyNWJjYzkwZTVlLi40YjdiOGE0ZjZiN2EzYzhlZWMwMzMx
OTNlNzQ0YTRiNGM5ZGM2N2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU01vZHVsZVJlY29yZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTW9kdWxlUmVjb3JkLmgKQEAgLTE0NCw2ICsxNDQsOSBAQCBjbGFzcyBKU01vZHVsZVJlY29y
ZCA6IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAKICAgICBKU01vZHVsZVJlY29yZCog
aG9zdFJlc29sdmVJbXBvcnRlZE1vZHVsZShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBt
b2R1bGVOYW1lKTsKIAorICAgIC8vIE9ubHkgdXNlZCBieSB0aGUgcmVzb2x2ZUV4cG9ydCBsb29w
IGltcGxlbWVudGF0aW9uLgorICAgIE9wdGlvbmFsPFJlc29sdXRpb24+IHRyeUdldENhY2hlZFJl
c29sc2lvbihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSk7CisgICAgdm9pZCBjYWNoZVJl
c29sdXRpb24oVW5pcXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNvbnN0IFJlc29sdXRpb24m
KTsKIHByaXZhdGU6CiAgICAgSlNNb2R1bGVSZWNvcmQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgSWRlbnRpZmllciYgbW9kdWxlS2V5LCBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50JiBkZWNsYXJlZFZhcmlhYmxlcywgY29u
c3QgVmFyaWFibGVFbnZpcm9ubWVudCYgbGV4aWNhbFZhcmlhYmxlcykKICAgICAgICAgOiBCYXNl
KHZtLCBzdHJ1Y3R1cmUpCkBAIC0yMDIsNiArMjA1LDEzIEBAIGNsYXNzIEpTTW9kdWxlUmVjb3Jk
IDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8TW9kdWxl
UHJvZ3JhbUV4ZWN1dGFibGU+IG1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGU7CiAgICAgV3JpdGVC
YXJyaWVyPEpTTW9kdWxlRW52aXJvbm1lbnQ+IG1fbW9kdWxlRW52aXJvbm1lbnQ7CiAgICAgV3Jp
dGVCYXJyaWVyPEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0PiBtX21vZHVsZU5hbWVzcGFjZU9iamVj
dDsKKworICAgIC8vIFdlIGFzc3VtZSB0aGF0IGFsbCB0aGUgSlNNb2R1bGVSZWNvcmQgYXJlIHJl
dGFpbmVkIGJ5IE1vZHVsZUxvYWRlck9iamVjdCdzIHJlZ2lzdHJ5LgorICAgIC8vIFNvIGhlcmUs
IHdlIGRvbid0IHZpc2l0IGVhY2ggb2JqZWN0IGZvciBHQy4gVGhlIHJlc29sdXRpb24gY2FjaGUg
bWFwIGNhY2hlcyB0aGUgb25jZQorICAgIC8vIGxvb2tlZCB1cCBjb3JyZWN0bHkgcmVzb2x2ZWQg
cmVzb2x1dGlvbiwgc2luY2UgKDEpIHdlIHJhcmVseSBsb29rZWQgdXAgdGhlIG5vbi1yZXNvbHZl
ZCBvbmUsCisgICAgLy8gYW5kICgyKSBpZiB3ZSBjYWNoZSBhbGwgdGhlIGF0dGVtcHRzIHRoZSBz
aXplIG9mIHRoZSBtYXAgYmVjb21lcyBpbmZpbml0ZWx5IGxhcmdlLgorICAgIHR5cGVkZWYgSGFz
aE1hcDxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCBSZXNvbHV0aW9uLCBJZGVudGlmaWVyUmVw
SGFzaCwgSGFzaFRyYWl0czxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+Pj4gUmVzb2x1dGlvbnM7
CisgICAgUmVzb2x1dGlvbnMgbV9yZXNvbHV0aW9uQ2FjaGU7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261033</attachid>
            <date>2015-09-11 16:59:58 -0700</date>
            <delta_ts>2015-09-12 00:55:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150911165951.patch</filename>
            <type>text/plain</type>
            <size>14870</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi4yMjYwNTRkYWNmZjgxZTE1
MjY2NDlhZmUzYTEwNjJiMjk2ZDk5MWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MiBAQAorMjAxNS0wOS0xMSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVR
dWVyeTo6SGFzaDo6aGFzaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlUmVjb3JkOjpSZXNvbHZl
UXVlcnk6Okhhc2g6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hl
UmVzb2x1dGlvbik6CisgICAgICAgIChKU0M6OlJlc29sdmVRdWVyeUhhc2g6Omhhc2gpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpSZXNvbHZlUXVlcnlIYXNoOjplcXVhbCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OnJlc29sdmVFeHBvcnRMb29wKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL0pTTW9kdWxlUmVjb3JkLmg6CisKIDIwMTUtMDktMTEgIFN1a29sc2FrIFNha3NodXdvbmcg
IDxzdWtvbHNha0BnbWFpbC5jb20+CiAKICAgICAgICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3Ig
ZmxvYXRzIGluIFdlYkFzc3NlbWJseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNNb2R1bGVSZWNvcmQuY3BwCmluZGV4IGZiMzY0MjhmMmE3YTdmY2YwMWZkMmU1ZTMzMzIy
ZWMyNWQ3Y2EyZTQuLjdmNTMyMDJjYzBhMmUxYjZkMTdiZDBmZGIyNzNiZTljZTllY2FjYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAK
QEAgLTE2NCw3ICsxNjQsMTMgQEAgYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUltcG9ydChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGxvY2FsTmFtZSkKICAgICByZXR1cm4g
aW1wb3J0ZWRNb2R1bGUtPnJlc29sdmVFeHBvcnQoZXhlYywgaW1wb3J0RW50cnkuaW1wb3J0TmFt
ZSk7CiB9CiAKLXN0cnVjdCBSZXNvbHZlUXVlcnkgeworc3RydWN0IEpTTW9kdWxlUmVjb3JkOjpS
ZXNvbHZlUXVlcnkgeworICAgIHN0cnVjdCBIYXNoIHsKKyAgICAgICAgc3RhdGljIHVuc2lnbmVk
IGhhc2goY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7CisgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNv
bnN0IFJlc29sdmVRdWVyeSYsIGNvbnN0IFJlc29sdmVRdWVyeSYpOworICAgICAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7CisgICAgfTsK
KwogICAgIFJlc29sdmVRdWVyeShKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkLCBVbmlxdWVk
U3RyaW5nSW1wbCogZXhwb3J0TmFtZSkKICAgICAgICAgOiBtb2R1bGVSZWNvcmQobW9kdWxlUmVj
b3JkKQogICAgICAgICAsIGV4cG9ydE5hbWUoZXhwb3J0TmFtZSkKQEAgLTIwNCwyMyArMjEwLDMw
IEBAIHN0cnVjdCBSZXNvbHZlUXVlcnkgewogICAgIFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4g
ZXhwb3J0TmFtZTsKIH07CiAKLXN0cnVjdCBSZXNvbHZlUXVlcnlIYXNoIHsKLSAgICBzdGF0aWMg
dW5zaWduZWQgaGFzaChjb25zdCBSZXNvbHZlUXVlcnkmKTsKLSAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBSZXNvbHZlUXVlcnkmLCBjb25zdCBSZXNvbHZlUXVlcnkmKTsKLSAgICBzdGF0aWMg
Y29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Ci19OwotCi1p
bmxpbmUgdW5zaWduZWQgUmVzb2x2ZVF1ZXJ5SGFzaDo6aGFzaChjb25zdCBSZXNvbHZlUXVlcnkm
IHF1ZXJ5KQoraW5saW5lIHVuc2lnbmVkIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHZlUXVlcnk6Okhh
c2g6Omhhc2goY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSkKIHsKICAgICByZXR1cm4gV1RGOjpQ
dHJIYXNoPEpTTW9kdWxlUmVjb3JkKj46Omhhc2gocXVlcnkubW9kdWxlUmVjb3JkKSArIElkZW50
aWZpZXJSZXBIYXNoOjpoYXNoKHF1ZXJ5LmV4cG9ydE5hbWUpOwogfQogCi1pbmxpbmUgYm9vbCBS
ZXNvbHZlUXVlcnlIYXNoOjplcXVhbChjb25zdCBSZXNvbHZlUXVlcnkmIGxocywgY29uc3QgUmVz
b2x2ZVF1ZXJ5JiByaHMpCitpbmxpbmUgYm9vbCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5
OjpIYXNoOjplcXVhbChjb25zdCBSZXNvbHZlUXVlcnkmIGxocywgY29uc3QgUmVzb2x2ZVF1ZXJ5
JiByaHMpCiB7CiAgICAgcmV0dXJuIGxocy5tb2R1bGVSZWNvcmQgPT0gcmhzLm1vZHVsZVJlY29y
ZCAmJiBsaHMuZXhwb3J0TmFtZSA9PSByaHMuZXhwb3J0TmFtZTsKIH0KIAotc3RhdGljIEpTTW9k
dWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgUmVzb2x2ZVF1ZXJ5JiByb290KQorYXV0byBKU01vZHVsZVJlY29yZDo6dHJ5R2V0Q2Fj
aGVkUmVzb2xzaW9uKFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKSAtPiBPcHRpb25hbDxS
ZXNvbHV0aW9uPgoreworICAgIGNvbnN0IGF1dG8gaXRlcmF0b3IgPSBtX3Jlc29sdXRpb25DYWNo
ZS5maW5kKGV4cG9ydE5hbWUpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3Jlc29sdXRpb25DYWNo
ZS5lbmQoKSkKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgcmV0dXJuIE9wdGlvbmFsPFJl
c29sdXRpb24+KGl0ZXJhdG9yLT52YWx1ZSk7Cit9CisKK3ZvaWQgSlNNb2R1bGVSZWNvcmQ6OmNh
Y2hlUmVzb2x1dGlvbihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSwgY29uc3QgUmVzb2x1
dGlvbiYgcmVzb2x1dGlvbikKK3sKKyAgICBtX3Jlc29sdXRpb25DYWNoZS5hZGQoZXhwb3J0TmFt
ZSwgcmVzb2x1dGlvbik7Cit9CisKK2F1dG8gSlNNb2R1bGVSZWNvcmQ6OnJlc29sdmVFeHBvcnRJ
bXBsKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2x2ZVF1ZXJ5JiByb290KSAtPiBSZXNvbHV0
aW9uCiB7CiAgICAgLy8gaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYy
LzYuMC8jc2VjLXJlc29sdmVleHBvcnQKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGF2b2lkcyBDKysg
cmVjdXJzaW9uIG9mIHRoZSBuYWl2ZSBSZXNvbHZlRXhwb3J0IGltcGxlbWVudGF0aW9uLgpAQCAt
Mjc3LDggKzI5MCw3IEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZl
RXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgLy8gVG8gZm9sbG93
IHRoZSByZXF1aXJlbWVudCBzdHJpY3RseSwgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgd2Uga2Vl
cCB0aGUgbG9jYWwgcmVzb2x1dGlvbiByZXN1bHQgdG8gcHJvZHVjZSB0aGUKICAgICAvLyBjb3Jy
ZWN0IHJlc3VsdCB1bmRlciB0aGUgYWJvdmUgY29tcGxleCBjYXNlcy4KIAotICAgIHVzaW5nIFJl
c29sdXRpb24gPSBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbjsKLSAgICB0eXBlZGVmIFdURjo6
SGFzaFNldDxSZXNvbHZlUXVlcnksIFJlc29sdmVRdWVyeUhhc2gsIFdURjo6Q3VzdG9tSGFzaFRy
YWl0czxSZXNvbHZlUXVlcnk+PiBSZXNvbHZlU2V0OworICAgIHR5cGVkZWYgV1RGOjpIYXNoU2V0
PFJlc29sdmVRdWVyeSwgUmVzb2x2ZVF1ZXJ5OjpIYXNoLCBXVEY6OkN1c3RvbUhhc2hUcmFpdHM8
UmVzb2x2ZVF1ZXJ5Pj4gUmVzb2x2ZVNldDsKICAgICBlbnVtIGNsYXNzIFR5cGUgeyBRdWVyeSwg
SW5kaXJlY3RGYWxsYmFjaywgR2F0aGVyU3RhcnMgfTsKICAgICBzdHJ1Y3QgVGFzayB7CiAgICAg
ICAgIFJlc29sdmVRdWVyeSBxdWVyeTsKQEAgLTI5NCw3ICszMDYsOCBAQCBzdGF0aWMgSlNNb2R1
bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBSZXNvbAogCiAgICAgLy8gQ2FsbCB3aGVuIHRoZSBxdWVyeSBpcyBub3QgcmVzb2x2ZWQg
aW4gdGhlIGN1cnJlbnQgbW9kdWxlLgogICAgIC8vIEl0IHdpbGwgZW5xdWV1ZSB0aGUgc3RhciBy
ZXNvbHV0aW9uIHJlcXVlc3RzLiBSZXR1cm4gImZhbHNlIiBpZiB0aGUgZXJyb3Igb2NjdXJzLgot
ICAgIGF1dG8gcmVzb2x2ZU5vbkxvY2FsID0gWyZdKGNvbnN0IFJlc29sdmVRdWVyeSYgcXVlcnkp
IC0+IGJvb2wgeworICAgIGF1dG8gcmVzb2x2ZU5vbkxvY2FsID0gWyZdKGNvbnN0IFJlc29sdmVR
dWVyeSYgcXVlcnkpIC0+IGJvb2wKKyAgICB7CiAgICAgICAgIC8vIGh0dHA6Ly93d3cuZWNtYS1p
bnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1yZXNvbHZlZXhwb3J0CiAgICAgICAg
IC8vIHNlY3Rpb24gMTUuMi4xLjE2LjMsIHN0ZXAgNgogICAgICAgICAvLyBJZiB0aGUgImRlZmF1
bHQiIG5hbWUgaXMgbm90IHJlc29sdmVkIGluIHRoZSBjdXJyZW50IG1vZHVsZSwgd2UgbmVlZCB0
byB0aHJvdyBhbiBlcnJvciBhbmQgc3RvcCByZXNvbHV0aW9uIGltbWVkaWF0ZWx5LApAQCAtMzIx
LDE0ICszMzQsMTYgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVF
eHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICB9OwogCiAgICAgLy8g
UmV0dXJuIHRoZSBjdXJyZW50IHJlc29sdXRpb24gdmFsdWUgb2YgdGhlIHRvcCBmcmFtZS4KLSAg
ICBhdXRvIGN1cnJlbnRUb3AgPSBbJl0gKCkgLT4gUmVzb2x1dGlvbiYgeworICAgIGF1dG8gY3Vy
cmVudFRvcCA9IFsmXSAoKSAtPiBSZXNvbHV0aW9uJgorICAgIHsKICAgICAgICAgQVNTRVJUKCFm
cmFtZXMuaXNFbXB0eSgpKTsKICAgICAgICAgcmV0dXJuIGZyYW1lcy5sYXN0KCk7CiAgICAgfTsK
IAogICAgIC8vIE1lcmdlIHRoZSBnaXZlbiByZXNvbHV0aW9uIHRvIHRoZSBjdXJyZW50IHJlc29s
dXRpb24gdmFsdWUgb2YgdGhlIHRvcCBmcmFtZS4KICAgICAvLyBJZiB0aGVyZSBpcyBhbWJpZ3Vp
dHksIHJldHVybiAiZmFsc2UiLiBXaGVuIHRoZSAiZmFsc2UiIGlzIHJldHVybmVkLCB3ZSBzaG91
bGQgbWFrZSB0aGUgcmVzdWx0ICJhbWJpZ3VvdXMiLgotICAgIGF1dG8gbWVyZ2VUb0N1cnJlbnRU
b3AgPSBbJl0gKGNvbnN0IFJlc29sdXRpb24mIHJlc29sdXRpb24pIC0+IGJvb2wgeworICAgIGF1
dG8gbWVyZ2VUb0N1cnJlbnRUb3AgPSBbJl0gKGNvbnN0IFJlc29sdXRpb24mIHJlc29sdXRpb24p
IC0+IGJvb2wKKyAgICB7CiAgICAgICAgIGlmIChyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlv
bjo6VHlwZTo6Tm90Rm91bmQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMzQzLDYg
KzM1OCwxMiBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9y
dExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9OwogCisgICAgYXV0byBjYWNoZVJlc29sdXRpb25Gb3JRdWVyeSA9IFtdIChjb25zdCBS
ZXNvbHZlUXVlcnkmIHF1ZXJ5LCBjb25zdCBSZXNvbHV0aW9uJiByZXNvbHV0aW9uKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKHJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNv
bHZlZCk7CisgICAgICAgIHF1ZXJ5Lm1vZHVsZVJlY29yZC0+Y2FjaGVSZXNvbHV0aW9uKHF1ZXJ5
LmV4cG9ydE5hbWUuZ2V0KCksIHJlc29sdXRpb24pOworICAgIH07CisKICAgICBwZW5kaW5nVGFz
a3MuYXBwZW5kKFRhc2sgeyByb290LCBUeXBlOjpRdWVyeSB9KTsKICAgICB3aGlsZSAoIXBlbmRp
bmdUYXNrcy5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3QgVGFzayB0YXNrID0gcGVuZGluZ1Rh
c2tzLnRha2VMYXN0KCk7CkBAIC0zNTAsMTEgKzM3MSwxOSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNv
cmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBS
ZXNvbAogCiAgICAgICAgIHN3aXRjaCAodGFzay50eXBlKSB7CiAgICAgICAgIGNhc2UgVHlwZTo6
UXVlcnk6IHsKKyAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBxdWVy
eS5tb2R1bGVSZWNvcmQ7CisKKyAgICAgICAgICAgIC8vIExvb2sgdXAgdGhlIGNhY2hlZCByZXNv
bHV0aW9uIGZpcnN0LgorICAgICAgICAgICAgaWYgKE9wdGlvbmFsPFJlc29sdXRpb24+IGNhY2hl
ZFJlc29sdXRpb24gPSBtb2R1bGVSZWNvcmQtPnRyeUdldENhY2hlZFJlc29sc2lvbihxdWVyeS5l
eHBvcnROYW1lLmdldCgpKSkgeworICAgICAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRU
b3AoKmNhY2hlZFJlc29sdXRpb24pKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1
dGlvbjo6YW1iaWd1b3VzKCk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICB9CisKICAgICAgICAgICAgIGlmICghcmVzb2x2ZVNldC5hZGQodGFzay5xdWVyeSkuaXNOZXdF
bnRyeSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgSlNNb2R1bGVS
ZWNvcmQqIG1vZHVsZVJlY29yZCA9IHF1ZXJ5Lm1vZHVsZVJlY29yZDsKLSAgICAgICAgICAgIGNv
bnN0IE9wdGlvbmFsPEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRyeT4gb3B0aW9uYWxFeHBvcnRF
bnRyeSA9IG1vZHVsZVJlY29yZC0+dHJ5R2V0RXhwb3J0RW50cnkocXVlcnkuZXhwb3J0TmFtZS5n
ZXQoKSk7CisgICAgICAgICAgICBjb25zdCBPcHRpb25hbDxFeHBvcnRFbnRyeT4gb3B0aW9uYWxF
eHBvcnRFbnRyeSA9IG1vZHVsZVJlY29yZC0+dHJ5R2V0RXhwb3J0RW50cnkocXVlcnkuZXhwb3J0
TmFtZS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoIW9wdGlvbmFsRXhwb3J0RW50cnkpIHsKICAg
ICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBtYXRjaGVkIGV4cG9ydGVkIGJpbmRpbmcg
aW4gdGhlIGN1cnJlbnQgbW9kdWxlLAogICAgICAgICAgICAgICAgIC8vIHdlIG5lZWQgdG8gbG9v
ayBpbnRvIHRoZSBzdGFycy4KQEAgLTM2MywxNSArMzkyLDE5IEBAIHN0YXRpYyBKU01vZHVsZVJl
Y29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFJlc29sCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGNvbnN0IEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRyeSYgZXhwb3J0RW50cnkgPSAq
b3B0aW9uYWxFeHBvcnRFbnRyeTsKKyAgICAgICAgICAgIGNvbnN0IEV4cG9ydEVudHJ5JiBleHBv
cnRFbnRyeSA9ICpvcHRpb25hbEV4cG9ydEVudHJ5OwogICAgICAgICAgICAgc3dpdGNoIChleHBv
cnRFbnRyeS50eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRF
bnRyeTo6VHlwZTo6TG9jYWw6Ci0gICAgICAgICAgICBjYXNlIEpTTW9kdWxlUmVjb3JkOjpFeHBv
cnRFbnRyeTo6VHlwZTo6TmFtZXNwYWNlOgotICAgICAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1
cnJlbnRUb3AoUmVzb2x1dGlvbiB7IFJlc29sdXRpb246OlR5cGU6OlJlc29sdmVkLCBtb2R1bGVS
ZWNvcmQsIGV4cG9ydEVudHJ5LmxvY2FsTmFtZSB9KSkKKyAgICAgICAgICAgIGNhc2UgRXhwb3J0
RW50cnk6OlR5cGU6OkxvY2FsOgorICAgICAgICAgICAgY2FzZSBFeHBvcnRFbnRyeTo6VHlwZTo6
TmFtZXNwYWNlOiB7CisgICAgICAgICAgICAgICAgUmVzb2x1dGlvbiByZXNvbHV0aW9uIHsgUmVz
b2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQsIG1vZHVsZVJlY29yZCwgZXhwb3J0RW50cnkubG9jYWxO
YW1lIH07CisgICAgICAgICAgICAgICAgLy8gQ2FjaGUgdGhlIGxvY2FsIHJlc29sdXRpb24gcmVz
dWx0IGhlcmUuCisgICAgICAgICAgICAgICAgY2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkocXVlcnks
IHJlc29sdXRpb24pOworICAgICAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3AocmVz
b2x1dGlvbikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uOjphbWJpZ3Vv
dXMoKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgY2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6OkluZGlyZWN0OiB7
CisgICAgICAgICAgICBjYXNlIEV4cG9ydEVudHJ5OjpUeXBlOjpJbmRpcmVjdDogewogICAgICAg
ICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBpbXBvcnRlZE1vZHVsZVJlY29yZCA9IG1vZHVsZVJl
Y29yZC0+aG9zdFJlc29sdmVJbXBvcnRlZE1vZHVsZShleGVjLCBleHBvcnRFbnRyeS5tb2R1bGVO
YW1lKTsKIAogICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGltcG9ydGVkIG1vZHVsZSBkb2Vz
IG5vdCBwcm9kdWNlIGFueSByZXNvbHZlZCBiaW5kaW5nLCB3ZSBuZWVkIHRvIGxvb2sgaW50byB0
aGUgc3RhcnMgaW4gdGhlICpjdXJyZW50KgpAQCAtMzg3LDcgKzQyMCw3IEBAIHN0YXRpYyBKU01v
ZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFJlc29sCiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIFR5cGU6OkluZGlyZWN0RmFs
bGJhY2s6IHsKLSAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdXRp
b24gPSBmcmFtZXMudGFrZUxhc3QoKTsKKyAgICAgICAgICAgIFJlc29sdXRpb24gcmVzb2x1dGlv
biA9IGZyYW1lcy50YWtlTGFzdCgpOwogCiAgICAgICAgICAgICBpZiAocmVzb2x1dGlvbi50eXBl
ID09IFJlc29sdXRpb246OlR5cGU6Ok5vdEZvdW5kKSB7CiAgICAgICAgICAgICAgICAgLy8gSW5k
aXJlY3QgZXhwb3J0IGVudHJ5IGRvZXMgbm90IHByb2R1Y2UgYW55IHJlc29sdmVkIGJpbmRpbmcu
CkBAIC0zOTcsNiArNDMwLDEwIEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiBy
ZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UocmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246OlR5cGU6OlJlc29sdmVkLCAi
V2hlbiB3ZSBzZWUgRXJyb3IgYW5kIEFtYmlndW91cywgd2UgaW1tZWRpYXRlbHkgcmV0dXJuIGZy
b20gdGhpcyBsb29wLiBTbyBoZXJlLCBvbmx5IFJlc29sdmVkIGNvbWVzLiIpOworICAgICAgICAg
ICAgLy8gQ2FjaGUgdGhlIGluZGlyZWN0IHJlc29sdXRpb24gcmVzdWx0IGhlcmUuCisgICAgICAg
ICAgICBjYWNoZVJlc29sdXRpb25Gb3JRdWVyeShxdWVyeSwgcmVzb2x1dGlvbik7CisKICAgICAg
ICAgICAgIC8vIElmIGluZGlyZWN0IGV4cG9ydCBlbnRyeSBwcm9kdWNlcyBSZXNvbHZlZCwgd2Ug
c2hvdWxkIG1lcmdlIGl0IHRvIHRoZSB1cHBlciBmcmFtZS4KICAgICAgICAgICAgIC8vIEFuZCBk
byBub3QgaW52ZXN0aWdhdGUgdGhlIHN0YXJzIG9mIHRoZSBjdXJyZW50IG1vZHVsZS4KICAgICAg
ICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3AocmVzb2x1dGlvbikpCkBAIC00MDUsOCArNDQy
LDE1IEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9v
cChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgIH0KIAogICAgICAgICBjYXNl
IFR5cGU6OkdhdGhlclN0YXJzOiB7CisgICAgICAgICAgICBSZXNvbHV0aW9uIHN0YXJSZXNvbHV0
aW9uID0gZnJhbWVzLnRha2VMYXN0KCk7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHN0YXJSZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQgfHwgc3Rh
clJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpOb3RGb3VuZCwgIldoZW4gd2Ug
c2VlIEVycm9yIGFuZCBBbWJpZ3VvdXMsIHdlIGltbWVkaWF0ZWx5IHJldHVybiBmcm9tIHRoaXMg
bG9vcC4gU28gaGVyZSwgb25seSBSZXNvbHZlZCBhbmQgTm90Rm91bmQgY29tZXMuIik7CisKKyAg
ICAgICAgICAgIGlmIChzdGFyUmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246OlR5cGU6OlJl
c29sdmVkKSB7CisgICAgICAgICAgICAgICAgLy8gQ2FjaGUgdGhlIHN0YXIgcmVzb2x1dGlvbiBy
ZXN1bHQgaGVyZS4KKyAgICAgICAgICAgICAgICBjYWNoZVJlc29sdXRpb25Gb3JRdWVyeShxdWVy
eSwgc3RhclJlc29sdXRpb24pOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAvLyBNZXJn
ZSB0aGUgc3RhciByZXNvbHV0aW9uIHRvIHRoZSB1cHBlciBmcmFtZS4KLSAgICAgICAgICAgIEpT
TW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHN0YXJSZXNvbHV0aW9uID0gZnJhbWVzLnRha2VMYXN0
KCk7CiAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHN0YXJSZXNvbHV0aW9uKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTQyMCw3ICs0NjQsMTAgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpS
ZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wK
IAogYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUV4cG9ydChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIGV4cG9ydE5hbWUpIC0+IFJlc29sdXRpb24KIHsKLSAgICByZXR1cm4g
cmVzb2x2ZUV4cG9ydExvb3AoZXhlYywgUmVzb2x2ZVF1ZXJ5KHRoaXMsIGV4cG9ydE5hbWUuaW1w
bCgpKSk7CisgICAgLy8gTG9vayB1cCB0aGUgY2FjaGVkIHJlc29sdXRpb24gZmlyc3QgYmVmb3Jl
IGVudGVyaW5nIHRoZSByZXNvbHZpbmcgbG9vcCwgc2luY2UgdGhlIGxvb3Agc2V0dXAgdGFrZXMg
c29tZSBjb3N0LgorICAgIGlmIChPcHRpb25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNvbHV0aW9u
ID0gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKGV4cG9ydE5hbWUuaW1wbCgpKSkKKyAgICAgICAgcmV0
dXJuICpjYWNoZWRSZXNvbHV0aW9uOworICAgIHJldHVybiByZXNvbHZlRXhwb3J0SW1wbChleGVj
LCBSZXNvbHZlUXVlcnkodGhpcywgZXhwb3J0TmFtZS5pbXBsKCkpKTsKIH0KIAogc3RhdGljIHZv
aWQgZ2V0RXhwb3J0ZWROYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlUmVjb3JkKiByb290
LCBJZGVudGlmaWVyU2V0JiBleHBvcnRlZE5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKaW5kZXggNzBhMTkwZjgyYzY3OGQxODYxZjUwNmVk
MWQ4MGYyMjViY2M5MGU1ZS4uYzlkNzU4N2YzODJjN2JmMDJjY2IwN2IzYjBhMmRjZTk1Y2M4ODMw
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNv
cmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5o
CkBAIC0xNjMsNiArMTYzLDExIEBAIGNsYXNzIEpTTW9kdWxlUmVjb3JkIDogcHVibGljIEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAgIHZvaWQgaW5zdGFudGlhdGVEZWNsYXJhdGlvbnMoRXhl
Y1N0YXRlKiwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqKTsKIAorICAgIHN0cnVjdCBSZXNvbHZl
UXVlcnk7CisgICAgc3RhdGljIFJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydEltcGwoRXhlY1N0YXRl
KiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7CisgICAgT3B0aW9uYWw8UmVzb2x1dGlvbj4gdHJ5R2V0
Q2FjaGVkUmVzb2xzaW9uKFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKTsKKyAgICB2b2lk
IGNhY2hlUmVzb2x1dGlvbihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSwgY29uc3QgUmVz
b2x1dGlvbiYpOworCiAgICAgLy8gVGhlIGxvYWRlciByZXNvbHZlcyB0aGUgZ2l2ZW4gbW9kdWxl
IG5hbWUgdG8gdGhlIG1vZHVsZSBrZXkuIFRoZSBtb2R1bGUga2V5IGlzIHRoZSB1bmlxdWUgdmFs
dWUgdG8gcmVwcmVzZW50IHRoaXMgbW9kdWxlLgogICAgIElkZW50aWZpZXIgbV9tb2R1bGVLZXk7
CiAKQEAgLTIwMiw2ICsyMDcsMTMgQEAgY2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMgSlNE
ZXN0cnVjdGlibGVPYmplY3QgewogICAgIFdyaXRlQmFycmllcjxNb2R1bGVQcm9ncmFtRXhlY3V0
YWJsZT4gbV9tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNNb2R1
bGVFbnZpcm9ubWVudD4gbV9tb2R1bGVFbnZpcm9ubWVudDsKICAgICBXcml0ZUJhcnJpZXI8SlNN
b2R1bGVOYW1lc3BhY2VPYmplY3Q+IG1fbW9kdWxlTmFtZXNwYWNlT2JqZWN0OworCisgICAgLy8g
V2UgYXNzdW1lIHRoYXQgYWxsIHRoZSBKU01vZHVsZVJlY29yZCBhcmUgcmV0YWluZWQgYnkgTW9k
dWxlTG9hZGVyT2JqZWN0J3MgcmVnaXN0cnkuCisgICAgLy8gU28gaGVyZSwgd2UgZG9uJ3Qgdmlz
aXQgZWFjaCBvYmplY3QgZm9yIEdDLiBUaGUgcmVzb2x1dGlvbiBjYWNoZSBtYXAgY2FjaGVzIHRo
ZSBvbmNlCisgICAgLy8gbG9va2VkIHVwIGNvcnJlY3RseSByZXNvbHZlZCByZXNvbHV0aW9uLCBz
aW5jZSAoMSkgd2UgcmFyZWx5IGxvb2tlZCB1cCB0aGUgbm9uLXJlc29sdmVkIG9uZSwKKyAgICAv
LyBhbmQgKDIpIGlmIHdlIGNhY2hlIGFsbCB0aGUgYXR0ZW1wdHMgdGhlIHNpemUgb2YgdGhlIG1h
cCBiZWNvbWVzIGluZmluaXRlbHkgbGFyZ2UuCisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxV
bmlxdWVkU3RyaW5nSW1wbD4sIFJlc29sdXRpb24sIElkZW50aWZpZXJSZXBIYXNoLCBIYXNoVHJh
aXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+PiBSZXNvbHV0aW9uczsKKyAgICBSZXNvbHV0
aW9ucyBtX3Jlc29sdXRpb25DYWNoZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261050</attachid>
            <date>2015-09-12 00:55:45 -0700</date>
            <delta_ts>2015-09-12 22:39:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150912005537.patch</filename>
            <type>text/plain</type>
            <size>34999</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi40Mjg2N2ExYzhjMzc0NzVl
NWVjYThiZWY4YTgxMGZiYTI5ZTVkM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NiBAQAorMjAxNS0wOS0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgQ3VycmVudGx5LCB0
aGUgYWxsIG1vZHVsZXMgY2Fubm90IGJlIGxpbmtlZCB0d2ljZS4gRm9yIGV4YW1wbGUsCisKKyAg
ICAgICAgICBncmFwaCAxCisKKyAgICAgICAgICAtPiAoQSkgLT4gKEIpCisKKyAgICAgICAgICBn
cmFwaCAyCisKKyAgICAgICAgICAtPiAoQykgLT4gKEEpIC0+IChCKQorCisgICAgICAgIFdlIGNh
bm5vdCB0ZXN0IHRoZSBiZWhhdmlvciBub3cgYmVjYXVzZSB3aGVuIGV4ZWN1dGluZyB0aGUgZ3Jh
cGggMiwgKEEpIGFuZCAoQikgYXJlIGFscmVhZHkgbGlua2VkLAorICAgICAgICBpdCByYWlzZXMg
YW4gZXJyb3IgaW4gdGhlIGN1cnJlbnQgbG9hZGVyIHNwZWMuIEJ1dCBpdCBzaG91bGQgYmUgYWxs
b3dlZFsxXSBzaW5jZSBpdCB3aWxsIG9jY3VyIHdoZW4KKyAgICAgICAgdGhlcmUgaXMgbXVsdGlw
bGUgbW9kdWxlIHRhZyBpbiBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9sb2FkZXIvaXNzdWVzLzQxCisKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6
SGFzaDo6aGFzaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlUmVjb3JkOjpSZXNvbHZlUXVlcnk6
Okhhc2g6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVzb2x1
dGlvbik6CisgICAgICAgIChKU0M6OlJlc29sdmVRdWVyeUhhc2g6Omhhc2gpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXNvbHZlUXVlcnlIYXNoOjplcXVhbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJlc29sdmVFeHBvcnRMb29wKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmg6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy5q
czogQWRkZWQuCisgICAgICAgIChmcm9tLnN0cmluZ19hcHBlYXJlZF9oZXJlLnNob3VsZFRocm93
KToKKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0EuanM6IEFkZGVkLgor
ICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQi5qczogQWRkZWQuCisgICAg
ICAgICogdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9DLmpzOiBBZGRlZC4KKyAgICAgICAg
KiB0ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0QuanM6IEFkZGVkLgorICAgICAgICAqIHRl
c3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMv
bW9kdWxlcy9kaWZmZXJlbnQtdmlldy9tYWluLmpzOiBBZGRlZC4KKwogMjAxNS0wOS0xMSAgU3Vr
b2xzYWsgU2Frc2h1d29uZyAgPHN1a29sc2FrQGdtYWlsLmNvbT4KIAogICAgICAgICBBZGQgaW5p
dGlhbCBzdXBwb3J0IGZvciBmbG9hdHMgaW4gV2ViQXNzc2VtYmx5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKaW5kZXggZmIzNjQyOGYyYTdh
N2ZjZjAxZmQyZTVlMzMzMjJlYzI1ZDdjYTJlNC4uNDQ4MWViNmZmNzBlZTE3Mzk3MjVhNjhhMTg0
ZjU2YzNjYWU1NTc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNNb2R1bGVSZWNvcmQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcApAQCAtMTY0LDcgKzE2NCwxMyBAQCBhdXRvIEpTTW9kdWxlUmVjb3Jk
OjpyZXNvbHZlSW1wb3J0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbG9jYWxO
YW1lKQogICAgIHJldHVybiBpbXBvcnRlZE1vZHVsZS0+cmVzb2x2ZUV4cG9ydChleGVjLCBpbXBv
cnRFbnRyeS5pbXBvcnROYW1lKTsKIH0KIAotc3RydWN0IFJlc29sdmVRdWVyeSB7CitzdHJ1Y3Qg
SlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeSB7CisgICAgc3RydWN0IEhhc2ggeworICAgICAg
ICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBSZXNvbHZlUXVlcnkmKTsKKyAgICAgICAgc3Rh
dGljIGJvb2wgZXF1YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7
CisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKKyAgICB9OworCiAgICAgUmVzb2x2ZVF1ZXJ5KEpTTW9kdWxlUmVjb3JkKiBtb2R1
bGVSZWNvcmQsIFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKQogICAgICAgICA6IG1vZHVs
ZVJlY29yZChtb2R1bGVSZWNvcmQpCiAgICAgICAgICwgZXhwb3J0TmFtZShleHBvcnROYW1lKQpA
QCAtMjA0LDI1ICsyMTAsMzQgQEAgc3RydWN0IFJlc29sdmVRdWVyeSB7CiAgICAgUmVmUHRyPFVu
aXF1ZWRTdHJpbmdJbXBsPiBleHBvcnROYW1lOwogfTsKIAotc3RydWN0IFJlc29sdmVRdWVyeUhh
c2ggewotICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFJlc29sdmVRdWVyeSYpOwotICAg
IHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IFJlc29sdmVRdWVyeSYsIGNvbnN0IFJlc29sdmVRdWVy
eSYpOwotICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVk
ID0gdHJ1ZTsKLX07Ci0KLWlubGluZSB1bnNpZ25lZCBSZXNvbHZlUXVlcnlIYXNoOjpoYXNoKGNv
bnN0IFJlc29sdmVRdWVyeSYgcXVlcnkpCitpbmxpbmUgdW5zaWduZWQgSlNNb2R1bGVSZWNvcmQ6
OlJlc29sdmVRdWVyeTo6SGFzaDo6aGFzaChjb25zdCBSZXNvbHZlUXVlcnkmIHF1ZXJ5KQogewog
ICAgIHJldHVybiBXVEY6OlB0ckhhc2g8SlNNb2R1bGVSZWNvcmQqPjo6aGFzaChxdWVyeS5tb2R1
bGVSZWNvcmQpICsgSWRlbnRpZmllclJlcEhhc2g6Omhhc2gocXVlcnkuZXhwb3J0TmFtZSk7CiB9
CiAKLWlubGluZSBib29sIFJlc29sdmVRdWVyeUhhc2g6OmVxdWFsKGNvbnN0IFJlc29sdmVRdWVy
eSYgbGhzLCBjb25zdCBSZXNvbHZlUXVlcnkmIHJocykKK2lubGluZSBib29sIEpTTW9kdWxlUmVj
b3JkOjpSZXNvbHZlUXVlcnk6Okhhc2g6OmVxdWFsKGNvbnN0IFJlc29sdmVRdWVyeSYgbGhzLCBj
b25zdCBSZXNvbHZlUXVlcnkmIHJocykKIHsKICAgICByZXR1cm4gbGhzLm1vZHVsZVJlY29yZCA9
PSByaHMubW9kdWxlUmVjb3JkICYmIGxocy5leHBvcnROYW1lID09IHJocy5leHBvcnROYW1lOwog
fQogCi1zdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3Ao
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbHZlUXVlcnkmIHJvb3QpCithdXRvIEpTTW9kdWxl
UmVjb3JkOjp0cnlHZXRDYWNoZWRSZXNvbHNpb24oVW5pcXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5h
bWUpIC0+IE9wdGlvbmFsPFJlc29sdXRpb24+Cit7CisgICAgY29uc3QgYXV0byBpdGVyYXRvciA9
IG1fcmVzb2x1dGlvbkNhY2hlLmZpbmQoZXhwb3J0TmFtZSk7CisgICAgaWYgKGl0ZXJhdG9yID09
IG1fcmVzb2x1dGlvbkNhY2hlLmVuZCgpKQorICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICBy
ZXR1cm4gT3B0aW9uYWw8UmVzb2x1dGlvbj4oaXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9pZCBK
U01vZHVsZVJlY29yZDo6Y2FjaGVSZXNvbHV0aW9uKFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBvcnRO
YW1lLCBjb25zdCBSZXNvbHV0aW9uJiByZXNvbHV0aW9uKQoreworICAgIG1fcmVzb2x1dGlvbkNh
Y2hlLmFkZChleHBvcnROYW1lLCByZXNvbHV0aW9uKTsKK30KKworYXV0byBKU01vZHVsZVJlY29y
ZDo6cmVzb2x2ZUV4cG9ydEltcGwoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbHZlUXVlcnkm
IHJvb3QpIC0+IFJlc29sdXRpb24KIHsKICAgICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRp
b25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtcmVzb2x2ZWV4cG9ydAorCisgICAgLy8gSG93IHRv
IGF2b2lkIEMrKyByZWN1cnNpb24gaW4gdGhpcyBmdW5jdGlvbjoKICAgICAvLyBUaGlzIGZ1bmN0
aW9uIGF2b2lkcyBDKysgcmVjdXJzaW9uIG9mIHRoZSBuYWl2ZSBSZXNvbHZlRXhwb3J0IGltcGxl
bWVudGF0aW9uLgogICAgIC8vIEZsYXR0ZW4gdGhlIHJlY3Vyc2lvbiB0byB0aGUgbG9vcCB3aXRo
IHRoZSB0YXNrIHF1ZXVlIGFuZCBmcmFtZXMuCiAgICAgLy8KQEAgLTI3Nyw4ICsyOTIsMjc4IEBA
IHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgLy8gVG8gZm9sbG93IHRoZSByZXF1aXJlbWVu
dCBzdHJpY3RseSwgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgd2Uga2VlcCB0aGUgbG9jYWwgcmVz
b2x1dGlvbiByZXN1bHQgdG8gcHJvZHVjZSB0aGUKICAgICAvLyBjb3JyZWN0IHJlc3VsdCB1bmRl
ciB0aGUgYWJvdmUgY29tcGxleCBjYXNlcy4KIAotICAgIHVzaW5nIFJlc29sdXRpb24gPSBKU01v
ZHVsZVJlY29yZDo6UmVzb2x1dGlvbjsKLSAgICB0eXBlZGVmIFdURjo6SGFzaFNldDxSZXNvbHZl
UXVlcnksIFJlc29sdmVRdWVyeUhhc2gsIFdURjo6Q3VzdG9tSGFzaFRyYWl0czxSZXNvbHZlUXVl
cnk+PiBSZXNvbHZlU2V0OworICAgIC8vIENhY2hpbmcgc3RyYXRlZ3k6CisgICAgLy8gVGhlIHJl
c29sdmVFeHBvcnQgb3BlcmF0aW9uIGlzIGZyZXF1ZW50bHkgY2FsbGVkLiBTbyBjYWNoaW5nIHJl
c3VsdHMgaXMgaW1wb3J0YW50LgorICAgIC8vIFdlIG9ic2VydmUgdGhlIGZvbGxvd2luZyBhc3Bl
Y3RzIGFuZCBiYXNlZCBvbiB0aGVtIGNvbnN0cnVjdCB0aGUgY2FjaGluZyBzdHJhdGVneS4KKyAg
ICAvLyBIZXJlLCB3ZSBhdHRlbXB0IHRvIGNhY2hlIHRoZSByZXNvbHV0aW9uIGJ5IGNvbnN0cnVj
dGluZyB0aGUgbWFwIGluIG1vZHVsZSByZWNvcmRzLgorICAgIC8vIFRoYXQgbWVhbnMgIE1vZHVs
ZSAtPiBFeHBvcnROYW1lIC0+IE1heWJlPFJlc29sdXRpb24+LgorICAgIC8vIFRlY2huaWNhbGx5
LCB0aGUgYWxsIEpTTW9kdWxlUmVjb3JkIGhhdmUgdGhlIE1hcDxFeHBvcnROYW1lLCBSZXNvbHV0
aW9uPiBmb3IgY2FjaGluZy4KKyAgICAvLworICAgIC8vIFRoZSBpbXBvcnRhbnQgb2JzZXJ2YXRp
b24gaXMgdGhhdCwKKyAgICAvLworICAgIC8vICAtICpjYWNoZWFibGUqIG1lYW5zIHRoYXQgd2Ug
Y2FuIGNhY2hlIHRoZSBnYWluIHJlc3VsdCBiZWNhdXNlIHRoZSByZXN1bHQgaXMgdGhlIHNhbWUg
dG8gdGhlIHJlc3VsdAorICAgIC8vICAgIHRoYXQgd2lsbCBiZSBwcm9kdWNlZCB3aGVuIHN0YXJ0
aW5nIGZyb20gdGhpcyBub2RlLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGZvbGxvd2luZyAyIGlzIHRo
ZSBzYW1lLgorICAgIC8vICAgICAgMS4gVGhlIHJlc29sdmluZyByb3V0ZSBmcm9tIHRoaXMgbm9k
ZSB3aGVuIHRyYWNpbmcgdGhlIG5vZGVzIGZyb20gdGhlIG90aGVyIHN0YXJ0aW5nIG5vZGUuCisg
ICAgLy8gICAgICAyLiBUaGUgcmVzb2x2aW5nIHJvdXRlIGZyb20gdGhpcyBub2RlIHdoZW4gc3Rh
cnRpbmcgZnJvbSB0aGlzIG5vZGUuCisgICAgLy8KKyAgICAvLyAgICBIZXJlLCB3ZSBkZWZpbmUg
dGhlIHJlc292bGluZyByb3V0ZS4gV2UgcmVwcmVzZW50IFs/XSBhcyB0aGUgbW9kdWxlIHRoYXQg
aGFzIHRoZSBzZWFyY2hlZCBsb2NhbCBiaW5kaW5nLgorICAgIC8vICAgIEFuZCAoPykgYXMgdGhl
IG1vZHVsZSB3aXRob3V0IHRoZSBsb2NhbCBiaW5kaW5nLgorICAgIC8vCisgICAgLy8gICAgICBA
IC0+IChBKSAtPiAoQikgLT4gW0NdCisgICAgLy8KKyAgICAvLyAgICBXZSBsaXN0IHRoZSByZXNv
bHZpbmcgcm91dGUgZm9yIGVhY2ggbm9kZS4KKyAgICAvLworICAgIC8vICAgIChBKTogKEEpIC0+
IChCKSAtPiBbQ10KKyAgICAvLyAgICAoQik6IChCKSAtPiBbQ10KKyAgICAvLyAgICBbQ106IFtD
XQorICAgIC8vCisgICAgLy8gICAgSW4gdGhpcyBjYXNlLCBpZiB3ZSBzdGFydCB0aGUgdHJhY2lu
ZyBmcm9tIChCKSwgdGhlIHJlc29sdmluZyByb3V0ZSBiZWNvbWVzIChCKSAtPiBbQ10uCisgICAg
Ly8gICAgU28gdGhpcyBpcyB0aGUgc2FtZS4gQXQgdGhhdCB0aW1lLCB3ZSBjYW4gc2F5IChCKSBp
cyBjYWNoZWFibGUgaW4gdGhlIGZpcnN0IHRyYWNpbmcuCisgICAgLy8KKyAgICAvLyAgLSBDYWNo
ZWFiaWxpdHkgZGVwZW5kcyBvbiB0aGUgcmVzb2x2aW5nIHJvdXRlIGZyb20gdGhpcyBub2RlLiBO
b3QgZGVwZW5kIG9uIHRoZSBub2RlLgorICAgIC8vICAgIFRoZSBub2RlIGlzIHNvbWV0aW1lcyBj
YWNoZWFibGUuIEFuZCBzb21ldGltZXMgbm9uLWNhY2hlYWJsZS4KKyAgICAvLyAgICBUaGUgcmVz
b2x2aW5nIHJvdXRlIGRlcGVuZHMgb24gdGhlIHN0YXJ0aW5nIG5vZGUuCisgICAgLy8KKyAgICAv
LyAxLiBUaGUgc3RhcnRpbmcgcG9pbnQgaXMgYWx3YXlzIGNhY2hlYWJsZS4KKyAgICAvLworICAg
IC8vIEJ5IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBjYWNoZWFibGUsIHRoZSBzdGFydGluZyBwb2lu
dCBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAgIC8vCisgICAgLy8gID0+IFRoZSBzdGFydGluZyBw
b2ludCBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAgIC8vCisgICAgLy8gMi4gTG9jYWwgZXhwb3J0
ZWQgYmluZGluZ3MgYXJlIGFsd2F5cyBjYWNoZWFibGUgaW4gdGhlIG5vZGUuCisgICAgLy8KKyAg
ICAvLyAgQCAtPiAoQSkgLT4gW0JdCisgICAgLy8KKyAgICAvLyAgSW4gdGhlIGFib3ZlIGNhc2Us
IHdlIGNhbiBzZWUgdGhlIFtCXSBhcyBjYWNoZWFibGUuCisgICAgLy8gIFRoaXMgaXMgYmVjYXVz
ZSB3aGVuIHN0YXJ0aW5nIGZyb20gW0JdIG5vZGUsIHdlIGltbWVkaWF0ZWx5IHJlc29sdmUgd2l0
aCB0aGUgbG9jYWwgYmluZGluZy4KKyAgICAvLyAgU28gdGhlIHJlc29sdmluZyByb3V0ZSBmcm9t
IFtCXSBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHN0YXJ0aW5nIHBvaW50LgorICAgIC8vCisgICAg
Ly8gID0+IFRoZSBtb2R1bGUgdGhhdCBoYXMgdGhlIHNlYXJjaGVkIGxvY2FsIHJlc29sdXRpb24g
aXMgYWx3YXlzIGNhY2hlYWJsZS4KKyAgICAvLworICAgIC8vIDIuIEluZGlyZWN0IGV4cG9ydGVk
IGJpbmRpbmdzIGFyZSBjYWNoZWFibGUgaWYgdGhlcmUgaXMgb25seSBub24tc3RhciBsaW5rcy4K
KyAgICAvLworICAgIC8vICBJZiB0aGVyZSBhcmUgb25seSBub24tc3RhciBsaW5rcywgaXQgbWVh
bnMgdGhhdCB0aGVyZSBpcyAqbm8gYnJhbmNoKiBpbiB0aGUgbW9kdWxlIGRlcGVuZGVuY3kgZ3Jh
cGguCisgICAgLy8gIFRoaXMgKm5vIGJyYW5jaCogZmVhdHVyZSBtYWtlcyB0aGUgYWxsIG1vZHVs
ZSBjYWNoYWJsZS4KKyAgICAvLworICAgIC8vICBAIC0+IChBKSAtLT4gKEIpIC0+IFtDXSAtPiAo
RCkgLT4gKEUpIC0rCisgICAgLy8gICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAg
ICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfAor
ICAgIC8vICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgLy8K
KyAgICAvLyAgV2hlbiBzdGFydGluZyBmcm9tIEAsIFtDXSB3aWxsIGJlIGZvdW5kIGFzIHRoZSBt
b2R1bGUgcmVzb2x2aW5nIHRoZSBnaXZlbiBiaW5kaW5nLgorICAgIC8vICBJbiB0aGlzIGNhc2Us
IChCKSBjYW4gY2FjaGUgdGhpcyByZXNvbHV0aW9uLiBTaW5jZSB0aGUgcmVzb2x2aW5nIHJvdXRl
IGlzIHRoZSBzYW1lIHRvIHRoZSBvbmUgd2hlbgorICAgIC8vICBzdGFydGluZyBmcm9tIChCKS4g
QWZ0ZXIgY2FjaGluZyB0aGUgYWJvdmUgcmVzdWx0LCB3ZSBhdHRlbXB0IHRvIHJlc29sdmUgdGhl
IHNhbWUgYmluZGluZyBmcm9tIChEKS4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAg
IC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdgorICAgIC8vICBAIC0+IChBKSAtLT4g
KEIpIC0+IFtDXSAtPiAoRCkgLT4gKEUpIC0rCisgICAgLy8gICAgICAgICAgICAgICAgXiAgICAg
ICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg
ICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCisgICAgLy8KKyAgICAvLyAgSW4gdGhpcyBjYXNlLCB3ZSBjYW4gdXNlIHRoZSAoQikn
cyBjYWNoZWQgcmVzdWx0LiBBbmQgKEUpIGNhbiBiZSBjYWNoZWQuCisgICAgLy8KKyAgICAvLyAg
ICAoRSk6IFRoZSByZXNvbHZpbmcgcm91dGUgaXMgbm93IChFKSAtPiAoQikgLT4gW0NdLiBUaGF0
IGlzIHRoZSBzYW1lIHdoZW4gc3RhcnRpbmcgZnJvbSAoRSkuCisgICAgLy8KKyAgICAvLyAgTm8g
YnJhbmNoaW5nIG1ha2VzIHRoYXQgdGhlIHByb2JsZW1hdGljICpvbmNlLXZpc2l0ZWQqIG5vZGUg
Y2Fubm90IGJlIHNlZW4gKG9yIGNhdXNlIGFueSBwcm9ibGVtKS4KKyAgICAvLyAgVGhlICpvbmNl
LXZpc2l0ZWQqIG5vZGUgbWFrZXMgdGhlIHJlc29sdmluZyByb3V0ZSBjaGFuZ2VkLiBXZSB3aWxs
IGdpdmUgdGhlIGV4YW1wbGUgaW4gdGhlIG5leHQuCisgICAgLy8KKyAgICAvLyAgSWYgd2UgbG9v
ayAqb25jZS12aXNpdGVkKiBub2RlIHVuZGVyIG5vIGJyYW5jaGluZyBncmFwaCwgKm9uY2Utdmlz
aXRlZCogbm9kZSBjYW5ub3QgcmVzb2x2ZSB0aGUKKyAgICAvLyAgcmVxdWVzdGVkIGJpbmRpbmcu
IElmIHRoZSAqb25jZS12aXNpdGVkKiBub2RlIGNhbiByZXNvbHZlIHRoZSBiaW5kaW5nLCB3ZSBz
aG91bGQgYWxyZWFkeSBmaW5pc2gKKyAgICAvLyAgdGhlIHJlc29sdXRpb24gd2hlbiByZWFjaGlu
ZyB0aGlzICpvbmNlLXZpc2l0ZWQqIG5vZGUuIFNvIHdlIGNhbiBjb25zaWRlciB0aGF0IHRoZSBi
aW5kaW5nIGNhbm5vdAorICAgIC8vICBiZSByZXNvbHZlZCBpbiB0aGlzIGdyYXBoLgorICAgIC8v
CisgICAgLy8gID0+IElmIHdlIGRvbid0IGZvbGxvdyBhbnkgc3RhciBsaW5rcyBkdXJpbmcgdGhl
IHJlc29sdXRpb24sIHdlIGNhbiBzZWUgYWxsIHRoZSB0cmFjZWQgbm9kZXMgYXJlIGNhY2hlYWJs
ZS4KKyAgICAvLworICAgIC8vIDMuIElmIHRoZXJlIGFyZSBzdGFyIGxpbmtzLCB3ZSBjYW5ub3Qg
Y2FjaGUgdGhlIHJlc29sdXRpb24gbmFpdmVseS4KKyAgICAvLworICAgIC8vICBTdGFyIGxpbmtz
IGFyZSBvbmx5IHRoZSB3YXkgdG8gaW50cm9kdWNlIGJyYW5jaC4KKyAgICAvLyAgT25jZSB3ZSBm
b2xsb3cgdGhlIHN0YXIgbGlua3MgZHVyaW5nIHRoZSByZXNvbHV0aW9uLCB3ZSBjYW5ub3QgY2Fj
aGUgbmFpdmVseS4KKyAgICAvLyAgVGhpcyBpcyBiZWNhdXNlIHRoZSBjYWNoZWFiaWxpdHkgZGVw
ZW5kcyBvbiB0aGUgcmVzb2x2aW5nIHJvdXRlLiBBbmQgYnJhbmNoaW5nIHByb2R1Y2VzIHRoZSBw
cm9ibGVtYXRpYyAqb25jZS12aXNpdGVkKgorICAgIC8vICBub2Rlcy4gU2luY2Ugd2UgZG9uJ3Qg
Zm9sbG93IHRoZSAqb25jZS12aXNpdGVkKiBub2RlLCB0aGUgcmVzb2x2aW5nIHJvdXRlIGZyb20g
dGhlIG5vZGUgYmVjb21lcyBkaWZmZXJlbnQgZnJvbQorICAgIC8vICB0aGUgcmVzb2x2aW5nIHJv
dXRlIHdoZW4gc3RhcnRpbmcgZnJvbSB0aGlzIG5vZGUuCisgICAgLy8KKyAgICAvLyAgQ29uc2lk
ZXIgdGhlIGZvbGxvd2luZyBjYXNlLAorICAgIC8vCisgICAgLy8gIEAgLT4gKEEpICotLT4gKEIp
IC0tPiAoRCkgKi0tPiBbRV0KKyAgICAvLyAgICAgICAgXiAgIHwgICAgICAgICAgICAgICAgfAor
ICAgIC8vICAgICAgICB8ICAgKy0+IFtDXSAgICAgICAgICArLT4gKEYpCisgICAgLy8gICAgICAg
IHwgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vICBTdGFyIGxpbmtzIGludHJvZHVjZSBicmFu
Y2guIFNvIHRoZXJlIGlzIHRoZSBjYXNlIHRoYXQgd2Ugc2VlIHRoZSAqb25jZS12aXNpdGVkKiBu
b2RlLgorICAgIC8vICBXaGVuIHN0YXJ0aW5nIGZyb20gdGhlIEAsIChBKSBiZWNvbWVzIGFtYmln
dW91cy4gQnV0IChCKSBhbmQgKEQpIGJlY29tZSByZXNvbHZlZC4KKyAgICAvLworICAgIC8vICAg
IDEuIEluIChCKSwgd2UganVzdCBmb2xsb3cgdGhlIGxpbmsgdG8gKEQpLgorICAgIC8vICAgIDIu
IEluIChEKSwgd2Ugd2lsbCBpbnZlc3RpZ2F0ZSB0aGUgc3RhciBsaW5rcy4KKyAgICAvLyAgICAz
LiBXaGVuIGxvb2tpbmcgW0VdLCB3ZSBtYWtlIFtFXSByZXNvbHZlZC4KKyAgICAvLyAgICA0LiBX
aGVuIGxvb2tpbmcgKEYpLCB3ZSBhdHRlbXB0IHRvIGZvbGxvdyB0aGUgbGluayB0byAoQSkuCisg
ICAgLy8gICAgNS4gQnV0IGF0IHRoYXQgdGltZSwgKEEpIGlzIGFscmVhZHkgKm9uY2UtdmlzaXRl
ZCouIFNvIHRoZSByZXN1bHQgYmVjb21lcyBub3QtZm91bmQuCisgICAgLy8gICAgNi4gU28sIChE
KSdzIHN0YXIgcmVzb2x1dGlvbiBiZWNvbWVzIHJlc29sdmVkIGR1ZSB0byBbRV0uCisgICAgLy8g
ICAgNy4gQW5kIChCKSBiZWNvbWVzIHJlc29sdmVkIGR1ZSB0byAoRCkuCisgICAgLy8KKyAgICAv
LyAgSGVyZSwgd2UgY2FuIGNhbGN1bGF0ZSBlYWNoIG5vZGUncyBjYWNoZWFiaWxpdHkuIENhY2hl
YWJpbGl0eSBtZWFucyB0aGF0IHRoZSByZXNvbHZpbmcgcm91dGUgZnJvbSB0aGUgdGFyZ2V0IG5v
ZGUKKyAgICAvLyAgaXMgdGhlIHNhbWUgdG8gdGhlIHJlc29sdmluZyByb3V0ZSB3aGVuIHN0YXJ0
aW5nIGZyb20gdGhpcyB0YXJnZXQgbm9kZS4KKyAgICAvLworICAgIC8vICAoQSk6IGNhY2hlYWJs
ZSBieSBkZWZpbml0aW9uLgorICAgIC8vICAoQik6IE5vbiBjYWNoZWFibGUuIEJlY2F1c2Ugd2hl
biBzdGFydGluZyBmcm9tIChCKSwgaXQgd2lsbCBmb2xsb3cgdGhlIGxpbmsgdG8gKEEpLgorICAg
IC8vICAoQyk6IGNhY2hlYWJsZSBieSAxLgorICAgIC8vICAoRCk6IE5vbiBjYWNoZWFibGUuIEJl
Y2F1c2Ugd2hlbiBzdGFydGluZyBmcm9tIChEKSwgaXQgd2lsbCBmb2xsb3cgdGhlIGxpbmsgdG8g
KEEpLgorICAgIC8vICAoRSk6IGNhY2hlYWJsZSBieSAxLgorICAgIC8vICAoRik6IE5vbiBjYWNo
ZWFibGUuIEJlY2F1c2Ugd2hlbiBzdGFydGluZyBmcm9tIChGKSwgaXQgd2lsbCBmb2xsb3cgdGhl
IGxpbmsgdG8gKEEpLgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICAgIEAKKyAgICAvLyAg
ICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICB2CisgICAgLy8gIEAgLT4g
KEEpICotLT4gKEIpIC0tPiAoRCkgKi0tPiBbRV0KKyAgICAvLyAgICAgICAgXiAgIHwgICAgICAg
ICAgICAgICAgfAorICAgIC8vICAgICAgICB8ICAgKy0+IFtDXSAgICAgICAgICArLT4gKEYpCisg
ICAgLy8gICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAr
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vICBMZXQncyBjb25zaWRl
ciB0aGUgc2FtZSBncmFwaCBzdGFydGluZyBmcm9tIChCKS4gSW4gdGhpcyBjYXNlLCAoQikgYmVj
b21lcyBhbWJpZ3VvdXMuCisgICAgLy8KKyAgICAvLyAgICAxLiBJbiAoQiksIHdlIGp1c3QgZm9s
bG93IHRoZSBsaW5rIHRvIChEKS4KKyAgICAvLyAgICAyLiBJbiAoRCksIHdlIHdpbGwgaW52ZXN0
aWdhdGUgdGhlIHN0YXIgbGlua3MuCisgICAgLy8gICAgMy4gV2hlbiBsb29raW5nIFtFXSwgd2Ug
bWFrZSBbRV0gcmVzb2x2ZWQuCisgICAgLy8gICAgNC4gV2hlbiBsb29raW5nIChGKSwgd2UgZm9s
bG93IHRoZSBsaW5rIHRvIChBKS4KKyAgICAvLyAgICA1LiBTaW5jZSAoQSkgaXMgbm90IHZpc2l0
ZWQgeWV0LCB3ZSBjYW4gcmVhY2ggKEEpLgorICAgIC8vICAgIDYuIEF0dGVtcHQgdG8gZm9sbG93
IHRoZSBzdGFyIGxpbmsgdG8gKEIpLCBidXQgaXQgZmFpbHMgYmVjYXVzZSAoQikgaXMgKm9uY2Ut
dmlzaXRlZCouCisgICAgLy8gICAgNy4gV2hlbiBsb29raW5nIFtDXSwgd2UgbWFrZSBbQ10gcmVz
b2x2ZWQuCisgICAgLy8gICAgOC4gKEEpIGJlY29tZXMgcmVzb2x2ZWQgc2luY2Ugd2UgY2Fubm90
IGZvbGxvdyB0aGUgbGluayB0byAoQikuCisgICAgLy8gICAgOS4gKEYpIGJlY29tZXMgcmVzb2x2
ZWQuCisgICAgLy8gICAgMTAuIFNpbmNlIFtFXSBhbmQgKEYpIGFyZSByZXNvbHZlZCwgKEQpIGJl
Y29tZXMgYW1iaWd1b3VzLgorICAgIC8vICAgIDExLiBBbmQgKEIpIGJlY29tZXMgYW1iaWd1b3Vz
IGR1ZSB0byAoRCkuCisgICAgLy8KKyAgICAvLyAgRGVwZW5kcyBvbiB0aGUgc3RhcnRpbmcgcG9p
bnQsIHRoZSB2aXNpdGVkIG5vZGVzIGJlY29tZXMgY2hhbmdlZC4KKyAgICAvLyAgVGhpcyBjaGFu
Z2VzIHRoZSByZXNvbHZpbmcgcm91dGUgZnJvbSB0aGUgdGFyZ2V0IG5vZGUuCisgICAgLy8KKyAg
ICAvLyAgSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlIGNhc2VzLCB0aGUgc3RhciBsaW5rIG1ha2Vz
IHRoZSBub2RlIGNvbmRpdGlvbmFsLgorICAgIC8vCisgICAgLy8gICAgICAgKEEpICotLT4gW0Jd
CisgICAgLy8gICAgICAgICAgICB8ICAgIF4KKyAgICAvLyAgICAgICAgICAgIHwgICAgfAorICAg
IC8vICAgICAgICAgICAgKy0+IChDKSAqLT4gKEQpCisgICAgLy8gICAgICAgICAgICAgICAgIF4K
KyAgICAvLyAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgIChFKQorICAg
IC8vICAgICAgICAgICAgICAgICBeCisgICAgLy8gICAgICAgICAgICAgICAgIHwKKyAgICAvLyAg
ICAgICAgICAgICAgICAgQAorICAgIC8vCisgICAgLy8gIFdoZW4gc3RhcnRpbmcgZnJvbSBALAor
ICAgIC8vCisgICAgLy8gICAgMS4gKEUpIHdpbGwgZm9sbG93IHRoZSBsaW5rIHRvIChDKS4KKyAg
ICAvLyAgICAyLiBMb29raW5nIChDKSwgaXQgaGFzIHN0YXIgbGluaywgYnV0IGl0IGFsc28gaGFz
IHRoZSBpbmRpcmVjdCBsaW5rLiBTbyBvbmNlIHdlIGZvbGxvdyB0aGUgbGluayB0byBbQl0uCisg
ICAgLy8gICAgMy4gW0JdIGlzIHJlc29sdmVkLiBBbmQgaXQgaXMgY2FjaGVhYmxlIGJ5IDEuCisg
ICAgLy8gICAgNC4gKEMpIGlzIHJlc29sdmVkLiBBbmQgc2luY2Ugd2UgZG9uJ3QgZm9sbG93IGFu
eSBzdGFyIGxpbmsgZHVyaW5nIHRoaXMsIChDKSBpcyBjYWNoZWFibGUuCisgICAgLy8gICAgNS4g
KEUpIGlzIGNhY2hlYWJsZSBieSBkZWZpbml0aW9uLgorICAgIC8vCisgICAgLy8gIEJ1dCwgaW4g
dGhlIGZvbGxvd2luZywKKyAgICAvLworICAgIC8vICBAIC0+IChBKSAqLS0+IFtCXQorICAgIC8v
ICAgICAgICAgICAgfCAgICBeCisgICAgLy8gICAgICAgICAgICB8ICAgIHwKKyAgICAvLyAgICAg
ICAgICAgICstPiAoQykgKi0+IChEKQorICAgIC8vICAgICAgICAgICAgICAgICBeCisgICAgLy8g
ICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICAoRSkKKyAgICAvLworICAg
IC8vICAgIDEuIChBKSB3aWxsIGZvbGxvdyB0aGUgc3RhciBsaW5rcy4KKyAgICAvLyAgICAyLiBb
Ql0gaXMgcmVzb2x2ZWQgJiBjYWNoZWFibGUgYnkgZGVmaW5pdGlvbi4KKyAgICAvLyAgICAzLiBJ
biAoQyksIHdlIGF0dGVtcHQgdG8gZm9sbG93IHRoZSBsaW5rIHRvIFtCXSwgYnV0IHdlIGNhbm5v
dCBzaW5jZSBbQl0gaXMgYWxyZWFkeSAqb25jZS12aXNpdGVkKi4KKyAgICAvLyAgICA0LiBTbywg
d2UgZmFsbCBiYWNrIHRvIHRoZSBzdGFyIGxpbmsgdG8gKEQpLgorICAgIC8vICAgIDUuIChEKSBp
cyBub3QgcmVzb2x2ZWQuIFNvIChDKSBpcyBub3QgcmVzb2x2ZWQuCisgICAgLy8KKyAgICAvLyAg
SW4gdGhlIHByZXZpb3VzIG9uZSwgKEMpIGlzIGNhY2hlYWJsZS4gQnV0IGluIHRoZSBhYm92ZSBy
b3V0ZSwgKEMpIGJlY29tZXMgdW5jYWNoZWFibGUuCisgICAgLy8gIFNvIGluIHRoaXMgY2FzZSB3
ZSBzaG91bGQgbm90IHJldHJpZXZlIHRoZSByZXN1bHQgb2YgKEMpLgorICAgIC8vICBIZXJlLCB3
ZSBjYW4gb2JzZXJ2ZSB0aGUgb25lIHRoaW5nLiBTb21ldGltZXMsIHdlIHNob3VsZCBub3QgcmV0
cmlldmUgdGhlIGNhY2hlZCByZXN1bHQgZnJvbSB0aGUgbm9kZS4KKyAgICAvLworICAgIC8vICBU
aGUgZm9sbG93aW5nIGV4YW1wbGUgZXhwbGFpbnMgd2hlbiB3ZSBzaG91bGQgbm90IHJldHJpZXZl
IHRoZSBjYWNoZSBhbmQgY2FjaGUgdGhlIHJlc3VsdC4KKyAgICAvLworICAgIC8vICAgICAgICAg
ICAgICAgKy0tLS0+IChEKSAtLS0tLS0rCisgICAgLy8gICAgICAgICAgICAgICB8ICAgICAgICAg
ICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgdgorICAgIC8v
ICAgICAgKEEpICotLS0tKy0tLS0+IChCKSAtLS0+IFtDXQorICAgIC8vICAgICAgICAgICAgICAg
ICAgICAgICBeCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAg
ICAgICAgICAgICAgICAgQAorICAgIC8vCisgICAgLy8gIFdoZW4gc3RhcnRpbmcgZnJvbSAoQiks
IHdlIGZpbmQgW0NdLiBJbiB0aGlzIHJlc29sdmluZyByb3V0ZSwgd2UgZG9uJ3QgZmluZCBhbnkg
c3RhciBsaW5rLgorICAgIC8vICBBbmQgYnkgZGVmaW5pdGlvbiwgKEIpIGFuZCBbQ10gYXJlIGNh
Y2hhYmxlLiAoQikgaXMgdGhlIHN0YXJ0aW5nIHBvaW50LiBBbmQgW0NdIGhhcyB0aGUgbG9jYWwg
YmluZGluZy4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgKy0tLS0+IChEKSAtLS0tLS0r
CisgICAgLy8gICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAg
ICAgICAgIHwgICAgICAgICAgICAgICAgdgorICAgIC8vICBALT4gKEEpICotLS0tKy0tLS0+IChC
KSAtLS0+IFtDXQorICAgIC8vCisgICAgLy8gIEJ1dCB3aGVuIHN0YXJ0aW5nIGZyb20gKEEpLCB3
ZSBzaG91bGQgbm90IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgY2FjaGUuIEJlY2F1c2UsCisgICAg
Ly8KKyAgICAvLyAgICAxLiBXaGVuIGxvb2tpbmcgKEQpLCB3ZSByZWFjaCBbQ10gYW5kIG1ha2Ug
Ym90aCByZXNvbHZlZC4KKyAgICAvLyAgICAyLiBXaGVuIGxvb2tpbmcgKEIpLCBpZiB3ZSByZXRy
aWV2ZWQgdGhlIGxhc3QgY2FjaGUgZnJvbSAoQiksIChCKSBiZWNvbWVzIHJlc29sdmVkLgorICAg
IC8vICAgIDMuIEJ1dCBhY3R1YWxseSwgKEIpIGlzIG5vdC1mb3VuZCBpbiB0aGlzIGNhc2UgYmVj
YXVzZSAoQykgaXMgYWxyZWFkeSAqb25jZS12aXNpdGVkKi4KKyAgICAvLyAgICA0LiBJZiB3ZSBh
Y2NpZGVudGFsbHkgbWFrZSAoQikgcmVzb2x2ZWQsIChBKSBiZWNvbWVzIGFtYmlndW91cy4gQnV0
IHRoZSBjb3JyZWN0IGFuc3dlciBpcyByZXNvbHZlZC4KKyAgICAvLworICAgIC8vICBBbmQgaW4g
dGhpcyBjYXNlLCAoQikgYmVjb21lcyBub3QtZm91bmQuIFdlIHNob3VsZCBub3QgY2FjaGUgaW4g
dGhpcyBjYXNlIGJlY2F1c2UgaXQgc2hvdWxkIGJlIHJlc29sdmVkCisgICAgLy8gIGluIHRoZSBm
aXJzdCBvbmUuCisgICAgLy8KKyAgICAvLyAgVG8gYXZvaWQgdGhlIHdyb25nIHJlc3VsdCwgdGhl
cmUgaXMgdGhlIHNpbXBsZSBzb2x1dGlvbjsgT25jZSB3ZSBmb2xsb3cgc3RhciBsaW5rcywgd2Ug
c2hvdWxkIG5vdCByZXRyaWV2ZQorICAgIC8vICB0aGUgcmVzdWx0IGZyb20gdGhlIGNhY2hlIGFu
ZCBzaG91bGQgbm90IGNhY2hlLgorICAgIC8vCisgICAgLy8gIEJ1dCB5ZXMsIHRoaXMgaXMgYSBj
b25zZXJ2YXRpdmUgYXBwcm9hY2guCisgICAgLy8KKyAgICAvLyAgICAgICAgICAgICAgICArLS0t
LT4gKEQpIC0tLS0tLSsKKyAgICAvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwK
KyAgICAvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHYKKyAgICAvLyAgIEAtPiAo
QSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4gW0NdCisgICAgLy8gICAgICAgICAgICAgICAgfAorICAg
IC8vICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICArLS0tLT4gKEUpIC0t
LT4gW0ZdCisgICAgLy8KKyAgICAvLyAgSW4gdGhlIGFib3ZlIGNhc2UsIChFKSBhbmQgW0ZdIGNh
biBiZSBjYWNoZWQgZXZlbiBhZnRlciB3ZSBmb2xsb3cgc3RhciBsaW5rcy4KKyAgICAvLyAgQW5k
IHNwZWNpZmljYWxseSwgW0NdIGFuZCAoRCkgY2FuIGJlIGNhY2hlZCBldmVuIGluIHRoaXMgc2l0
dWF0aW9uLgorICAgIC8vCisgICAgLy8gIFRoZSBwcm9ibGVtIG9jY3VycyB3aGVuIHRyYWNpbmcg
YnJhbmNoZWQgZnJvbSB0aGUgc3RhciBsaW5rIGZvdW5kIHRoZSAqb25jZS12aXNpdGVkKiBub2Rl
IHRoYXQgaXMgdmlzaXRlZAorICAgIC8vICBieSB0aGUgdHJhY2luZyBzdGFydGVkIGZyb20gdGhl
IG90aGVyIHN0YXIgbGluay4KKyAgICAvLyAgSW4gdGhlIGFib3ZlIGNhc2UsIChEKSBhbmQgW0Nd
IGlzIE9LLiBCdXQgd2hlbiBzZWVpbmcgKEIpLCB3ZSBmb3VuZCB0aGF0IFtDXSBiZWNvbWVzICpv
bmNlLXZpc2l0ZWQqIG5vZGUgdmlzaXRlZAorICAgIC8vICBieSB0aGUgdHJhY2luZyBzdGFydGVk
IGZyb20gdGhlIG90aGVyIHN0YXIgbGluayAoQSkgLT4gKEQpIHJvdXRlLgorICAgIC8vCisgICAg
Ly8gICAgICAgICAgICAgICAgKy0tLS0+IChEKSAtLS0tLS0rCisgICAgLy8gICAgICAgICAgICAg
ICAgfCAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgfCAgICAgICAgICAg
ICAgICB2CisgICAgLy8gICBALT4gKEEpICotLS0tKy0tLS0+IChCKSAtLS0+IFtDXQorICAgIC8v
ICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAg
ICAgICAgICAgKy0tLS0+IChFKSAqKy0+IChGKSAtPiBbR10KKyAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgICAgICAgICBeCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICst
PiAoSCkgLS0tLSsKKyAgICAvLworICAgIC8vICBJbiB0aGUgYWJvdmUgc2l0dWF0aW9uLCBbR10g
YW5kIChGKSBpcyBjYWNoZWFibGUuIEFuZCAoSCkgaXMgdW5jYWNoZWFibGUuCisgICAgLy8gIE5v
dyBpbiB0aGUgYWJvdmUgdHJhY2luZywgKEgpJ3MgcmVzb2x2aW5nIHJvdXRlIGlzIChIKS4gQnV0
IHdoZW4gc3RhcnRpbmcgZnJvbSAoSCksCisgICAgLy8gIHRoZSByZXNvbHZpbmcgcm91dGUgYmVj
b21lcyAoSCkgLT4gW0ddLgorICAgIC8vICBCdXQsIChFKSBpcyBjYWNoZWFibGUuIEJlY2F1c2Ug
cmVzb2x2aW5nIHJvdXRlIGZyb20gKEUpIGRvZXMgbm90IGZvdW5kIGFueSAqb25jZS12aXNpdGVk
KiBub2RlIHZpc2l0ZWQgYnkgdGhlCisgICAgLy8gIHRyYWNpbmcgc3RhcnRlZCBmcm9tIHRoZSBv
dGhlciBzdGFyIGxpbmsuIFRoZXJlJ3Mgc3RhciBsaW5rcyAoRSkgLT4gKEYpIGFuZCAoRSkgLT4g
KEgpLiBCdXQgYWxsIHRoZSBzdGFyIGxpbmtzCisgICAgLy8gIHJlbGF0ZWQgdG8gYSBjZXJ0YWlu
ICpvbmNlLXZpc2l0ZWQqIG5vZGUgW0ddIGFyZSBpbmNsdWRlZCBpbiB0aGUgc3ViZ3JhcGggc3Rh
cnRpbmcgZnJvbSAoRSkuCisgICAgLy8KKyAgICAvLyAgQnV0IHdoZW4gc3RhcnRpbmcgKEEpIGFu
ZCBzZWUgdGhlIHN0YXIgbGlua3MgZnJvbSAoQSksIHdlIGRvbid0IGtub3cgdGhlIHN1YmdyYXBo
IHN0YXJ0ZWQgZnJvbSAoRSkgZG9lcyBub3QKKyAgICAvLyAgY29udGFpbiB0aGUgZWRnZSB0aGF0
IGNhbiBiZSByZWFjaGVkIGZyb20gdGhlIG90aGVyIHN0YXIgbGlua3MgZnJvbSAoQSkuIE9ubHkg
d2F5IHRvIHNlZSBpcyB0cmFjaW5nIHRoZSB3aG9sZQorICAgIC8vICBzdWJncmFwaC4gRXZlbiBp
ZiB0aGVyZSBpcyB0aGUgY2FjaGUgaW4gKEUpLCBpdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGluIHRo
aXMgdHJhY2luZyBiZWNhdXNlIHdlIG5lZWQgdG8gdHJhY2UgdGhlCisgICAgLy8gIHdob2xlIHN1
YmdyYXBoLiBBbmQgdG8gY2FjaGUgdGhlIHJlc3VsdCBwcm9kdWNlZCBpbiB0aGlzIHRyYWNpbmcs
IHdlIG5lZWQgdG8ga25vdyB0aGF0IHN1YmdyYXBoIHN0YXJ0ZWQgZnJvbSAoRSkKKyAgICAvLyAg
ZG9lcyBub3QgaGF2ZSBhbnkgZWRnZSBpbmNvbW1pbmcgZnJvbSB0aGUgb3RoZXIgZ3JhcGggdGhh
dCBjYW4gYmUgcmVhY2hlZCBmcm9tIHRoZSBvdGhlciBzdGFyIGxpbmsgZnJvbSAoQSkuCisgICAg
Ly8gIFNvIGluIHRoZSBtZWFuIHRpbWUsIHdlIGRpc2FibGUgdGhlIGNhY2hpbmcgd2hlbiB3ZSBm
b2xsb3cgc3RhciBsaW5rcy4KKyAgICAvLworICAgIC8vICA9PiBPbmNlIHdlIGZvbGxvdyBzdGFy
IGxpbmtzLCB3ZSBzaG91bGQgbm90IHJldHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUg
YW5kIHNob3VsZCBub3QgY2FjaGUgdGhlIHJlc3VsdC4KKyAgICAvLworICAgIC8vIFRvIHN1bW1h
cml6ZSB0aGUgb2JzZXJ2YXRpb24uCisgICAgLy8KKyAgICAvLyAgPT4gVGhlIHN0YXJ0aW5nIHBv
aW50IGlzIGFsd2F5cyBjYWNoZWFibGUuCisgICAgLy8gID0+IFRoZSBtb2R1bGUgdGhhdCBoYXMg
bG9jYWwgcmVzb2x1dGlvbiBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAgIC8vICA9PiBJZiB3ZSBk
b24ndCBmb2xsb3cgYW55IHN0YXIgbGlua3MgZHVyaW5nIHRoZSByZXNvbHV0aW9uLCB3ZSBjYW4g
c2VlIGFsbCB0aGUgdHJhY2VkIG5vZGVzIGFyZSBjYWNoZWFibGUuCisgICAgLy8gID0+IE9uY2Ug
d2UgZm9sbG93IHN0YXIgbGlua3MsIHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIHJlc3VsdCBm
cm9tIHRoZSBjYWNoZSBhbmQgc2hvdWxkIG5vdCBjYWNoZSB0aGUgcmVzdWx0LgorCisgICAgdHlw
ZWRlZiBXVEY6Okhhc2hTZXQ8UmVzb2x2ZVF1ZXJ5LCBSZXNvbHZlUXVlcnk6Okhhc2gsIFdURjo6
Q3VzdG9tSGFzaFRyYWl0czxSZXNvbHZlUXVlcnk+PiBSZXNvbHZlU2V0OwogICAgIGVudW0gY2xh
c3MgVHlwZSB7IFF1ZXJ5LCBJbmRpcmVjdEZhbGxiYWNrLCBHYXRoZXJTdGFycyB9OwogICAgIHN0
cnVjdCBUYXNrIHsKICAgICAgICAgUmVzb2x2ZVF1ZXJ5IHF1ZXJ5OwpAQCAtMjg4LDEzICs1NzMs
MjIgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29w
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICBWZWN0b3I8VGFzaywgOD4gcGVuZGlu
Z1Rhc2tzOwogICAgIFJlc29sdmVTZXQgcmVzb2x2ZVNldDsKICAgICBIYXNoU2V0PEpTTW9kdWxl
UmVjb3JkKj4gc3RhclNldDsKLSAgICBWZWN0b3I8UmVzb2x1dGlvbiwgOD4gZnJhbWVzOwogCi0g
ICAgZnJhbWVzLmFwcGVuZChSZXNvbHV0aW9uOjpub3RGb3VuZCgpKTsKKyAgICBzdHJ1Y3QgRnJh
bWUgeworICAgICAgICBSZXNvbHV0aW9uIHJlc29sdXRpb247CisgICAgICAgIGJvb2wgZm9sbG93
ZWRTdGFyTGlua3NBdFRoYXRUaW1lOworICAgIH07CisKKyAgICBWZWN0b3I8RnJhbWUsIDg+IGZy
YW1lczsKKworICAgIGJvb2wgZm9sbG93ZWRTdGFyTGlua3MgPSBmYWxzZTsKKworICAgIGZyYW1l
cy5hcHBlbmQoRnJhbWUgeyBSZXNvbHV0aW9uOjpub3RGb3VuZCgpLCBmb2xsb3dlZFN0YXJMaW5r
cyB9KTsKIAogICAgIC8vIENhbGwgd2hlbiB0aGUgcXVlcnkgaXMgbm90IHJlc29sdmVkIGluIHRo
ZSBjdXJyZW50IG1vZHVsZS4KICAgICAvLyBJdCB3aWxsIGVucXVldWUgdGhlIHN0YXIgcmVzb2x1
dGlvbiByZXF1ZXN0cy4gUmV0dXJuICJmYWxzZSIgaWYgdGhlIGVycm9yIG9jY3Vycy4KLSAgICBh
dXRvIHJlc29sdmVOb25Mb2NhbCA9IFsmXShjb25zdCBSZXNvbHZlUXVlcnkmIHF1ZXJ5KSAtPiBi
b29sIHsKKyAgICBhdXRvIHJlc29sdmVOb25Mb2NhbCA9IFsmXShjb25zdCBSZXNvbHZlUXVlcnkm
IHF1ZXJ5KSAtPiBib29sCisgICAgewogICAgICAgICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJu
YXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMtcmVzb2x2ZWV4cG9ydAogICAgICAgICAvLyBz
ZWN0aW9uIDE1LjIuMS4xNi4zLCBzdGVwIDYKICAgICAgICAgLy8gSWYgdGhlICJkZWZhdWx0IiBu
YW1lIGlzIG5vdCByZXNvbHZlZCBpbiB0aGUgY3VycmVudCBtb2R1bGUsIHdlIG5lZWQgdG8gdGhy
b3cgYW4gZXJyb3IgYW5kIHN0b3AgcmVzb2x1dGlvbiBpbW1lZGlhdGVseSwKQEAgLTMwOSw3ICs2
MDMsOSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExv
b3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAgICAvLyBFbnF1ZXVlIHRoZSB0
YXNrIHRvIGdhdGhlciB0aGUgcmVzdWx0cyBvZiB0aGUgc3RhcnMuCiAgICAgICAgIC8vIEFuZCBh
cHBlbmQgdGhlIG5ldyBSZXNvbHV0aW9uIGZyYW1lIHRvIGdhdGhlciB0aGUgbG9jYWwgcmVzdWx0
IG9mIHRoZSBzdGFycy4KICAgICAgICAgcGVuZGluZ1Rhc2tzLmFwcGVuZChUYXNrIHsgcXVlcnks
IFR5cGU6OkdhdGhlclN0YXJzIH0pOwotICAgICAgICBmcmFtZXMuYXBwZW5kKFJlc29sdXRpb246
Om5vdEZvdW5kKCkpOworICAgICAgICBmb2xsb3dlZFN0YXJMaW5rcyA9IHRydWU7CisgICAgICAg
IGZyYW1lcy5hcHBlbmQoRnJhbWUgeyBSZXNvbHV0aW9uOjpub3RGb3VuZCgpLCBmb2xsb3dlZFN0
YXJMaW5rcyB9KTsKKwogCiAgICAgICAgIC8vIEVucXVldWUgdGhlIHRhc2tzIGluIHJldmVyc2Ug
b3JkZXIuCiAgICAgICAgIGZvciAoYXV0byBpdGVyYXRvciA9IHF1ZXJ5Lm1vZHVsZVJlY29yZC0+
c3RhckV4cG9ydEVudHJpZXMoKS5yYmVnaW4oKSwgZW5kID0gcXVlcnkubW9kdWxlUmVjb3JkLT5z
dGFyRXhwb3J0RW50cmllcygpLnJlbmQoKTsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKSB7
CkBAIC0zMjEsMTQgKzYxNywxNiBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24g
cmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgIH07CiAK
ICAgICAvLyBSZXR1cm4gdGhlIGN1cnJlbnQgcmVzb2x1dGlvbiB2YWx1ZSBvZiB0aGUgdG9wIGZy
YW1lLgotICAgIGF1dG8gY3VycmVudFRvcCA9IFsmXSAoKSAtPiBSZXNvbHV0aW9uJiB7CisgICAg
YXV0byBjdXJyZW50VG9wID0gWyZdICgpIC0+IFJlc29sdXRpb24mCisgICAgewogICAgICAgICBB
U1NFUlQoIWZyYW1lcy5pc0VtcHR5KCkpOwotICAgICAgICByZXR1cm4gZnJhbWVzLmxhc3QoKTsK
KyAgICAgICAgcmV0dXJuIGZyYW1lcy5sYXN0KCkucmVzb2x1dGlvbjsKICAgICB9OwogCiAgICAg
Ly8gTWVyZ2UgdGhlIGdpdmVuIHJlc29sdXRpb24gdG8gdGhlIGN1cnJlbnQgcmVzb2x1dGlvbiB2
YWx1ZSBvZiB0aGUgdG9wIGZyYW1lLgogICAgIC8vIElmIHRoZXJlIGlzIGFtYmlndWl0eSwgcmV0
dXJuICJmYWxzZSIuIFdoZW4gdGhlICJmYWxzZSIgaXMgcmV0dXJuZWQsIHdlIHNob3VsZCBtYWtl
IHRoZSByZXN1bHQgImFtYmlndW91cyIuCi0gICAgYXV0byBtZXJnZVRvQ3VycmVudFRvcCA9IFsm
XSAoY29uc3QgUmVzb2x1dGlvbiYgcmVzb2x1dGlvbikgLT4gYm9vbCB7CisgICAgYXV0byBtZXJn
ZVRvQ3VycmVudFRvcCA9IFsmXSAoY29uc3QgUmVzb2x1dGlvbiYgcmVzb2x1dGlvbikgLT4gYm9v
bAorICAgIHsKICAgICAgICAgaWYgKHJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBl
OjpOb3RGb3VuZCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC0zNDMsNiArNjQxLDEy
IEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH07
CiAKKyAgICBhdXRvIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5ID0gW10gKGNvbnN0IFJlc29sdmVR
dWVyeSYgcXVlcnksIGNvbnN0IFJlc29sdXRpb24mIHJlc29sdXRpb24pCisgICAgeworICAgICAg
ICBBU1NFUlQocmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246OlR5cGU6OlJlc29sdmVkKTsK
KyAgICAgICAgcXVlcnkubW9kdWxlUmVjb3JkLT5jYWNoZVJlc29sdXRpb24ocXVlcnkuZXhwb3J0
TmFtZS5nZXQoKSwgcmVzb2x1dGlvbik7CisgICAgfTsKKwogICAgIHBlbmRpbmdUYXNrcy5hcHBl
bmQoVGFzayB7IHJvb3QsIFR5cGU6OlF1ZXJ5IH0pOwogICAgIHdoaWxlICghcGVuZGluZ1Rhc2tz
LmlzRW1wdHkoKSkgewogICAgICAgICBjb25zdCBUYXNrIHRhc2sgPSBwZW5kaW5nVGFza3MudGFr
ZUxhc3QoKTsKQEAgLTM1MCwxMSArNjU0LDIxIEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVz
b2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAK
ICAgICAgICAgc3dpdGNoICh0YXNrLnR5cGUpIHsKICAgICAgICAgY2FzZSBUeXBlOjpRdWVyeTog
eworICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCA9IHF1ZXJ5Lm1vZHVs
ZVJlY29yZDsKKworICAgICAgICAgICAgLy8gID0+IE9uY2Ugd2UgZm9sbG93IHN0YXIgbGlua3Ms
IHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIHJlc3VsdCBmcm9tIHRoZSBjYWNoZSBhbmQgc2hv
dWxkIG5vdCBjYWNoZSB0aGUgcmVzdWx0LgorICAgICAgICAgICAgaWYgKCFmb2xsb3dlZFN0YXJM
aW5rcykgeworICAgICAgICAgICAgICAgIGlmIChPcHRpb25hbDxSZXNvbHV0aW9uPiBjYWNoZWRS
ZXNvbHV0aW9uID0gbW9kdWxlUmVjb3JkLT50cnlHZXRDYWNoZWRSZXNvbHNpb24ocXVlcnkuZXhw
b3J0TmFtZS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVu
dFRvcCgqY2FjaGVkUmVzb2x1dGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
UmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKCFyZXNv
bHZlU2V0LmFkZCh0YXNrLnF1ZXJ5KS5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gcXVlcnku
bW9kdWxlUmVjb3JkOwotICAgICAgICAgICAgY29uc3QgT3B0aW9uYWw8SlNNb2R1bGVSZWNvcmQ6
OkV4cG9ydEVudHJ5PiBvcHRpb25hbEV4cG9ydEVudHJ5ID0gbW9kdWxlUmVjb3JkLT50cnlHZXRF
eHBvcnRFbnRyeShxdWVyeS5leHBvcnROYW1lLmdldCgpKTsKKyAgICAgICAgICAgIGNvbnN0IE9w
dGlvbmFsPEV4cG9ydEVudHJ5PiBvcHRpb25hbEV4cG9ydEVudHJ5ID0gbW9kdWxlUmVjb3JkLT50
cnlHZXRFeHBvcnRFbnRyeShxdWVyeS5leHBvcnROYW1lLmdldCgpKTsKICAgICAgICAgICAgIGlm
ICghb3B0aW9uYWxFeHBvcnRFbnRyeSkgewogICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlz
IG5vIG1hdGNoZWQgZXhwb3J0ZWQgYmluZGluZyBpbiB0aGUgY3VycmVudCBtb2R1bGUsCiAgICAg
ICAgICAgICAgICAgLy8gd2UgbmVlZCB0byBsb29rIGludG8gdGhlIHN0YXJzLgpAQCAtMzYzLDIy
ICs2NzcsMjYgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBv
cnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY29uc3QgSlNNb2R1bGVSZWNvcmQ6
OkV4cG9ydEVudHJ5JiBleHBvcnRFbnRyeSA9ICpvcHRpb25hbEV4cG9ydEVudHJ5OworICAgICAg
ICAgICAgY29uc3QgRXhwb3J0RW50cnkmIGV4cG9ydEVudHJ5ID0gKm9wdGlvbmFsRXhwb3J0RW50
cnk7CiAgICAgICAgICAgICBzd2l0Y2ggKGV4cG9ydEVudHJ5LnR5cGUpIHsKLSAgICAgICAgICAg
IGNhc2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpMb2NhbDoKLSAgICAgICAg
ICAgIGNhc2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpOYW1lc3BhY2U6Ci0g
ICAgICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChSZXNvbHV0aW9uIHsgUmVzb2x1
dGlvbjo6VHlwZTo6UmVzb2x2ZWQsIG1vZHVsZVJlY29yZCwgZXhwb3J0RW50cnkubG9jYWxOYW1l
IH0pKQorICAgICAgICAgICAgY2FzZSBFeHBvcnRFbnRyeTo6VHlwZTo6TG9jYWw6CisgICAgICAg
ICAgICBjYXNlIEV4cG9ydEVudHJ5OjpUeXBlOjpOYW1lc3BhY2U6IHsKKyAgICAgICAgICAgICAg
ICBSZXNvbHV0aW9uIHJlc29sdXRpb24geyBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCwgbW9k
dWxlUmVjb3JkLCBleHBvcnRFbnRyeS5sb2NhbE5hbWUgfTsKKyAgICAgICAgICAgICAgICAvLyAg
PT4gVGhlIG1vZHVsZSB0aGF0IGhhcyBsb2NhbCByZXNvbHV0aW9uIGlzIGFsd2F5cyBjYWNoZWFi
bGUuCisgICAgICAgICAgICAgICAgY2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkocXVlcnksIHJlc29s
dXRpb24pOworICAgICAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3AocmVzb2x1dGlv
bikpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uOjphbWJpZ3VvdXMoKTsK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
Y2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6OkluZGlyZWN0OiB7CisgICAg
ICAgICAgICBjYXNlIEV4cG9ydEVudHJ5OjpUeXBlOjpJbmRpcmVjdDogewogICAgICAgICAgICAg
ICAgIEpTTW9kdWxlUmVjb3JkKiBpbXBvcnRlZE1vZHVsZVJlY29yZCA9IG1vZHVsZVJlY29yZC0+
aG9zdFJlc29sdmVJbXBvcnRlZE1vZHVsZShleGVjLCBleHBvcnRFbnRyeS5tb2R1bGVOYW1lKTsK
IAogICAgICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGltcG9ydGVkIG1vZHVsZSBkb2VzIG5vdCBw
cm9kdWNlIGFueSByZXNvbHZlZCBiaW5kaW5nLCB3ZSBuZWVkIHRvIGxvb2sgaW50byB0aGUgc3Rh
cnMgaW4gdGhlICpjdXJyZW50KgogICAgICAgICAgICAgICAgIC8vIG1vZHVsZS4gVG8gZG8gdGhp
cywgd2UgYXBwZW5kIHRoZSBgSW5kaXJlY3RGYWxsYmFja2AgdGFzayB0byB0aGUgdGFzayBxdWV1
ZS4KICAgICAgICAgICAgICAgICBwZW5kaW5nVGFza3MuYXBwZW5kKFRhc2sgeyBxdWVyeSwgVHlw
ZTo6SW5kaXJlY3RGYWxsYmFjayB9KTsKICAgICAgICAgICAgICAgICAvLyBBbmQgYXBwZW5kIHRo
ZSBuZXcgUmVzb2x1dGlvbiBmcmFtZSB0byBjaGVjayB0aGUgaW5kaXJlY3QgZXhwb3J0IHdpbGwg
YmUgcmVzb2x2ZWQgb3Igbm90LgotICAgICAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoUmVzb2x1
dGlvbjo6bm90Rm91bmQoKSk7CisgICAgICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChGcmFtZSB7
IFJlc29sdXRpb246Om5vdEZvdW5kKCksIGZvbGxvd2VkU3RhckxpbmtzIH0pOwogICAgICAgICAg
ICAgICAgIHBlbmRpbmdUYXNrcy5hcHBlbmQoVGFzayB7IFJlc29sdmVRdWVyeShpbXBvcnRlZE1v
ZHVsZVJlY29yZCwgZXhwb3J0RW50cnkuaW1wb3J0TmFtZSksIFR5cGU6OlF1ZXJ5IH0pOwogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQpAQCAtMzg3LDcgKzcwNSw4IEBA
IHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIFR5cGU6
OkluZGlyZWN0RmFsbGJhY2s6IHsKLSAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0
aW9uIHJlc29sdXRpb24gPSBmcmFtZXMudGFrZUxhc3QoKTsKKyAgICAgICAgICAgIEZyYW1lIGZy
YW1lID0gZnJhbWVzLnRha2VMYXN0KCk7CisgICAgICAgICAgICBjb25zdCBSZXNvbHV0aW9uJiBy
ZXNvbHV0aW9uID0gZnJhbWUucmVzb2x1dGlvbjsKIAogICAgICAgICAgICAgaWYgKHJlc29sdXRp
b24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpOb3RGb3VuZCkgewogICAgICAgICAgICAgICAg
IC8vIEluZGlyZWN0IGV4cG9ydCBlbnRyeSBkb2VzIG5vdCBwcm9kdWNlIGFueSByZXNvbHZlZCBi
aW5kaW5nLgpAQCAtMzk3LDYgKzcxNiwxMiBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29s
dXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBBU1NF
UlRfV0lUSF9NRVNTQUdFKHJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNv
bHZlZCwgIldoZW4gd2Ugc2VlIEVycm9yIGFuZCBBbWJpZ3VvdXMsIHdlIGltbWVkaWF0ZWx5IHJl
dHVybiBmcm9tIHRoaXMgbG9vcC4gU28gaGVyZSwgb25seSBSZXNvbHZlZCBjb21lcy4iKTsKKwor
ICAgICAgICAgICAgLy8gID0+IElmIHdlIGRvbid0IGZvbGxvdyBhbnkgc3RhciBsaW5rcyBkdXJp
bmcgdGhlIHJlc29sdXRpb24sIHdlIGNhbiBzZWUgYWxsIHRoZSB0cmFjZWQgbm9kZXMgYXJlIGNh
Y2hlYWJsZS4KKyAgICAgICAgICAgIGlmICghZnJhbWUuZm9sbG93ZWRTdGFyTGlua3NBdFRoYXRU
aW1lKQorICAgICAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCByZXNv
bHV0aW9uKTsKKwogICAgICAgICAgICAgLy8gSWYgaW5kaXJlY3QgZXhwb3J0IGVudHJ5IHByb2R1
Y2VzIFJlc29sdmVkLCB3ZSBzaG91bGQgbWVyZ2UgaXQgdG8gdGhlIHVwcGVyIGZyYW1lLgogICAg
ICAgICAgICAgLy8gQW5kIGRvIG5vdCBpbnZlc3RpZ2F0ZSB0aGUgc3RhcnMgb2YgdGhlIGN1cnJl
bnQgbW9kdWxlLgogICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChyZXNvbHV0aW9u
KSkKQEAgLTQwNSw5ICs3MzAsMTIgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9u
IHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAg
fQogCiAgICAgICAgIGNhc2UgVHlwZTo6R2F0aGVyU3RhcnM6IHsKKyAgICAgICAgICAgIEZyYW1l
IGZyYW1lID0gZnJhbWVzLnRha2VMYXN0KCk7CisgICAgICAgICAgICBjb25zdCBSZXNvbHV0aW9u
JiByZXNvbHV0aW9uID0gZnJhbWUucmVzb2x1dGlvbjsKKyAgICAgICAgICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UocmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246OlR5cGU6OlJlc29sdmVkIHx8
IHJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpOb3RGb3VuZCwgIldoZW4gd2Ug
c2VlIEVycm9yIGFuZCBBbWJpZ3VvdXMsIHdlIGltbWVkaWF0ZWx5IHJldHVybiBmcm9tIHRoaXMg
bG9vcC4gU28gaGVyZSwgb25seSBSZXNvbHZlZCBhbmQgTm90Rm91bmQgY29tZXMuIik7CisKICAg
ICAgICAgICAgIC8vIE1lcmdlIHRoZSBzdGFyIHJlc29sdXRpb24gdG8gdGhlIHVwcGVyIGZyYW1l
LgotICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gc3RhclJlc29sdXRpb24g
PSBmcmFtZXMudGFrZUxhc3QoKTsKLSAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3Ao
c3RhclJlc29sdXRpb24pKQorICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChyZXNv
bHV0aW9uKSkKICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNDE1LDEyICs3NDMsMTggQEAgc3Rh
dGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICB9CiAKICAgICBBU1NFUlQoZnJhbWVzLnNpemUoKSA9
PSAxKTsKLSAgICByZXR1cm4gZnJhbWVzWzBdOworICAgIC8vICA9PiBUaGUgc3RhcnRpbmcgcG9p
bnQgaXMgYWx3YXlzIGNhY2hlYWJsZS4KKyAgICBpZiAoZnJhbWVzWzBdLnJlc29sdXRpb24udHlw
ZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCkKKyAgICAgICAgY2FjaGVSZXNvbHV0aW9u
Rm9yUXVlcnkocm9vdCwgZnJhbWVzWzBdLnJlc29sdXRpb24pOworICAgIHJldHVybiBmcmFtZXNb
MF0ucmVzb2x1dGlvbjsKIH0KIAogYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUV4cG9ydChF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGV4cG9ydE5hbWUpIC0+IFJlc29sdXRp
b24KIHsKLSAgICByZXR1cm4gcmVzb2x2ZUV4cG9ydExvb3AoZXhlYywgUmVzb2x2ZVF1ZXJ5KHRo
aXMsIGV4cG9ydE5hbWUuaW1wbCgpKSk7CisgICAgLy8gTG9vayB1cCB0aGUgY2FjaGVkIHJlc29s
dXRpb24gZmlyc3QgYmVmb3JlIGVudGVyaW5nIHRoZSByZXNvbHZpbmcgbG9vcCwgc2luY2UgdGhl
IGxvb3Agc2V0dXAgdGFrZXMgc29tZSBjb3N0LgorICAgIGlmIChPcHRpb25hbDxSZXNvbHV0aW9u
PiBjYWNoZWRSZXNvbHV0aW9uID0gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKGV4cG9ydE5hbWUuaW1w
bCgpKSkKKyAgICAgICAgcmV0dXJuICpjYWNoZWRSZXNvbHV0aW9uOworICAgIHJldHVybiByZXNv
bHZlRXhwb3J0SW1wbChleGVjLCBSZXNvbHZlUXVlcnkodGhpcywgZXhwb3J0TmFtZS5pbXBsKCkp
KTsKIH0KIAogc3RhdGljIHZvaWQgZ2V0RXhwb3J0ZWROYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIEpT
TW9kdWxlUmVjb3JkKiByb290LCBJZGVudGlmaWVyU2V0JiBleHBvcnRlZE5hbWVzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKaW5kZXggNzBhMTkw
ZjgyYzY3OGQxODYxZjUwNmVkMWQ4MGYyMjViY2M5MGU1ZS4uYzlkNzU4N2YzODJjN2JmMDJjY2Iw
N2IzYjBhMmRjZTk1Y2M4ODMwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01vZHVsZVJlY29yZC5oCkBAIC0xNjMsNiArMTYzLDExIEBAIGNsYXNzIEpTTW9kdWxlUmVj
b3JkIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAgIHZvaWQgaW5zdGFudGlh
dGVEZWNsYXJhdGlvbnMoRXhlY1N0YXRlKiwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqKTsKIAor
ICAgIHN0cnVjdCBSZXNvbHZlUXVlcnk7CisgICAgc3RhdGljIFJlc29sdXRpb24gcmVzb2x2ZUV4
cG9ydEltcGwoRXhlY1N0YXRlKiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7CisgICAgT3B0aW9uYWw8
UmVzb2x1dGlvbj4gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBv
cnROYW1lKTsKKyAgICB2b2lkIGNhY2hlUmVzb2x1dGlvbihVbmlxdWVkU3RyaW5nSW1wbCogZXhw
b3J0TmFtZSwgY29uc3QgUmVzb2x1dGlvbiYpOworCiAgICAgLy8gVGhlIGxvYWRlciByZXNvbHZl
cyB0aGUgZ2l2ZW4gbW9kdWxlIG5hbWUgdG8gdGhlIG1vZHVsZSBrZXkuIFRoZSBtb2R1bGUga2V5
IGlzIHRoZSB1bmlxdWUgdmFsdWUgdG8gcmVwcmVzZW50IHRoaXMgbW9kdWxlLgogICAgIElkZW50
aWZpZXIgbV9tb2R1bGVLZXk7CiAKQEAgLTIwMiw2ICsyMDcsMTMgQEAgY2xhc3MgSlNNb2R1bGVS
ZWNvcmQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIFdyaXRlQmFycmllcjxN
b2R1bGVQcm9ncmFtRXhlY3V0YWJsZT4gbV9tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKICAgICBX
cml0ZUJhcnJpZXI8SlNNb2R1bGVFbnZpcm9ubWVudD4gbV9tb2R1bGVFbnZpcm9ubWVudDsKICAg
ICBXcml0ZUJhcnJpZXI8SlNNb2R1bGVOYW1lc3BhY2VPYmplY3Q+IG1fbW9kdWxlTmFtZXNwYWNl
T2JqZWN0OworCisgICAgLy8gV2UgYXNzdW1lIHRoYXQgYWxsIHRoZSBKU01vZHVsZVJlY29yZCBh
cmUgcmV0YWluZWQgYnkgTW9kdWxlTG9hZGVyT2JqZWN0J3MgcmVnaXN0cnkuCisgICAgLy8gU28g
aGVyZSwgd2UgZG9uJ3QgdmlzaXQgZWFjaCBvYmplY3QgZm9yIEdDLiBUaGUgcmVzb2x1dGlvbiBj
YWNoZSBtYXAgY2FjaGVzIHRoZSBvbmNlCisgICAgLy8gbG9va2VkIHVwIGNvcnJlY3RseSByZXNv
bHZlZCByZXNvbHV0aW9uLCBzaW5jZSAoMSkgd2UgcmFyZWx5IGxvb2tlZCB1cCB0aGUgbm9uLXJl
c29sdmVkIG9uZSwKKyAgICAvLyBhbmQgKDIpIGlmIHdlIGNhY2hlIGFsbCB0aGUgYXR0ZW1wdHMg
dGhlIHNpemUgb2YgdGhlIG1hcCBiZWNvbWVzIGluZmluaXRlbHkgbGFyZ2UuCisgICAgdHlwZWRl
ZiBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIFJlc29sdXRpb24sIElkZW50aWZp
ZXJSZXBIYXNoLCBIYXNoVHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+PiBSZXNvbHV0
aW9uczsKKyAgICBSZXNvbHV0aW9ucyBtX3Jlc29sdXRpb25DYWNoZTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvZGlmZmVyZW50LXZpZXcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy9kaWZmZXJlbnQtdmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODFlODljMjVmOWY4NjlkNDBlNjU0Yjlj
MmZmMjc1Y2ZiNWQ4OTdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcuanMKQEAgLTAsMCArMSw3IEBACitpbXBvcnQg
eyBzaG91bGRCZSwgc2hvdWxkVGhyb3cgfSBmcm9tICIuL3Jlc291cmNlcy9hc3NlcnQuanMiCisK
K3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBsb2FkTW9kdWxlKCcuL2RpZmZlcmVudC12aWV3L21h
aW4uanMnKTsKK30sIGBTeW50YXhFcnJvcjogSW1wb3J0aW5nIGJpbmRpbmcgbmFtZSAnQScgY2Fu
bm90IGJlIHJlc29sdmVkIGR1ZSB0byBhbWJpZ3VvdXMgbXVsdGlwbGUgYmluZGluZ3MuYCk7CisK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVy
ZW50LXZpZXcvQS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZl
cmVudC12aWV3L0EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZkYmI2MDRkMmJiYTA2MTI2MTIyNzdhZjQxZWJi
MDNhNDAxMmMwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0EuanMKQEAgLTAsMCArMSwyIEBACitleHBvcnQgKiBm
cm9tICIuL0IuanMiOworZXhwb3J0ICogZnJvbSAiLi9FLmpzIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0IuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9CLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4NmRkNzFlZTY2YTlhODYxNWFjYWVhNDA1ZWQyZjc4M2RmOWQxODIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQt
dmlldy9CLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0ICogZnJvbSAiLi9DLmpzIgorZXhwb3J0
ICogZnJvbSAiLi9ELmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U4MDkzNWQ2ZThlMjJj
YWE1NDVkODM0MjVjOGRmNzAzMjQ2MDY1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0MuanMKQEAgLTAsMCArMSBA
QAorZXhwb3J0ICogZnJvbSAiLi9BLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0QuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMwOGUy
Y2FlOTM3MzJhNGI0OGIzZDljMWViZTgwOTMwZGE1NDFmZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0QuanMKQEAg
LTAsMCArMSBAQAorZXhwb3J0IGxldCBBID0gNDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9FLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
MTBjYjBlNjEyODYwNDg4YzEwZWNhY2IyNWJlNGEyNzQ2YzkxNmI3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5q
cwpAQCAtMCwwICsxIEBACitleHBvcnQgbGV0IEEgPSA1MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L21haW4uanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9tYWluLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmMyNGY5NzJmNjNlNGJlNDJjZTY1MmU4N2Y1OGY2YTlhOTc4MTEyZDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJl
bnQtdmlldy9tYWluLmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCB7IEEgfSBmcm9tICIuL0EuanMi
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261076</attachid>
            <date>2015-09-12 22:39:19 -0700</date>
            <delta_ts>2015-09-13 02:12:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150912223910.patch</filename>
            <type>text/plain</type>
            <size>46151</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi42YzlkNjc5MGU5NDgxNjgw
NzVmNWM5YWU0ZWFkZWE5NWE2ZjFhNWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NiBAQAorMjAxNS0wOS0xMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgQ3VycmVudGx5LCB0
aGUgYWxsIG1vZHVsZXMgY2Fubm90IGJlIGxpbmtlZCB0d2ljZS4gRm9yIGV4YW1wbGUsCisKKyAg
ICAgICAgICBncmFwaCAxCisKKyAgICAgICAgICAtPiAoQSkgLT4gKEIpCisKKyAgICAgICAgICBn
cmFwaCAyCisKKyAgICAgICAgICAtPiAoQykgLT4gKEEpIC0+IChCKQorCisgICAgICAgIFdlIGNh
bm5vdCB0ZXN0IHRoZSBiZWhhdmlvciBub3cgYmVjYXVzZSB3aGVuIGV4ZWN1dGluZyB0aGUgZ3Jh
cGggMiwgKEEpIGFuZCAoQikgYXJlIGFscmVhZHkgbGlua2VkLAorICAgICAgICBpdCByYWlzZXMg
YW4gZXJyb3IgaW4gdGhlIGN1cnJlbnQgbG9hZGVyIHNwZWMuIEJ1dCBpdCBzaG91bGQgYmUgYWxs
b3dlZFsxXSBzaW5jZSBpdCB3aWxsIG9jY3VyIHdoZW4KKyAgICAgICAgdGhlcmUgaXMgbXVsdGlw
bGUgbW9kdWxlIHRhZyBpbiBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9sb2FkZXIvaXNzdWVzLzQxCisKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6
SGFzaDo6aGFzaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlUmVjb3JkOjpSZXNvbHZlUXVlcnk6
Okhhc2g6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVzb2x1
dGlvbik6CisgICAgICAgIChKU0M6OlJlc29sdmVRdWVyeUhhc2g6Omhhc2gpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXNvbHZlUXVlcnlIYXNoOjplcXVhbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJlc29sdmVFeHBvcnRMb29wKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmg6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1u
b3QtbWFrZS1hbWJpZ3VvdXMuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2Fj
aGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0EuanM6IEFkZGVkLgorICAgICAgICAqIHRl
c3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0IuanM6IEFkZGVk
LgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1
b3VzL0MuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQt
bm90LW1ha2UtYW1iaWd1b3VzL0QuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMv
Y2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4uanM6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcuanM6IEFkZGVkLgorICAgICAgICAoZnJv
bS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5zaG91bGRUaHJvdyk6CisgICAgICAgICogdGVzdHMvbW9k
dWxlcy9kaWZmZXJlbnQtdmlldy9BLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVz
L2RpZmZlcmVudC12aWV3L0IuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlm
ZmVyZW50LXZpZXcvQy5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9kaWZmZXJl
bnQtdmlldy9ELmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12
aWV3L0UuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcv
bWFpbi5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3Vv
dXMuanM6IEFkZGVkLgorICAgICAgICAoZnJvbS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5zaG91bGRU
aHJvdyk6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQi5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQy5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRC5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5q
czogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay5qczogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9BLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0IuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQy5qczogQWRkZWQuCisgICAgICAg
ICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9ELmpzOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0UuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qczogQWRkZWQuCisgICAgICAgICog
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0EtcHJlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFy
L0IuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1z
ZWUtc3Rhci9DLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxl
LXdoZW4tc2VlLXN0YXIvRC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy91bmNh
Y2hlYWJsZS13aGVuLXNlZS1zdGFyL0UtcHJlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9t
b2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS5qczogQWRkZWQuCisgICAgICAgICog
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4xLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIu
anM6IEFkZGVkLgorCiAyMDE1LTA5LTExICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtA
Z21haWwuY29tPgogCiAgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZsb2F0cyBpbiBX
ZWJBc3NzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcAppbmRleCBmYjM2NDI4ZjJhN2E3ZmNmMDFmZDJlNWUzMzMyMmVjMjVkN2NhMmU0
Li41ZThkNjFkMGExOGUyYzhmMGJmMDE0Njk3YTZhMWZiOWI1MmU1NDExIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC0xNjQsNyAr
MTY0LDEzIEBAIGF1dG8gSlNNb2R1bGVSZWNvcmQ6OnJlc29sdmVJbXBvcnQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBsb2NhbE5hbWUpCiAgICAgcmV0dXJuIGltcG9ydGVkTW9k
dWxlLT5yZXNvbHZlRXhwb3J0KGV4ZWMsIGltcG9ydEVudHJ5LmltcG9ydE5hbWUpOwogfQogCi1z
dHJ1Y3QgUmVzb2x2ZVF1ZXJ5IHsKK3N0cnVjdCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5
IHsKKyAgICBzdHJ1Y3QgSGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFJlc29sdmVRdWVyeSYpOworICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZXNvbHZl
UXVlcnkmLCBjb25zdCBSZXNvbHZlUXVlcnkmKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIH07CisKICAgICBSZXNv
bHZlUXVlcnkoSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgVW5pcXVlZFN0cmluZ0ltcGwq
IGV4cG9ydE5hbWUpCiAgICAgICAgIDogbW9kdWxlUmVjb3JkKG1vZHVsZVJlY29yZCkKICAgICAg
ICAgLCBleHBvcnROYW1lKGV4cG9ydE5hbWUpCkBAIC0yMDQsMjUgKzIxMCwzNCBAQCBzdHJ1Y3Qg
UmVzb2x2ZVF1ZXJ5IHsKICAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IGV4cG9ydE5hbWU7
CiB9OwogCi1zdHJ1Y3QgUmVzb2x2ZVF1ZXJ5SGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVz
b2x2ZVF1ZXJ5JiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwotfTsKLQotaW5saW5lIHVuc2ln
bmVkIFJlc29sdmVRdWVyeUhhc2g6Omhhc2goY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSkKK2lu
bGluZSB1bnNpZ25lZCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5OjpIYXNoOjpoYXNoKGNv
bnN0IFJlc29sdmVRdWVyeSYgcXVlcnkpCiB7CiAgICAgcmV0dXJuIFdURjo6UHRySGFzaDxKU01v
ZHVsZVJlY29yZCo+OjpoYXNoKHF1ZXJ5Lm1vZHVsZVJlY29yZCkgKyBJZGVudGlmaWVyUmVwSGFz
aDo6aGFzaChxdWVyeS5leHBvcnROYW1lKTsKIH0KIAotaW5saW5lIGJvb2wgUmVzb2x2ZVF1ZXJ5
SGFzaDo6ZXF1YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBsaHMsIGNvbnN0IFJlc29sdmVRdWVyeSYg
cmhzKQoraW5saW5lIGJvb2wgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6SGFzaDo6ZXF1
YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBsaHMsIGNvbnN0IFJlc29sdmVRdWVyeSYgcmhzKQogewog
ICAgIHJldHVybiBsaHMubW9kdWxlUmVjb3JkID09IHJocy5tb2R1bGVSZWNvcmQgJiYgbGhzLmV4
cG9ydE5hbWUgPT0gcmhzLmV4cG9ydE5hbWU7CiB9CiAKLXN0YXRpYyBKU01vZHVsZVJlY29yZDo6
UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29s
dmVRdWVyeSYgcm9vdCkKK2F1dG8gSlNNb2R1bGVSZWNvcmQ6OnRyeUdldENhY2hlZFJlc29sc2lv
bihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSkgLT4gT3B0aW9uYWw8UmVzb2x1dGlvbj4K
K3sKKyAgICBjb25zdCBhdXRvIGl0ZXJhdG9yID0gbV9yZXNvbHV0aW9uQ2FjaGUuZmluZChleHBv
cnROYW1lKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9yZXNvbHV0aW9uQ2FjaGUuZW5kKCkpCisg
ICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIHJldHVybiBPcHRpb25hbDxSZXNvbHV0aW9uPihp
dGVyYXRvci0+dmFsdWUpOworfQorCit2b2lkIEpTTW9kdWxlUmVjb3JkOjpjYWNoZVJlc29sdXRp
b24oVW5pcXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNvbnN0IFJlc29sdXRpb24mIHJlc29s
dXRpb24pCit7CisgICAgbV9yZXNvbHV0aW9uQ2FjaGUuYWRkKGV4cG9ydE5hbWUsIHJlc29sdXRp
b24pOworfQorCithdXRvIEpTTW9kdWxlUmVjb3JkOjpyZXNvbHZlRXhwb3J0SW1wbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFJlc29sdmVRdWVyeSYgcm9vdCkgLT4gUmVzb2x1dGlvbgogewogICAg
IC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1y
ZXNvbHZlZXhwb3J0CisKKyAgICAvLyBIb3cgdG8gYXZvaWQgQysrIHJlY3Vyc2lvbiBpbiB0aGlz
IGZ1bmN0aW9uOgogICAgIC8vIFRoaXMgZnVuY3Rpb24gYXZvaWRzIEMrKyByZWN1cnNpb24gb2Yg
dGhlIG5haXZlIFJlc29sdmVFeHBvcnQgaW1wbGVtZW50YXRpb24uCiAgICAgLy8gRmxhdHRlbiB0
aGUgcmVjdXJzaW9uIHRvIHRoZSBsb29wIHdpdGggdGhlIHRhc2sgcXVldWUgYW5kIGZyYW1lcy4K
ICAgICAvLwpAQCAtMjc3LDggKzI5MiwyNDEgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNv
bHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAg
ICAvLyBUbyBmb2xsb3cgdGhlIHJlcXVpcmVtZW50IHN0cmljdGx5LCBpbiB0aGlzIGltcGxlbWVu
dGF0aW9uLCB3ZSBrZWVwIHRoZSBsb2NhbCByZXNvbHV0aW9uIHJlc3VsdCB0byBwcm9kdWNlIHRo
ZQogICAgIC8vIGNvcnJlY3QgcmVzdWx0IHVuZGVyIHRoZSBhYm92ZSBjb21wbGV4IGNhc2VzLgog
Ci0gICAgdXNpbmcgUmVzb2x1dGlvbiA9IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uOwotICAg
IHR5cGVkZWYgV1RGOjpIYXNoU2V0PFJlc29sdmVRdWVyeSwgUmVzb2x2ZVF1ZXJ5SGFzaCwgV1RG
OjpDdXN0b21IYXNoVHJhaXRzPFJlc29sdmVRdWVyeT4+IFJlc29sdmVTZXQ7CisgICAgLy8gQ2Fj
aGluZyBzdHJhdGVneToKKyAgICAvLyBUaGUgcmVzb2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgZnJl
cXVlbnRseSBjYWxsZWQuIFNvIGNhY2hpbmcgcmVzdWx0cyBpcyBpbXBvcnRhbnQuCisgICAgLy8g
V2Ugb2JzZXJ2ZSB0aGUgZm9sbG93aW5nIGFzcGVjdHMgYW5kIGJhc2VkIG9uIHRoZW0gY29uc3Ry
dWN0IHRoZSBjYWNoaW5nIHN0cmF0ZWd5LgorICAgIC8vIEhlcmUsIHdlIGF0dGVtcHQgdG8gY2Fj
aGUgdGhlIHJlc29sdXRpb24gYnkgY29uc3RydWN0aW5nIHRoZSBtYXAgaW4gbW9kdWxlIHJlY29y
ZHMuCisgICAgLy8gVGhhdCBtZWFucyAgTW9kdWxlIC0+IEV4cG9ydE5hbWUgLT4gTWF5YmU8UmVz
b2x1dGlvbj4uCisgICAgLy8gVGVjaG5pY2FsbHksIHRoZSBhbGwgSlNNb2R1bGVSZWNvcmQgaGF2
ZSB0aGUgTWFwPEV4cG9ydE5hbWUsIFJlc29sdXRpb24+IGZvciBjYWNoaW5nLgorICAgIC8vCisg
ICAgLy8gVGhlIGltcG9ydGFudCBvYnNlcnZhdGlvbiBpcyB0aGF0LAorICAgIC8vCisgICAgLy8g
IC0gKmNhY2hlYWJsZSogbWVhbnMgdGhhdCB3ZSBjYW4gY2FjaGUgdGhlIGdhaW4gcmVzdWx0IGJl
Y2F1c2UgdGhlIHJlc3VsdCBpcyB0aGUgc2FtZSB0byB0aGUgcmVzdWx0CisgICAgLy8gICAgdGhh
dCB3aWxsIGJlIHByb2R1Y2VkIHdoZW4gc3RhcnRpbmcgZnJvbSB0aGlzIG5vZGUuIFRoaXMgbWVh
bnMgdGhhdCB0aGUgZm9sbG93aW5nIDIgaXMgdGhlIHNhbWUuCisgICAgLy8gICAgICAxLiBUaGUg
cmVzb2x2aW5nIHJvdXRlIGZyb20gdGhpcyBub2RlIHdoZW4gdHJhY2luZyB0aGUgbm9kZXMgZnJv
bSB0aGUgb3RoZXIgc3RhcnRpbmcgbm9kZS4KKyAgICAvLyAgICAgIDIuIFRoZSByZXNvbHZpbmcg
cm91dGUgZnJvbSB0aGlzIG5vZGUgd2hlbiBzdGFydGluZyBmcm9tIHRoaXMgbm9kZS4KKyAgICAv
LworICAgIC8vICAgIEhlcmUsIHdlIGRlZmluZSB0aGUgcmVzb3ZsaW5nIHJvdXRlLiBXZSByZXBy
ZXNlbnQgWz9dIGFzIHRoZSBtb2R1bGUgdGhhdCBoYXMgdGhlIHNlYXJjaGVkIGxvY2FsIGJpbmRp
bmcuCisgICAgLy8gICAgQW5kICg/KSBhcyB0aGUgbW9kdWxlIHdpdGhvdXQgdGhlIGxvY2FsIGJp
bmRpbmcuCisgICAgLy8KKyAgICAvLyAgICAgIEAgLT4gKEEpIC0+IChCKSAtPiBbQ10KKyAgICAv
LworICAgIC8vICAgIFdlIGxpc3QgdGhlIHJlc29sdmluZyByb3V0ZSBmb3IgZWFjaCBub2RlLgor
ICAgIC8vCisgICAgLy8gICAgKEEpOiAoQSkgLT4gKEIpIC0+IFtDXQorICAgIC8vICAgIChCKTog
KEIpIC0+IFtDXQorICAgIC8vICAgIFtDXTogW0NdCisgICAgLy8KKyAgICAvLyAgICBJbiB0aGlz
IGNhc2UsIGlmIHdlIHN0YXJ0IHRoZSB0cmFjaW5nIGZyb20gKEIpLCB0aGUgcmVzb2x2aW5nIHJv
dXRlIGJlY29tZXMgKEIpIC0+IFtDXS4KKyAgICAvLyAgICBTbyB0aGlzIGlzIHRoZSBzYW1lLiBB
dCB0aGF0IHRpbWUsIHdlIGNhbiBzYXkgKEIpIGlzIGNhY2hlYWJsZSBpbiB0aGUgZmlyc3QgdHJh
Y2luZy4KKyAgICAvLworICAgIC8vICAtIENhY2hlYWJpbGl0eSBkZXBlbmRzIG9uIHRoZSByZXNv
bHZpbmcgcm91dGUgZnJvbSB0aGlzIG5vZGUuIE5vdCBkZXBlbmQgb24gdGhlIG5vZGUuCisgICAg
Ly8gICAgVGhlIG5vZGUgaXMgc29tZXRpbWVzIGNhY2hlYWJsZS4gQW5kIHNvbWV0aW1lcyBub24t
Y2FjaGVhYmxlLgorICAgIC8vICAgIFRoZSByZXNvbHZpbmcgcm91dGUgZGVwZW5kcyBvbiB0aGUg
c3RhcnRpbmcgbm9kZS4KKyAgICAvLworICAgIC8vIDEuIFRoZSBzdGFydGluZyBwb2ludCBpcyBh
bHdheXMgY2FjaGVhYmxlLgorICAgIC8vCisgICAgLy8gQnkgdGhlIGRlZmluaXRpb24gb2YgdGhl
IGNhY2hlYWJsZSwgdGhlIHN0YXJ0aW5nIHBvaW50IGlzIGFsd2F5cyBjYWNoZWFibGUuCisgICAg
Ly8KKyAgICAvLyAgPT4gVGhlIHN0YXJ0aW5nIHBvaW50IGlzIGFsd2F5cyBjYWNoZWFibGUuCisg
ICAgLy8KKyAgICAvLyAyLiBMb2NhbCBleHBvcnRlZCBiaW5kaW5ncyBhcmUgYWx3YXlzIGNhY2hl
YWJsZSBpbiB0aGUgbm9kZS4KKyAgICAvLworICAgIC8vICBAIC0+IChBKSAtPiBbQl0KKyAgICAv
LworICAgIC8vICBJbiB0aGUgYWJvdmUgY2FzZSwgd2UgY2FuIHNlZSB0aGUgW0JdIGFzIGNhY2hl
YWJsZS4KKyAgICAvLyAgVGhpcyBpcyBiZWNhdXNlIHdoZW4gc3RhcnRpbmcgZnJvbSBbQl0gbm9k
ZSwgd2UgaW1tZWRpYXRlbHkgcmVzb2x2ZSB3aXRoIHRoZSBsb2NhbCBiaW5kaW5nLgorICAgIC8v
ICBTbyB0aGUgcmVzb2x2aW5nIHJvdXRlIGZyb20gW0JdIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUg
c3RhcnRpbmcgcG9pbnQuCisgICAgLy8KKyAgICAvLyAgPT4gVGhlIG1vZHVsZSB0aGF0IGhhcyB0
aGUgc2VhcmNoZWQgbG9jYWwgcmVzb2x1dGlvbiBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAgIC8v
CisgICAgLy8gMy4gSW5kaXJlY3QgZXhwb3J0ZWQgYmluZGluZ3MgYXJlIGNhY2hlYWJsZSBpZiB0
aGVyZSBpcyBvbmx5IG5vbi1zdGFyIGxpbmtzLgorICAgIC8vCisgICAgLy8gIElmIHRoZXJlIGFy
ZSBvbmx5IG5vbi1zdGFyIGxpbmtzLCBpdCBtZWFucyB0aGF0IHRoZXJlIGlzICpubyBicmFuY2gq
IGluIHRoZSBtb2R1bGUgZGVwZW5kZW5jeSBncmFwaC4KKyAgICAvLyAgVGhpcyAqbm8gYnJhbmNo
KiBmZWF0dXJlIG1ha2VzIHRoZSBhbGwgbW9kdWxlIGNhY2hhYmxlLgorICAgIC8vCisgICAgLy8g
IEAgLT4gKEEpIC0tPiAoQikgLT4gW0NdIC0+IChEKSAtPiAoRSkgLSsKKyAgICAvLyAgICAgICAg
ICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAg
IHwgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vICBXaGVuIHN0YXJ0aW5nIGZyb20g
QCwgW0NdIHdpbGwgYmUgZm91bmQgYXMgdGhlIG1vZHVsZSByZXNvbHZpbmcgdGhlIGdpdmVuIGJp
bmRpbmcuCisgICAgLy8gIEluIHRoaXMgY2FzZSwgKEIpIGNhbiBjYWNoZSB0aGlzIHJlc29sdXRp
b24uIFNpbmNlIHRoZSByZXNvbHZpbmcgcm91dGUgaXMgdGhlIHNhbWUgdG8gdGhlIG9uZSB3aGVu
CisgICAgLy8gIHN0YXJ0aW5nIGZyb20gKEIpLiBBZnRlciBjYWNoaW5nIHRoZSBhYm92ZSByZXN1
bHQsIHdlIGF0dGVtcHQgdG8gcmVzb2x2ZSB0aGUgc2FtZSBiaW5kaW5nIGZyb20gKEQpLgorICAg
IC8vCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBACisgICAgLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2CisgICAgLy8gIEAgLT4gKEEpIC0tPiAoQikgLT4gW0NdIC0+IChEKSAtPiAoRSkgLSsK
KyAgICAvLyAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8v
ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAg
ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vICBJbiB0
aGlzIGNhc2UsIHdlIGNhbiB1c2UgdGhlIChCKSdzIGNhY2hlZCByZXN1bHQuIEFuZCAoRSkgY2Fu
IGJlIGNhY2hlZC4KKyAgICAvLworICAgIC8vICAgIChFKTogVGhlIHJlc29sdmluZyByb3V0ZSBp
cyBub3cgKEUpIC0+IChCKSAtPiBbQ10uIFRoYXQgaXMgdGhlIHNhbWUgd2hlbiBzdGFydGluZyBm
cm9tIChFKS4KKyAgICAvLworICAgIC8vICBObyBicmFuY2hpbmcgbWFrZXMgdGhhdCB0aGUgcHJv
YmxlbWF0aWMgKm9uY2UtdmlzaXRlZCogbm9kZSBjYW5ub3QgYmUgc2Vlbi4KKyAgICAvLyAgVGhl
ICpvbmNlLXZpc2l0ZWQqIG5vZGUgbWFrZXMgdGhlIHJlc29sdmluZyByb3V0ZSBjaGFuZ2VkIHNp
bmNlIHdoZW4gd2Ugc2VlIHRoZSAqb25jZS12aXNpdGVkKiBub2RlLAorICAgIC8vICB3ZSBzdG9w
IHRyYWNpbmcgdGhpcy4KKyAgICAvLworICAgIC8vICBJbiB0aGVyZSBpcyBubyBzdGFyIGxpbmtz
IGFuZCBpZiB3ZSBsb29rICpvbmNlLXZpc2l0ZWQqIG5vZGUgdW5kZXIgbm8gYnJhbmNoaW5nIGdy
YXBoLCAqb25jZS12aXNpdGVkKgorICAgIC8vICBub2RlIGNhbm5vdCByZXNvbHZlIHRoZSByZXF1
ZXN0ZWQgYmluZGluZy4gSWYgdGhlICpvbmNlLXZpc2l0ZWQqIG5vZGUgY2FuIHJlc29sdmUgdGhl
IGJpbmRpbmcsIHdlCisgICAgLy8gIHNob3VsZCBhbHJlYWR5IGZpbmlzaCB0aGUgcmVzb2x1dGlv
biB3aGVuIHJlYWNoaW5nIHRoaXMgKm9uY2UtdmlzaXRlZCogbm9kZS4KKyAgICAvLworICAgIC8v
ICA9PiBJZiB3ZSBkb24ndCBmb2xsb3cgYW55IHN0YXIgbGlua3MgZHVyaW5nIHRoZSByZXNvbHV0
aW9uLCB3ZSBjYW4gc2VlIGFsbCB0aGUgdHJhY2VkIG5vZGVzIGFyZSBjYWNoZWFibGUuCisgICAg
Ly8KKyAgICAvLyA0LiBPbmNlIHdlIGZvbGxvdyBzdGFyIGxpbmtzLCB3ZSBzaG91bGQgbm90IHJl
dHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUgYW5kIHNob3VsZCBub3QgY2FjaGUuCisg
ICAgLy8KKyAgICAvLyAgU3RhciBsaW5rcyBhcmUgb25seSB0aGUgd2F5IHRvIGludHJvZHVjZSBi
cmFuY2guCisgICAgLy8gIE9uY2Ugd2UgZm9sbG93IHRoZSBzdGFyIGxpbmtzIGR1cmluZyB0aGUg
cmVzb2x1dGlvbiwgd2UgY2Fubm90IGNhY2hlIG5haXZlbHkuCisgICAgLy8gIFRoaXMgaXMgYmVj
YXVzZSB0aGUgY2FjaGVhYmlsaXR5IGRlcGVuZHMgb24gdGhlIHJlc29sdmluZyByb3V0ZS4gQW5k
IGJyYW5jaGluZyBwcm9kdWNlcyB0aGUgcHJvYmxlbWF0aWMgKm9uY2UtdmlzaXRlZCoKKyAgICAv
LyAgbm9kZXMuIFNpbmNlIHdlIGRvbid0IGZvbGxvdyB0aGUgKm9uY2UtdmlzaXRlZCogbm9kZSwg
dGhlIHJlc29sdmluZyByb3V0ZSBmcm9tIHRoZSBub2RlIGJlY29tZXMgZGlmZmVyZW50IGZyb20K
KyAgICAvLyAgdGhlIHJlc29sdmluZyByb3V0ZSB3aGVuIHN0YXJ0aW5nIGZyb20gdGhpcyBub2Rl
LgorICAgIC8vCisgICAgLy8gIFRoZSBzdGFyIGxpbmsgbWFrZXMgdGhlIG5vZGUgY29uZGl0aW9u
YWwuCisgICAgLy8KKyAgICAvLyAgICAgICAoQSkgKi0tPiBbQl0KKyAgICAvLyAgICAgICAgICAg
IHwgICAgXgorICAgIC8vICAgICAgICAgICAgfCAgICB8CisgICAgLy8gICAgICAgICAgICArLT4g
KEMpICotPiAoRCkKKyAgICAvLyAgICAgICAgICAgICAgICAgXgorICAgIC8vICAgICAgICAgICAg
ICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgKEUpCisgICAgLy8gICAgICAgICAgICAgICAg
IF4KKyAgICAvLyAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICBACisg
ICAgLy8KKyAgICAvLyAgV2hlbiBzdGFydGluZyBmcm9tIEAsCisgICAgLy8KKyAgICAvLyAgICAx
LiAoRSkgd2lsbCBmb2xsb3cgdGhlIGxpbmsgdG8gKEMpLgorICAgIC8vICAgIDIuIExvb2tpbmcg
KEMpLCBpdCBoYXMgc3RhciBsaW5rLCBidXQgaXQgYWxzbyBoYXMgdGhlIGluZGlyZWN0IGxpbmsu
IFNvIG9uY2Ugd2UgZm9sbG93IHRoZSBsaW5rIHRvIFtCXS4KKyAgICAvLyAgICAzLiBbQl0gaXMg
cmVzb2x2ZWQuIEFuZCBpdCBpcyBjYWNoZWFibGUgYnkgMS4KKyAgICAvLyAgICA0LiAoQykgaXMg
cmVzb2x2ZWQuIEFuZCBzaW5jZSB3ZSBkb24ndCBmb2xsb3cgYW55IHN0YXIgbGluayBkdXJpbmcg
dGhpcywgKEMpIGlzIGNhY2hlYWJsZS4KKyAgICAvLyAgICA1LiAoRSkgaXMgY2FjaGVhYmxlIGJ5
IGRlZmluaXRpb24uCisgICAgLy8KKyAgICAvLyAgQnV0LCBpbiB0aGUgZm9sbG93aW5nLAorICAg
IC8vCisgICAgLy8gIEAgLT4gKEEpICotLT4gW0JdCisgICAgLy8gICAgICAgICAgICB8ICAgIF4K
KyAgICAvLyAgICAgICAgICAgIHwgICAgfAorICAgIC8vICAgICAgICAgICAgKy0+IChDKSAqLT4g
KEQpCisgICAgLy8gICAgICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICAgICAgICAgICAgfAor
ICAgIC8vICAgICAgICAgICAgICAgIChFKQorICAgIC8vCisgICAgLy8gICAgMS4gKEEpIHdpbGwg
Zm9sbG93IHRoZSBzdGFyIGxpbmtzLgorICAgIC8vICAgIDIuIFtCXSBpcyByZXNvbHZlZCAmIGNh
Y2hlYWJsZSBieSBkZWZpbml0aW9uLgorICAgIC8vICAgIDMuIEluIChDKSwgd2UgYXR0ZW1wdCB0
byBmb2xsb3cgdGhlIGxpbmsgdG8gW0JdLCBidXQgd2UgY2Fubm90IHNpbmNlIFtCXSBpcyBhbHJl
YWR5ICpvbmNlLXZpc2l0ZWQqLgorICAgIC8vICAgIDQuIFNvLCB3ZSBmYWxsIGJhY2sgdG8gdGhl
IHN0YXIgbGluayB0byAoRCkuCisgICAgLy8gICAgNS4gKEQpIGlzIG5vdCByZXNvbHZlZC4gU28g
KEMpIGlzIG5vdCByZXNvbHZlZC4KKyAgICAvLworICAgIC8vICBJbiB0aGUgcHJldmlvdXMgb25l
LCAoQykgaXMgY2FjaGVhYmxlLiBCdXQgaW4gdGhlIGFib3ZlIHJvdXRlLCAoQykgYmVjb21lcyB1
bmNhY2hlYWJsZS4KKyAgICAvLyAgU28gaW4gdGhlIHNlY29uZCB0cmlhbCwgd2Ugc2hvdWxkIG5v
dCByZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gKEMpIHdoZW4gdmlzaXRpbmcgKEMpLgorICAgIC8v
ICBIZXJlLCB3ZSBjYW4gb2JzZXJ2ZSB0aGUgb25lIHRoaW5nLiBJbiBzb21lIHNpdHVhdGlvbiwg
d2Ugc2hvdWxkIG5vdCByZXRyaWV2ZSB0aGUgY2FjaGVkIHJlc3VsdAorICAgIC8vICBmcm9tIHRo
ZSBub2RlLgorICAgIC8vCisgICAgLy8gIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBleHBsYWlucyB3
aGVuIHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIGNhY2hlIGFuZCBjYWNoZSB0aGUgcmVzdWx0
LgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICArLS0tLT4gKEQpIC0tLS0tLSsKKyAgICAv
LyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAg
fCAgICAgICAgICAgICAgICB2CisgICAgLy8gICAgICAoQSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4g
W0NdCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBACisgICAgLy8KKyAgICAv
LyAgV2hlbiBzdGFydGluZyBmcm9tIChCKSwgd2UgZmluZCBbQ10uIEluIHRoaXMgcmVzb2x2aW5n
IHJvdXRlLCB3ZSBkb24ndCBmaW5kIGFueSBzdGFyIGxpbmsuCisgICAgLy8gIEFuZCBieSBkZWZp
bml0aW9uLCAoQikgYW5kIFtDXSBhcmUgY2FjaGFibGUuIChCKSBpcyB0aGUgc3RhcnRpbmcgcG9p
bnQuIEFuZCBbQ10gaGFzIHRoZSBsb2NhbCBiaW5kaW5nLgorICAgIC8vCisgICAgLy8gICAgICAg
ICAgICAgICArLS0tLT4gKEQpIC0tLS0tLSsKKyAgICAvLyAgICAgICAgICAgICAgIHwgICAgICAg
ICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB2CisgICAg
Ly8gIEAtPiAoQSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4gW0NdCisgICAgLy8KKyAgICAvLyAgQnV0
IHdoZW4gc3RhcnRpbmcgZnJvbSAoQSksIHdlIHNob3VsZCBub3QgZ2V0IHRoZSB2YWx1ZSBmcm9t
IHRoZSBjYWNoZS4gQmVjYXVzZSwKKyAgICAvLworICAgIC8vICAgIDEuIFdoZW4gbG9va2luZyAo
RCksIHdlIHJlYWNoIFtDXSBhbmQgbWFrZSBib3RoIHJlc29sdmVkLgorICAgIC8vICAgIDIuIFdo
ZW4gbG9va2luZyAoQiksIGlmIHdlIHJldHJpZXZlZCB0aGUgbGFzdCBjYWNoZSBmcm9tIChCKSwg
KEIpIGJlY29tZXMgcmVzb2x2ZWQuCisgICAgLy8gICAgMy4gQnV0IGFjdHVhbGx5LCAoQikgaXMg
bm90LWZvdW5kIGluIHRoaXMgdHJpYWwgYmVjYXVzZSAoQykgaXMgYWxyZWFkeSAqb25jZS12aXNp
dGVkKi4KKyAgICAvLyAgICA0LiBJZiB3ZSBhY2NpZGVudGFsbHkgbWFrZSAoQikgcmVzb2x2ZWQs
IChBKSBiZWNvbWVzIGFtYmlndW91cy4gQnV0IHRoZSBjb3JyZWN0IGFuc3dlciBpcyByZXNvbHZl
ZC4KKyAgICAvLworICAgIC8vICBXaHkgaXMgdGhpcyBwcm9ibGVtIGNhdXNlZD8gVGhpcyBpcyBi
ZWNhdXNlIHRoZSAqb25jZS12aXNpdGVkKiBub2RlIG1ha2VzIHRoZSByZXN1bHQgbm90LWZvdW5k
LgorICAgIC8vICBJbiB0aGUgc2Vjb25kIHRyaWFsLCAoQikgLT4gW0NdIHJlc3VsdCBpcyBjaGFu
Z2VkIGZyb20gcmVzb2x2ZWQgdG8gbm90LWZvdW5kLgorICAgIC8vCisgICAgLy8gIFdoZW4gZG9l
cyB0aGlzIGJlY29tZSBhIHByb2JsZW0/IElmIHRoZSBzdGF0dXMgb2YgdGhlICpvbmNlLXZpc2l0
ZWQqIG5vZGUgZ3JvdXAgaXMgcmVzb2x2ZWQsCisgICAgLy8gIGNoYW5naW5nIHRoZSByZXN1bHQg
dG8gbm90LWZvdW5kIG1ha2VzIHRoZSByZXN1bHQgY2hhbmdlZC4KKyAgICAvLworICAgIC8vICBU
aGlzIHByb2JsZW0gZG9lcyBub3QgaGFwcGVuIHdoZW4gd2UgZG9uJ3Qgc2VlIGFueSBzdGFyIGxp
bmsgeWV0LiBOb3csIGNvbnNpZGVyIHRoZSBtaW5pbXVtIGNhc2UuCisgICAgLy8KKyAgICAvLyAg
QC0+IChBKSAtPiBbIHNvbWUgZ3JhcGggXQorICAgIC8vICAgICAgIF4gICAgICAgICAgICB8Cisg
ICAgLy8gICAgICAgfCAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICArLS0tLS0tLS0tLS0tKwor
ICAgIC8vCisgICAgLy8gIEluIChBKSwgd2UgZG9uJ3Qgc2VlIGFueSBzdGFyIGxpbmsgeWV0LiBT
byB3ZSBjYW4gc2F5IHRoYXQgYWxsIHRoZSB2aXNpdGVkIG5vZGVzIGRvZXMgbm90IGhhdmUgYW55
IGxvY2FsCisgICAgLy8gIHJlc29sdXRpb24uIEJlY2F1c2UgaWYgdGhleSBoYXZlIHRoZSByZXNv
bHV0aW9uLCB3ZSBzaG91bGQgYWxyZWFkeSBmaW5pc2ggdGhlIHRyYWNpbmcuCisgICAgLy8KKyAg
ICAvLyAgQW5kIGV2ZW4gaWYgdGhlIHNvbWUgZ3JhcGggd2lsbCBzZWUgdGhlICpvbmNlLXZpc2l0
ZWQqIG5vZGUgKGluIHRoaXMgY2FzZSwgKEEpKSwgdGhhdCBkb2VzIG5vdCBhZmZlY3QgdGhlCisg
ICAgLy8gIHJlc3VsdCBvZiB0aGUgcmVzb2x1dGlvbi4gQmVjYXVzZSBldmVuIGlmIHdlIGZvbGxv
dyB0aGUgbGluayB0byAoQSkgb3Igbm90IGZvbGxvdyB0aGUgbGluayB0byAoQSksIHRoZSBzdGF0
dXMKKyAgICAvLyAgb2YgdGhlIGxpbmsgaXMgYWx3YXlzIG5vdC1mb3VuZCBzaW5jZSAoQSkgZG9l
cyBub3QgaGF2ZSBhbnkgbG9jYXRpb24gcmVzb2x1dGlvbi4KKyAgICAvLyAgSW4gdGhlIGFib3Zl
IGNhc2UsIHdlIGNhbiB1c2UgdGhlIHJlc3VsdCBvZiB0aGUgW3NvbWUgZ3JhcGhdLgorICAgIC8v
CisgICAgLy8gIFNvLCB3ZSBjYW4gc2F5IHRoYXQsCisgICAgLy8KKyAgICAvLyAgPT4gT25jZSB3
ZSBmb2xsb3cgc3RhciBsaW5rcywgd2Ugc2hvdWxkIG5vdCByZXRyaWV2ZSB0aGUgcmVzdWx0IGZy
b20gdGhlIGNhY2hlIGFuZCBzaG91bGQgbm90IGNhY2hlLgorICAgIC8vCisgICAgLy8gNS4gT25j
ZSB3ZSBzZWUgdGhlIHN0YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdl
IHNob3VsZCBkaXNhYmxlIGNhY2hpbmcuCisgICAgLy8KKyAgICAvLyAgQW5kIHRoZXJlIGlzIGFu
b3RoZXIgZWRnZSBjYXNlLgorICAgIC8vCisgICAgLy8KKyAgICAvLyAgICAgICArLS0tLS0tLS0t
LS0tLSsKKyAgICAvLyAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICB2ICAgICAg
ICAgICAgIHwKKyAgICAvLyAgICAgIChBKSAtPiAoQikgLT4gKEMpICotPiBbRV0KKyAgICAvLyAg
ICAgICAqICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAv
LyAgICAgICB2ICAgICAgICAgICAgIEAKKyAgICAvLyAgICAgIFtEXQorICAgIC8vCisgICAgLy8g
IEluIHRoZSBhYm92ZSBjYXNlLCAoQykgd2lsbCBiZSByZXNvbHZlZCB3aXRoIFtEXS4KKyAgICAv
LyAgKEMpIHdpbGwgc2VlIChBKSBhbmQgKEEpIGdpdmVzIHVwIGluIChBKSAtPiAoQikgLT4gKEMp
IHJvdXRlLiBTbywgKEEpIHdpbGwgZmFsbGJhY2sgdG8gW0RdLgorICAgIC8vCisgICAgLy8gICAg
ICAgKy0tLS0tLS0tLS0tLS0rCisgICAgLy8gICAgICAgfCAgICAgICAgICAgICB8CisgICAgLy8g
ICAgICAgdiAgICAgICAgICAgICB8CisgICAgLy8gIEAtPiAoQSkgLT4gKEIpIC0+IChDKSAqLT4g
W0VdCisgICAgLy8gICAgICAgKgorICAgIC8vICAgICAgIHwKKyAgICAvLyAgICAgICB2CisgICAg
Ly8gICAgICBbRF0KKyAgICAvLworICAgIC8vICBCdXQgaW4gdGhpcyBjYXNlLCAoQSkgd2lsbCBi
ZSByZXNvbHZlZCB3aXRoIFtFXSAobm90IFtEXSkuCisgICAgLy8gIChDKSB3aWxsIGF0dGVtcHQg
dG8gZm9sbG93IHRoZSBsaW5rIHRvIChBKSwgYnV0IGl0IGZhaWxzLgorICAgIC8vICBTbyAoQykg
d2lsbCBmYWxsYmFjayB0byB0aGUgc3RhciBsaW5rIGFuZCBmb3VuZCBbRV0uIEluIHRoaXMgc2Vu
YXJpbywKKyAgICAvLyAgKEMpIGlzIG5vdyByZXNvbHZlZCB3aXRoIFtFXSdzIHJlc3VsdC4KKyAg
ICAvLworICAgIC8vICBUaGUgY2F1c2Ugb2YgdGhpcyBwcm9ibGVtIGlzIGFsc28gdGhlIHNhbWUg
dG8gNC4KKyAgICAvLyAgSW4gdGhlIGxhdHRlciBjYXNlLCB3aGVuIGxvb2tpbmcgKEMpLCB3ZSBj
YW5ub3QgdXNlIHRoZSBjYWNoZWQgcmVzdWx0IGluIChDKS4KKyAgICAvLyAgQmVjYXVzZSB0aGUg
Y2FjaGVkIHJlc3VsdCBvZiAoQykgZGVwZW5kcyBvbiB0aGUgKm9uY2UtdmlzaXRlZCogbm9kZSAo
QSkgYW5kCisgICAgLy8gIChBKSBoYXMgdGhlIGZhbGxiYWNrIHN5c3RlbSB3aXRoIHRoZSBzdGFy
IGxpbmsuCisgICAgLy8gIEluIHRoZSBsYXR0ZXIgdHJpYWwsIHdlIG5vdyBhc3N1bWUgdGhhdCAo
QSkncyBzdGF0dXMgaXMgbm90LWZvdW5kLgorICAgIC8vICBCdXQsIGFjdHVhbGx5LCBpbiB0aGUg
Zm9ybWVyIHRyaWFsLCAoQSkncyBzdGF0dXMgYmVjb21lcyByZXNvbHZlZCBkdWUgdG8gdGhlIGZh
bGxiYWNrIHRvIHRoZSBbRF0uCisgICAgLy8KKyAgICAvLyAgVG8gYXZvaWQgdGhpcywgb25jZSB3
ZSBzZWUgdGhlIHN0YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdlIHNo
b3VsZCBkaXNhYmxlIGNhY2hpbmcuCisgICAgLy8KKyAgICAvLyAgPT4gT25jZSB3ZSBzZWUgdGhl
IHN0YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdlIHNob3VsZCBkaXNh
YmxlIGNhY2hpbmcuCisgICAgLy8KKyAgICAvLyBUbyBzdW1tYXJpemUgdGhlIG9ic2VydmF0aW9u
LgorICAgIC8vCisgICAgLy8gID0+IFRoZSBzdGFydGluZyBwb2ludCBpcyBhbHdheXMgY2FjaGVh
YmxlLgorICAgIC8vICA9PiBUaGUgbW9kdWxlIHRoYXQgaGFzIGxvY2FsIHJlc29sdXRpb24gaXMg
YWx3YXlzIGNhY2hlYWJsZS4KKyAgICAvLyAgPT4gSWYgd2UgZG9uJ3QgZm9sbG93IGFueSBzdGFy
IGxpbmtzIGR1cmluZyB0aGUgcmVzb2x1dGlvbiwgd2UgY2FuIHNlZSBhbGwgdGhlIHRyYWNlZCBu
b2RlcyBhcmUgY2FjaGVhYmxlLgorICAgIC8vICA9PiBPbmNlIHdlIGZvbGxvdyBzdGFyIGxpbmtz
LCB3ZSBzaG91bGQgbm90IHJldHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUgYW5kIHNo
b3VsZCBub3QgY2FjaGUgdGhlIHJlc3VsdC4KKyAgICAvLyAgPT4gT25jZSB3ZSBzZWUgdGhlIHN0
YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdlIHNob3VsZCBkaXNhYmxl
IGNhY2hpbmcuCisKKyAgICB0eXBlZGVmIFdURjo6SGFzaFNldDxSZXNvbHZlUXVlcnksIFJlc29s
dmVRdWVyeTo6SGFzaCwgV1RGOjpDdXN0b21IYXNoVHJhaXRzPFJlc29sdmVRdWVyeT4+IFJlc29s
dmVTZXQ7CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgUXVlcnksIEluZGlyZWN0RmFsbGJhY2ssIEdh
dGhlclN0YXJzIH07CiAgICAgc3RydWN0IFRhc2sgewogICAgICAgICBSZXNvbHZlUXVlcnkgcXVl
cnk7CkBAIC0yODgsMTMgKzUzNiwxNyBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRp
b24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgIFZl
Y3RvcjxUYXNrLCA4PiBwZW5kaW5nVGFza3M7CiAgICAgUmVzb2x2ZVNldCByZXNvbHZlU2V0Owog
ICAgIEhhc2hTZXQ8SlNNb2R1bGVSZWNvcmQqPiBzdGFyU2V0OworCiAgICAgVmVjdG9yPFJlc29s
dXRpb24sIDg+IGZyYW1lczsKIAorICAgIGJvb2wgZm91bmRTdGFyTGlua3MgPSBmYWxzZTsKKwog
ICAgIGZyYW1lcy5hcHBlbmQoUmVzb2x1dGlvbjo6bm90Rm91bmQoKSk7CiAKICAgICAvLyBDYWxs
IHdoZW4gdGhlIHF1ZXJ5IGlzIG5vdCByZXNvbHZlZCBpbiB0aGUgY3VycmVudCBtb2R1bGUuCiAg
ICAgLy8gSXQgd2lsbCBlbnF1ZXVlIHRoZSBzdGFyIHJlc29sdXRpb24gcmVxdWVzdHMuIFJldHVy
biAiZmFsc2UiIGlmIHRoZSBlcnJvciBvY2N1cnMuCi0gICAgYXV0byByZXNvbHZlTm9uTG9jYWwg
PSBbJl0oY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSkgLT4gYm9vbCB7CisgICAgYXV0byByZXNv
bHZlTm9uTG9jYWwgPSBbJl0oY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSkgLT4gYm9vbAorICAg
IHsKICAgICAgICAgLy8gaHR0cDovL3d3dy5lY21hLWludGVybmF0aW9uYWwub3JnL2VjbWEtMjYy
LzYuMC8jc2VjLXJlc29sdmVleHBvcnQKICAgICAgICAgLy8gc2VjdGlvbiAxNS4yLjEuMTYuMywg
c3RlcCA2CiAgICAgICAgIC8vIElmIHRoZSAiZGVmYXVsdCIgbmFtZSBpcyBub3QgcmVzb2x2ZWQg
aW4gdGhlIGN1cnJlbnQgbW9kdWxlLCB3ZSBuZWVkIHRvIHRocm93IGFuIGVycm9yIGFuZCBzdG9w
IHJlc29sdXRpb24gaW1tZWRpYXRlbHksCkBAIC0zMDksOCArNTYxLDEwIEBAIHN0YXRpYyBKU01v
ZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFJlc29sCiAgICAgICAgIC8vIEVucXVldWUgdGhlIHRhc2sgdG8gZ2F0aGVyIHRoZSBy
ZXN1bHRzIG9mIHRoZSBzdGFycy4KICAgICAgICAgLy8gQW5kIGFwcGVuZCB0aGUgbmV3IFJlc29s
dXRpb24gZnJhbWUgdG8gZ2F0aGVyIHRoZSBsb2NhbCByZXN1bHQgb2YgdGhlIHN0YXJzLgogICAg
ICAgICBwZW5kaW5nVGFza3MuYXBwZW5kKFRhc2sgeyBxdWVyeSwgVHlwZTo6R2F0aGVyU3RhcnMg
fSk7CisgICAgICAgIGZvdW5kU3RhckxpbmtzID0gdHJ1ZTsKICAgICAgICAgZnJhbWVzLmFwcGVu
ZChSZXNvbHV0aW9uOjpub3RGb3VuZCgpKTsKIAorCiAgICAgICAgIC8vIEVucXVldWUgdGhlIHRh
c2tzIGluIHJldmVyc2Ugb3JkZXIuCiAgICAgICAgIGZvciAoYXV0byBpdGVyYXRvciA9IHF1ZXJ5
Lm1vZHVsZVJlY29yZC0+c3RhckV4cG9ydEVudHJpZXMoKS5yYmVnaW4oKSwgZW5kID0gcXVlcnku
bW9kdWxlUmVjb3JkLT5zdGFyRXhwb3J0RW50cmllcygpLnJlbmQoKTsgaXRlcmF0b3IgIT0gZW5k
OyArK2l0ZXJhdG9yKSB7CiAgICAgICAgICAgICBjb25zdCBSZWZQdHI8VW5pcXVlZFN0cmluZ0lt
cGw+JiBzdGFyTW9kdWxlTmFtZSA9ICppdGVyYXRvcjsKQEAgLTMyMSwxNCArNTc1LDE2IEBAIHN0
YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgfTsKIAogICAgIC8vIFJldHVybiB0aGUgY3VycmVu
dCByZXNvbHV0aW9uIHZhbHVlIG9mIHRoZSB0b3AgZnJhbWUuCi0gICAgYXV0byBjdXJyZW50VG9w
ID0gWyZdICgpIC0+IFJlc29sdXRpb24mIHsKKyAgICBhdXRvIGN1cnJlbnRUb3AgPSBbJl0gKCkg
LT4gUmVzb2x1dGlvbiYKKyAgICB7CiAgICAgICAgIEFTU0VSVCghZnJhbWVzLmlzRW1wdHkoKSk7
CiAgICAgICAgIHJldHVybiBmcmFtZXMubGFzdCgpOwogICAgIH07CiAKICAgICAvLyBNZXJnZSB0
aGUgZ2l2ZW4gcmVzb2x1dGlvbiB0byB0aGUgY3VycmVudCByZXNvbHV0aW9uIHZhbHVlIG9mIHRo
ZSB0b3AgZnJhbWUuCiAgICAgLy8gSWYgdGhlcmUgaXMgYW1iaWd1aXR5LCByZXR1cm4gImZhbHNl
Ii4gV2hlbiB0aGUgImZhbHNlIiBpcyByZXR1cm5lZCwgd2Ugc2hvdWxkIG1ha2UgdGhlIHJlc3Vs
dCAiYW1iaWd1b3VzIi4KLSAgICBhdXRvIG1lcmdlVG9DdXJyZW50VG9wID0gWyZdIChjb25zdCBS
ZXNvbHV0aW9uJiByZXNvbHV0aW9uKSAtPiBib29sIHsKKyAgICBhdXRvIG1lcmdlVG9DdXJyZW50
VG9wID0gWyZdIChjb25zdCBSZXNvbHV0aW9uJiByZXNvbHV0aW9uKSAtPiBib29sCisgICAgewog
ICAgICAgICBpZiAocmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246OlR5cGU6Ok5vdEZvdW5k
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTM0Myw2ICs1OTksMTIgQEAgc3RhdGlj
IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfTsKIAorICAgIGF1
dG8gY2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkgPSBbXSAoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVy
eSwgY29uc3QgUmVzb2x1dGlvbiYgcmVzb2x1dGlvbikKKyAgICB7CisgICAgICAgIEFTU0VSVChy
ZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQpOworICAgICAgICBx
dWVyeS5tb2R1bGVSZWNvcmQtPmNhY2hlUmVzb2x1dGlvbihxdWVyeS5leHBvcnROYW1lLmdldCgp
LCByZXNvbHV0aW9uKTsKKyAgICB9OworCiAgICAgcGVuZGluZ1Rhc2tzLmFwcGVuZChUYXNrIHsg
cm9vdCwgVHlwZTo6UXVlcnkgfSk7CiAgICAgd2hpbGUgKCFwZW5kaW5nVGFza3MuaXNFbXB0eSgp
KSB7CiAgICAgICAgIGNvbnN0IFRhc2sgdGFzayA9IHBlbmRpbmdUYXNrcy50YWtlTGFzdCgpOwpA
QCAtMzUwLDExICs2MTIsMjUgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJl
c29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKIAogICAgICAgICBz
d2l0Y2ggKHRhc2sudHlwZSkgewogICAgICAgICBjYXNlIFR5cGU6OlF1ZXJ5OiB7CisgICAgICAg
ICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gcXVlcnkubW9kdWxlUmVjb3JkOwor
CiAgICAgICAgICAgICBpZiAoIXJlc29sdmVTZXQuYWRkKHRhc2sucXVlcnkpLmlzTmV3RW50cnkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIEpTTW9kdWxlUmVjb3Jk
KiBtb2R1bGVSZWNvcmQgPSBxdWVyeS5tb2R1bGVSZWNvcmQ7Ci0gICAgICAgICAgICBjb25zdCBP
cHRpb25hbDxKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk+IG9wdGlvbmFsRXhwb3J0RW50cnkg
PSBtb2R1bGVSZWNvcmQtPnRyeUdldEV4cG9ydEVudHJ5KHF1ZXJ5LmV4cG9ydE5hbWUuZ2V0KCkp
OworICAgICAgICAgICAgLy8gID0+IE9uY2Ugd2Ugc2VlIHRoZSBzdGFyIGxpbmtzLCBldmVuIGlm
IGl0IGRvZXMgbm90IHVzZWQgeWV0LCB3ZSBzaG91bGQgZGlzYWJsZSBjYWNoaW5nLgorICAgICAg
ICAgICAgaWYgKCFtb2R1bGVSZWNvcmQtPnN0YXJFeHBvcnRFbnRyaWVzKCkuaXNFbXB0eSgpKQor
ICAgICAgICAgICAgICAgIGZvdW5kU3RhckxpbmtzID0gdHJ1ZTsKKworICAgICAgICAgICAgLy8g
ID0+IE9uY2Ugd2UgZm9sbG93IHN0YXIgbGlua3MsIHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhl
IHJlc3VsdCBmcm9tIHRoZSBjYWNoZSBhbmQgc2hvdWxkIG5vdCBjYWNoZSB0aGUgcmVzdWx0Lgor
ICAgICAgICAgICAgaWYgKCFmb3VuZFN0YXJMaW5rcykgeworICAgICAgICAgICAgICAgIGlmIChP
cHRpb25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNvbHV0aW9uID0gbW9kdWxlUmVjb3JkLT50cnlH
ZXRDYWNoZWRSZXNvbHNpb24ocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcCgqY2FjaGVkUmVzb2x1dGlvbikpCisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7CisgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgY29uc3QgT3B0aW9uYWw8RXhwb3J0RW50cnk+IG9wdGlvbmFsRXhw
b3J0RW50cnkgPSBtb2R1bGVSZWNvcmQtPnRyeUdldEV4cG9ydEVudHJ5KHF1ZXJ5LmV4cG9ydE5h
bWUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKCFvcHRpb25hbEV4cG9ydEVudHJ5KSB7CiAgICAg
ICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gbWF0Y2hlZCBleHBvcnRlZCBiaW5kaW5nIGlu
IHRoZSBjdXJyZW50IG1vZHVsZSwKICAgICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGxvb2sg
aW50byB0aGUgc3RhcnMuCkBAIC0zNjMsMTUgKzYzOSwxOSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNv
cmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBS
ZXNvbAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBjb25zdCBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnkmIGV4cG9ydEVudHJ5ID0gKm9w
dGlvbmFsRXhwb3J0RW50cnk7CisgICAgICAgICAgICBjb25zdCBFeHBvcnRFbnRyeSYgZXhwb3J0
RW50cnkgPSAqb3B0aW9uYWxFeHBvcnRFbnRyeTsKICAgICAgICAgICAgIHN3aXRjaCAoZXhwb3J0
RW50cnkudHlwZSkgewotICAgICAgICAgICAgY2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50
cnk6OlR5cGU6OkxvY2FsOgotICAgICAgICAgICAgY2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0
RW50cnk6OlR5cGU6Ok5hbWVzcGFjZToKLSAgICAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJy
ZW50VG9wKFJlc29sdXRpb24geyBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCwgbW9kdWxlUmVj
b3JkLCBleHBvcnRFbnRyeS5sb2NhbE5hbWUgfSkpCisgICAgICAgICAgICBjYXNlIEV4cG9ydEVu
dHJ5OjpUeXBlOjpMb2NhbDoKKyAgICAgICAgICAgIGNhc2UgRXhwb3J0RW50cnk6OlR5cGU6Ok5h
bWVzcGFjZTogeworICAgICAgICAgICAgICAgIFJlc29sdXRpb24gcmVzb2x1dGlvbiB7IFJlc29s
dXRpb246OlR5cGU6OlJlc29sdmVkLCBtb2R1bGVSZWNvcmQsIGV4cG9ydEVudHJ5LmxvY2FsTmFt
ZSB9OworICAgICAgICAgICAgICAgIC8vICA9PiBUaGUgbW9kdWxlIHRoYXQgaGFzIGxvY2FsIHJl
c29sdXRpb24gaXMgYWx3YXlzIGNhY2hlYWJsZS4KKyAgICAgICAgICAgICAgICBjYWNoZVJlc29s
dXRpb25Gb3JRdWVyeShxdWVyeSwgcmVzb2x1dGlvbik7CisgICAgICAgICAgICAgICAgaWYgKCFt
ZXJnZVRvQ3VycmVudFRvcChyZXNvbHV0aW9uKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFJlc29sdXRpb246OmFtYmlndW91cygpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICBjYXNlIEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRy
eTo6VHlwZTo6SW5kaXJlY3Q6IHsKKyAgICAgICAgICAgIGNhc2UgRXhwb3J0RW50cnk6OlR5cGU6
OkluZGlyZWN0OiB7CiAgICAgICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIGltcG9ydGVkTW9k
dWxlUmVjb3JkID0gbW9kdWxlUmVjb3JkLT5ob3N0UmVzb2x2ZUltcG9ydGVkTW9kdWxlKGV4ZWMs
IGV4cG9ydEVudHJ5Lm1vZHVsZU5hbWUpOwogCiAgICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUg
aW1wb3J0ZWQgbW9kdWxlIGRvZXMgbm90IHByb2R1Y2UgYW55IHJlc29sdmVkIGJpbmRpbmcsIHdl
IG5lZWQgdG8gbG9vayBpbnRvIHRoZSBzdGFycyBpbiB0aGUgKmN1cnJlbnQqCkBAIC0zODcsNyAr
NjY3LDcgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRM
b29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgfQogCiAgICAgICAgIGNh
c2UgVHlwZTo6SW5kaXJlY3RGYWxsYmFjazogewotICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQ6
OlJlc29sdXRpb24gcmVzb2x1dGlvbiA9IGZyYW1lcy50YWtlTGFzdCgpOworICAgICAgICAgICAg
UmVzb2x1dGlvbiByZXNvbHV0aW9uID0gZnJhbWVzLnRha2VMYXN0KCk7CiAKICAgICAgICAgICAg
IGlmIChyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6Tm90Rm91bmQpIHsKICAg
ICAgICAgICAgICAgICAvLyBJbmRpcmVjdCBleHBvcnQgZW50cnkgZG9lcyBub3QgcHJvZHVjZSBh
bnkgcmVzb2x2ZWQgYmluZGluZy4KQEAgLTM5Nyw2ICs2NzcsMTMgQEAgc3RhdGljIEpTTW9kdWxl
UmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgUmVzb2wKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIAorICAg
ICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlv
bjo6VHlwZTo6UmVzb2x2ZWQsICJXaGVuIHdlIHNlZSBFcnJvciBhbmQgQW1iaWd1b3VzLCB3ZSBp
bW1lZGlhdGVseSByZXR1cm4gZnJvbSB0aGlzIGxvb3AuIFNvIGhlcmUsIG9ubHkgUmVzb2x2ZWQg
Y29tZXMuIik7CisKKyAgICAgICAgICAgIC8vICA9PiBJZiB3ZSBkb24ndCBmb2xsb3cgYW55IHN0
YXIgbGlua3MgZHVyaW5nIHRoZSByZXNvbHV0aW9uLCB3ZSBjYW4gc2VlIGFsbCB0aGUgdHJhY2Vk
IG5vZGVzIGFyZSBjYWNoZWFibGUuCisgICAgICAgICAgICAvLyAgPT4gT25jZSB3ZSBmb2xsb3cg
c3RhciBsaW5rcywgd2Ugc2hvdWxkIG5vdCByZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gdGhlIGNh
Y2hlIGFuZCBzaG91bGQgbm90IGNhY2hlIHRoZSByZXN1bHQuCisgICAgICAgICAgICBpZiAoIWZv
dW5kU3RhckxpbmtzKQorICAgICAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1
ZXJ5LCByZXNvbHV0aW9uKTsKKwogICAgICAgICAgICAgLy8gSWYgaW5kaXJlY3QgZXhwb3J0IGVu
dHJ5IHByb2R1Y2VzIFJlc29sdmVkLCB3ZSBzaG91bGQgbWVyZ2UgaXQgdG8gdGhlIHVwcGVyIGZy
YW1lLgogICAgICAgICAgICAgLy8gQW5kIGRvIG5vdCBpbnZlc3RpZ2F0ZSB0aGUgc3RhcnMgb2Yg
dGhlIGN1cnJlbnQgbW9kdWxlLgogICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChy
ZXNvbHV0aW9uKSkKQEAgLTQwNSw5ICs2OTIsMTEgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpS
ZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wK
ICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgVHlwZTo6R2F0aGVyU3RhcnM6IHsKKyAgICAgICAg
ICAgIFJlc29sdXRpb24gcmVzb2x1dGlvbiA9IGZyYW1lcy50YWtlTGFzdCgpOworICAgICAgICAg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlw
ZTo6UmVzb2x2ZWQgfHwgcmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246OlR5cGU6Ok5vdEZv
dW5kLCAiV2hlbiB3ZSBzZWUgRXJyb3IgYW5kIEFtYmlndW91cywgd2UgaW1tZWRpYXRlbHkgcmV0
dXJuIGZyb20gdGhpcyBsb29wLiBTbyBoZXJlLCBvbmx5IFJlc29sdmVkIGFuZCBOb3RGb3VuZCBj
b21lcy4iKTsKKwogICAgICAgICAgICAgLy8gTWVyZ2UgdGhlIHN0YXIgcmVzb2x1dGlvbiB0byB0
aGUgdXBwZXIgZnJhbWUuCi0gICAgICAgICAgICBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiBz
dGFyUmVzb2x1dGlvbiA9IGZyYW1lcy50YWtlTGFzdCgpOwotICAgICAgICAgICAgaWYgKCFtZXJn
ZVRvQ3VycmVudFRvcChzdGFyUmVzb2x1dGlvbikpCisgICAgICAgICAgICBpZiAoIW1lcmdlVG9D
dXJyZW50VG9wKHJlc29sdXRpb24pKQogICAgICAgICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9u
OjphbWJpZ3VvdXMoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC00MTUsMTIg
KzcwNCwxOCBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9y
dExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgIH0KIAogICAgIEFTU0VSVChm
cmFtZXMuc2l6ZSgpID09IDEpOworICAgIC8vICA9PiBUaGUgc3RhcnRpbmcgcG9pbnQgaXMgYWx3
YXlzIGNhY2hlYWJsZS4KKyAgICBpZiAoZnJhbWVzWzBdLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlw
ZTo6UmVzb2x2ZWQpCisgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHJvb3QsIGZyYW1l
c1swXSk7CiAgICAgcmV0dXJuIGZyYW1lc1swXTsKIH0KIAogYXV0byBKU01vZHVsZVJlY29yZDo6
cmVzb2x2ZUV4cG9ydChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGV4cG9ydE5h
bWUpIC0+IFJlc29sdXRpb24KIHsKLSAgICByZXR1cm4gcmVzb2x2ZUV4cG9ydExvb3AoZXhlYywg
UmVzb2x2ZVF1ZXJ5KHRoaXMsIGV4cG9ydE5hbWUuaW1wbCgpKSk7CisgICAgLy8gTG9vayB1cCB0
aGUgY2FjaGVkIHJlc29sdXRpb24gZmlyc3QgYmVmb3JlIGVudGVyaW5nIHRoZSByZXNvbHZpbmcg
bG9vcCwgc2luY2UgdGhlIGxvb3Agc2V0dXAgdGFrZXMgc29tZSBjb3N0LgorICAgIGlmIChPcHRp
b25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNvbHV0aW9uID0gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9u
KGV4cG9ydE5hbWUuaW1wbCgpKSkKKyAgICAgICAgcmV0dXJuICpjYWNoZWRSZXNvbHV0aW9uOwor
ICAgIHJldHVybiByZXNvbHZlRXhwb3J0SW1wbChleGVjLCBSZXNvbHZlUXVlcnkodGhpcywgZXhw
b3J0TmFtZS5pbXBsKCkpKTsKIH0KIAogc3RhdGljIHZvaWQgZ2V0RXhwb3J0ZWROYW1lcyhFeGVj
U3RhdGUqIGV4ZWMsIEpTTW9kdWxlUmVjb3JkKiByb290LCBJZGVudGlmaWVyU2V0JiBleHBvcnRl
ZE5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1
bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3Jk
LmgKaW5kZXggNzBhMTkwZjgyYzY3OGQxODYxZjUwNmVkMWQ4MGYyMjViY2M5MGU1ZS4uYzlkNzU4
N2YzODJjN2JmMDJjY2IwN2IzYjBhMmRjZTk1Y2M4ODMwYyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5oCkBAIC0xNjMsNiArMTYzLDExIEBAIGNs
YXNzIEpTTW9kdWxlUmVjb3JkIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAg
IHZvaWQgaW5zdGFudGlhdGVEZWNsYXJhdGlvbnMoRXhlY1N0YXRlKiwgTW9kdWxlUHJvZ3JhbUV4
ZWN1dGFibGUqKTsKIAorICAgIHN0cnVjdCBSZXNvbHZlUXVlcnk7CisgICAgc3RhdGljIFJlc29s
dXRpb24gcmVzb2x2ZUV4cG9ydEltcGwoRXhlY1N0YXRlKiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7
CisgICAgT3B0aW9uYWw8UmVzb2x1dGlvbj4gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKFVuaXF1ZWRT
dHJpbmdJbXBsKiBleHBvcnROYW1lKTsKKyAgICB2b2lkIGNhY2hlUmVzb2x1dGlvbihVbmlxdWVk
U3RyaW5nSW1wbCogZXhwb3J0TmFtZSwgY29uc3QgUmVzb2x1dGlvbiYpOworCiAgICAgLy8gVGhl
IGxvYWRlciByZXNvbHZlcyB0aGUgZ2l2ZW4gbW9kdWxlIG5hbWUgdG8gdGhlIG1vZHVsZSBrZXku
IFRoZSBtb2R1bGUga2V5IGlzIHRoZSB1bmlxdWUgdmFsdWUgdG8gcmVwcmVzZW50IHRoaXMgbW9k
dWxlLgogICAgIElkZW50aWZpZXIgbV9tb2R1bGVLZXk7CiAKQEAgLTIwMiw2ICsyMDcsMTMgQEAg
Y2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAg
IFdyaXRlQmFycmllcjxNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZT4gbV9tb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNNb2R1bGVFbnZpcm9ubWVudD4gbV9tb2R1bGVF
bnZpcm9ubWVudDsKICAgICBXcml0ZUJhcnJpZXI8SlNNb2R1bGVOYW1lc3BhY2VPYmplY3Q+IG1f
bW9kdWxlTmFtZXNwYWNlT2JqZWN0OworCisgICAgLy8gV2UgYXNzdW1lIHRoYXQgYWxsIHRoZSBK
U01vZHVsZVJlY29yZCBhcmUgcmV0YWluZWQgYnkgTW9kdWxlTG9hZGVyT2JqZWN0J3MgcmVnaXN0
cnkuCisgICAgLy8gU28gaGVyZSwgd2UgZG9uJ3QgdmlzaXQgZWFjaCBvYmplY3QgZm9yIEdDLiBU
aGUgcmVzb2x1dGlvbiBjYWNoZSBtYXAgY2FjaGVzIHRoZSBvbmNlCisgICAgLy8gbG9va2VkIHVw
IGNvcnJlY3RseSByZXNvbHZlZCByZXNvbHV0aW9uLCBzaW5jZSAoMSkgd2UgcmFyZWx5IGxvb2tl
ZCB1cCB0aGUgbm9uLXJlc29sdmVkIG9uZSwKKyAgICAvLyBhbmQgKDIpIGlmIHdlIGNhY2hlIGFs
bCB0aGUgYXR0ZW1wdHMgdGhlIHNpemUgb2YgdGhlIG1hcCBiZWNvbWVzIGluZmluaXRlbHkgbGFy
Z2UuCisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4sIFJlc29s
dXRpb24sIElkZW50aWZpZXJSZXBIYXNoLCBIYXNoVHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5n
SW1wbD4+PiBSZXNvbHV0aW9uczsKKyAgICBSZXNvbHV0aW9ucyBtX3Jlc29sdXRpb25DYWNoZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1h
a2UtYW1iaWd1b3VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyNTEzZWQxNzBiM2Q3MTExMzk0YmIzNDkzZGI4
YTY0ZDVjMmExZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMuanMKQEAgLTAsMCAr
MSw1IEBACisvLyAgICAgICAgICAgICAgICArLS0tLT4gKEQpIC0tLS0tLSsKKy8vICAgICAgICAg
ICAgICAgIHwgICAgICAgICAgICAgICAgfAorLy8gICAgICAgICAgICAgICAgfCAgICAgICAgICAg
ICAgICB2CisvLyAgIEAtPiAoQSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4gW0NdCitpbXBvcnQgeyBB
IH0gZnJvbSAiY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4uanMiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3Vs
ZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9BLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzNjZlMzdjNTI3ODc3ODhhYTgzYjRlMGRkODQ5ZWQ4NTMyMDhjMmIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1u
b3QtbWFrZS1hbWJpZ3VvdXMvQS5qcwpAQCAtMCwwICsxLDIgQEAKK2V4cG9ydCAqIGZyb20gIi4v
RC5qcyIKK2V4cG9ydCAqIGZyb20gIi4vQi5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9C
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQt
bm90LW1ha2UtYW1iaWd1b3VzL0IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyYmNjZjA1YjM4ZDM0Nzk4MjA3
OGYzYjY4YTNkYTBhY2Y5OTg0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9CLmpz
CkBAIC0wLDAgKzEgQEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0MuanMiCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFr
ZS1hbWJpZ3VvdXMvQy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2Nh
Y2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9DLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMDhlMmNh
ZTkzNzMyYTRiNDhiM2Q5YzFlYmU4MDkzMGRhNTQxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1h
bWJpZ3VvdXMvQy5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgbGV0IEEgPSA0MjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5v
dC1tYWtlLWFtYmlndW91cy9ELmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0QuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcy
YmNjZjA1YjM4ZDM0Nzk4MjA3OGYzYjY4YTNkYTBhY2Y5OTg0YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1t
YWtlLWFtYmlndW91cy9ELmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0Mu
anMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNo
aW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvbWFpbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9tYWlu
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU5MGI1MzVmODc1YzNiNGFiMDBkNDAxMTUxNmViNzc1YTkwMGE2Y2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9j
YWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvbWFpbi5qcwpAQCAtMCwwICsxIEBACitl
eHBvcnQgeyBBIH0gZnJvbSAiLi9BLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODFlODljMjVm
OWY4NjlkNDBlNjU0YjljMmZmMjc1Y2ZiNWQ4OTdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcuanMKQEAgLTAsMCAr
MSw3IEBACitpbXBvcnQgeyBzaG91bGRCZSwgc2hvdWxkVGhyb3cgfSBmcm9tICIuL3Jlc291cmNl
cy9hc3NlcnQuanMiCisKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBsb2FkTW9kdWxlKCcuL2Rp
ZmZlcmVudC12aWV3L21haW4uanMnKTsKK30sIGBTeW50YXhFcnJvcjogSW1wb3J0aW5nIGJpbmRp
bmcgbmFtZSAnQScgY2Fubm90IGJlIHJlc29sdmVkIGR1ZSB0byBhbWJpZ3VvdXMgbXVsdGlwbGUg
YmluZGluZ3MuYCk7CisKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZkYmI2MDRkMmJiYTA2
MTI2MTIyNzdhZjQxZWJiMDNhNDAxMmMwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0EuanMKQEAgLTAsMCArMSwy
IEBACitleHBvcnQgKiBmcm9tICIuL0IuanMiOworZXhwb3J0ICogZnJvbSAiLi9FLmpzIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12
aWV3L0IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQt
dmlldy9CLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NmRkNzFlZTY2YTlhODYxNWFjYWVhNDA1ZWQyZjc4M2Rm
OWQxODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9k
dWxlcy9kaWZmZXJlbnQtdmlldy9CLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0ICogZnJvbSAi
Li9DLmpzIgorZXhwb3J0ICogZnJvbSAiLi9ELmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQy5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0MuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U4MDkzNWQ2ZThlMjJjYWE1NDVkODM0MjVjOGRmNzAzMjQ2MDY1ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0Mu
anMKQEAgLTAsMCArMSBAQAorZXhwb3J0ICogZnJvbSAiLi9BLmpzIgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRC5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0QuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDMwOGUyY2FlOTM3MzJhNGI0OGIzZDljMWViZTgwOTMwZGE1NDFmZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVu
dC12aWV3L0QuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBBID0gNDI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9FLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yMTBjYjBlNjEyODYwNDg4YzEwZWNhY2IyNWJlNGEyNzQ2YzkxNmI3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlm
ZmVyZW50LXZpZXcvRS5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgbGV0IEEgPSA1MDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3
L21haW4uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQt
dmlldy9tYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNGY5NzJmNjNlNGJlNDJjZTY1MmU4N2Y1OGY2YTlh
OTc4MTEyZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
bW9kdWxlcy9kaWZmZXJlbnQtdmlldy9tYWluLmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCB7IEEg
fSBmcm9tICIuL0EuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
bW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzZiNjBmZTRkN2Q3
MTJhN2IyZmZlYWE1ZmE4YmU2YzU2MTM1OTNiNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy5qcwpAQCAtMCww
ICsxLDEyIEBACisvLyAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKworLy8gICAgICAgIHwgICAg
ICAgICAgICAgICAgIHwKKy8vICAgICAgICB2ICAgICAgICAgICAgICAgICB8CisvLyAgICAgICAo
QSkgLT4gKEMpIC0+IChEKSAqKy0+IFtFXQorLy8gICAgICAgICogICAgICBeCisvLyAgICAgICAg
fCAgICAgIHwKKy8vICAgICAgICB2ICAgICAgQAorLy8gICAgICAgKEIpCitpbXBvcnQgeyBzaG91
bGRUaHJvdyB9IGZyb20gIi4vcmVzb3VyY2VzL2Fzc2VydC5qcyIKK3Nob3VsZFRocm93KCgpID0+
IHsKKyAgICBsb2FkTW9kdWxlKCIuL2ZhbGxiYWNrLWFtYmlndW91cy9tYWluLmpzIik7Cit9LCBg
U3ludGF4RXJyb3I6IEluZGlyZWN0bHkgZXhwb3J0ZWQgYmluZGluZyBuYW1lICdBJyBjYW5ub3Qg
YmUgcmVzb2x2ZWQgZHVlIHRvIGFtYmlndW91cyBtdWx0aXBsZSBiaW5kaW5ncy5gKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmln
dW91cy9BLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2st
YW1iaWd1b3VzL0EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNhNDgyMmQwZjcwMmY2OTg2YTI4MTM0NDg5MDM4
NTE1NTllZGIyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9BLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0
IHsgQSB9IGZyb20gIi4vQy5qcyIKK2V4cG9ydCAqIGZyb20gIi4vQi5qcyIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9C
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1
b3VzL0IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEwY2IwZTYxMjg2MDQ4OGMxMGVjYWNiMjViZTRhMjc0NmM5
MTZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1
bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9CLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCBsZXQgQSA9
IDUwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFs
bGJhY2stYW1iaWd1b3VzL0MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy9mYWxsYmFjay1hbWJpZ3VvdXMvQy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YWYwNTg4ZTE0ZTY3M2VjMzkz
Y2ZiM2JlY2Y1Mzk5NDE1Zjc0YWJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0MuanMKQEAgLTAsMCArMSBA
QAorZXhwb3J0IHsgQSB9IGZyb20gIi4vRC5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9ELmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0QuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzI1MTYzMjhkY2I5ODRkOTMzYzVkNDNlZTA3Mzg1ZGI5ZTExZjlmMwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFt
YmlndW91cy9ELmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0ICogZnJvbSAiLi9BLmpzIgorZXhw
b3J0ICogZnJvbSAiLi9FLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzA4
ZTJjYWU5MzczMmE0YjQ4YjNkOWMxZWJlODA5MzBkYTU0MWZlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0Uu
anMKQEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBBID0gNDI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9t
YWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3MmJjY2YwNWIzOGQzNDc5ODIwNzhmM2I2OGEzZGEwYWNmOTk4
NGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgeyBBIH0g
ZnJvbSAiLi9DLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21v
ZHVsZXMvc2VsZi1zdGFyLWxpbmsuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9k
dWxlcy9zZWxmLXN0YXItbGluay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWUzMzc2MzJiMDVmMDIzZDJmOGNk
NjZmMTgzZTNlZDg3YWE0YmEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsuanMKQEAgLTAsMCArMSwxNSBAQAorLy8g
ICAgICAgKy0tLS0tLS0tLS0tLS0rCisvLyAgICAgICB8ICAgICAgICAgICAgIHwKKy8vICAgICAg
IHYgICAgICAgICAgICAgfAorLy8gIEAtPiAoQSkgLT4gKEIpIC0+IChDKSAqLT4gW0VdCisvLyAg
ICAgICAqCisvLyAgICAgICB8CisvLyAgICAgICB2CisvLyAgICAgIFtEXQoraW1wb3J0IHsgQSB9
IGZyb20gIi4vc2VsZi1zdGFyLWxpbmsvQS5qcyIKK2ltcG9ydCB7IHNob3VsZEJlIH0gZnJvbSAi
Li9yZXNvdXJjZXMvYXNzZXJ0LmpzIgoraW1wb3J0IHsgQSBhcyBBZnJvbUMgfSBmcm9tICIuL3Nl
bGYtc3Rhci1saW5rL0MuanMiCitpbXBvcnQgeyBBIGFzIEFmcm9tQiB9IGZyb20gIi4vc2VsZi1z
dGFyLWxpbmsvQi5qcyIKK3Nob3VsZEJlKEEsICdFJyk7CitzaG91bGRCZShBZnJvbUMsICdEJyk7
CitzaG91bGRCZShBZnJvbUIsICdEJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9BLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzllOTI4
ZTJiYTQzNWE5NzljYTY5OTY2MmU5MThmODBhYjQ4NDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQS5qcwpAQCAt
MCwwICsxLDIgQEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0IuanMiCitleHBvcnQgKiBmcm9tICIu
L0QuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9z
ZWxmLXN0YXItbGluay9CLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMv
c2VsZi1zdGFyLWxpbmsvQi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzJiY2NmMDViMzhkMzQ3OTgyMDc4ZjNi
NjhhM2RhMGFjZjk5ODRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQi5qcwpAQCAtMCwwICsxIEBACitleHBvcnQg
eyBBIH0gZnJvbSAiLi9DLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNjNjE5NGE1YzJh
M2FiNzg2OTE0NWQ4NjE2NjMzOWM4ZDRlYWYwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0MuanMKQEAgLTAsMCAr
MSwyIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9BLmpzIgorZXhwb3J0ICogZnJvbSAiLi9FLmpz
IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1z
dGFyLWxpbmsvRC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYt
c3Rhci1saW5rL0QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM5MzhmNWE5ODhhYWMwMzNlYWRkYzY0NzgzODIy
MThhMTU2MDFlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0QuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBB
ID0gJ0QnOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMv
c2VsZi1zdGFyLWxpbmsvRS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVz
L3NlbGYtc3Rhci1saW5rL0UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDMxNTM4MTE4MWY0NzgxMTk3NzYzYzRj
ZmI4YzBlYjI5ODQ4MzM0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0UuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0
IGxldCBBID0gJ0UnOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21v
ZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDE5MmI1MTdmYWU4OWFjMzM1MDkwYjU1NmZkYzk1YjU5ODhjNDM4NgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4t
c2VlLXN0YXIuanMKQEAgLTAsMCArMSwxMyBAQAorLy8gICAgICAgKEEpICotLT4gW0JdCisvLyAg
ICAgICAgICAgIHwgICAgXgorLy8gICAgICAgICAgICB8ICAgIHwKKy8vICAgICAgICAgICAgKy0+
IChDKSAqLT4gKEQpCisvLyAgICAgICAgICAgICAgICAgXgorLy8gICAgICAgICAgICAgICAgIHwK
Ky8vICAgICAgICAgICAgICAgIChFKQorLy8gICAgICAgICAgICAgICAgIF4KKy8vICAgICAgICAg
ICAgICAgICB8CisvLyAgICAgICAgICAgICAgICAgQAorCitpbXBvcnQgInVuY2FjaGVhYmxlLXdo
ZW4tc2VlLXN0YXIvbWFpbjEuanMiCitpbXBvcnQgInVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIv
bWFpbjIuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0EtcHJlLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9BLXByZS5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lOTBiNTM1Zjg3NWMzYjRhYjAwZDQwMTE1MTZlYjc3NWE5MDBhNmNmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFi
bGUtd2hlbi1zZWUtc3Rhci9BLXByZS5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgeyBBIH0gZnJv
bSAiLi9BLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9BLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9BLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYxMjQ3NjQ1ZWU3MTUxNTk3OTQ5ZTkzMTY0MjIxZDAzOTkyOWM4YTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVu
LXNlZS1zdGFyL0EuanMKQEAgLTAsMCArMSwyIEBACitleHBvcnQgKiBmcm9tICIuL0IuanMiCitl
eHBvcnQgKiBmcm9tICIuL0MuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0IuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0IuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWRjOTI5ZjNmZjE4NDdlMTlhYTg5MjE3NTRjNTE3NDBlNzYxZjkxZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2Fj
aGVhYmxlLXdoZW4tc2VlLXN0YXIvQi5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgbGV0IEEgPSA0
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2Fj
aGVhYmxlLXdoZW4tc2VlLXN0YXIvQy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzllOTI4
ZTJiYTQzNWE5NzljYTY5OTY2MmU5MThmODBhYjQ4NDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rh
ci9DLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vQi5qcyIKK2V4cG9y
dCAqIGZyb20gIi4vRC5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBhYWQ3YmRlZDA4YmRjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFi
bGUtd2hlbi1zZWUtc3Rhci9ELmpzCkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9F
LXByZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxl
LXdoZW4tc2VlLXN0YXIvRS1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2QzYWEwNGI3YjAwY2YwNDljYmVl
NjEyZjkxODk2NzBkMjE0MmZhNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS1wcmUuanMKQEAg
LTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vRS5qcyIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIv
RS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdo
ZW4tc2VlLXN0YXIvRS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzJiY2NmMDViMzhkMzQ3OTgyMDc4ZjNiNjhh
M2RhMGFjZjk5ODRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9FLmpzCkBAIC0wLDAgKzEgQEAK
K2V4cG9ydCB7IEEgfSBmcm9tICIuL0MuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4xLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUt
c3Rhci9tYWluMS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjM3M2I5YmY1Njk0YjE1YjViNTkwZmFiMjBiMGY2
ZmU2MDUwYWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcwpAQCAtMCwwICsxIEBA
CitpbXBvcnQgeyBBIH0gZnJvbSAiLi9FLXByZS5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVu
LXNlZS1zdGFyL21haW4yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NzM3NmFhNmNiZTA1NDBiOTFmMTJmZTJh
ZWZiY2QyZGRiODVlZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpzCkBAIC0wLDAg
KzEgQEAKK2ltcG9ydCB7IEEgfSBmcm9tICIuL0EtcHJlLmpzIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261080</attachid>
            <date>2015-09-13 02:13:01 -0700</date>
            <delta_ts>2015-09-13 02:31:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150913021251.patch</filename>
            <type>text/plain</type>
            <size>44867</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi43NmMxNDlhYTljMDk0M2Vh
ZmU1ZWEzMDRlODdkZmEwZDFiY2RlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NiBAQAorMjAxNS0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgQ3VycmVudGx5LCB0
aGUgYWxsIG1vZHVsZXMgY2Fubm90IGJlIGxpbmtlZCB0d2ljZS4gRm9yIGV4YW1wbGUsCisKKyAg
ICAgICAgICBncmFwaCAxCisKKyAgICAgICAgICAtPiAoQSkgLT4gKEIpCisKKyAgICAgICAgICBn
cmFwaCAyCisKKyAgICAgICAgICAtPiAoQykgLT4gKEEpIC0+IChCKQorCisgICAgICAgIFdlIGNh
bm5vdCB0ZXN0IHRoZSBiZWhhdmlvciBub3cgYmVjYXVzZSB3aGVuIGV4ZWN1dGluZyB0aGUgZ3Jh
cGggMiwgKEEpIGFuZCAoQikgYXJlIGFscmVhZHkgbGlua2VkLAorICAgICAgICBpdCByYWlzZXMg
YW4gZXJyb3IgaW4gdGhlIGN1cnJlbnQgbG9hZGVyIHNwZWMuIEJ1dCBpdCBzaG91bGQgYmUgYWxs
b3dlZFsxXSBzaW5jZSBpdCB3aWxsIG9jY3VyIHdoZW4KKyAgICAgICAgdGhlcmUgaXMgbXVsdGlw
bGUgbW9kdWxlIHRhZyBpbiBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9sb2FkZXIvaXNzdWVzLzQxCisKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6
SGFzaDo6aGFzaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlUmVjb3JkOjpSZXNvbHZlUXVlcnk6
Okhhc2g6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVzb2x1
dGlvbik6CisgICAgICAgIChKU0M6OlJlc29sdmVRdWVyeUhhc2g6Omhhc2gpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXNvbHZlUXVlcnlIYXNoOjplcXVhbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJlc29sdmVFeHBvcnRMb29wKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmg6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1u
b3QtbWFrZS1hbWJpZ3VvdXMuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2Fj
aGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0EuanM6IEFkZGVkLgorICAgICAgICAqIHRl
c3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0IuanM6IEFkZGVk
LgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1
b3VzL0MuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQt
bm90LW1ha2UtYW1iaWd1b3VzL0QuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMv
Y2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4uanM6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcuanM6IEFkZGVkLgorICAgICAgICAoZnJv
bS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5zaG91bGRUaHJvdyk6CisgICAgICAgICogdGVzdHMvbW9k
dWxlcy9kaWZmZXJlbnQtdmlldy9BLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVz
L2RpZmZlcmVudC12aWV3L0IuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlm
ZmVyZW50LXZpZXcvQy5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9kaWZmZXJl
bnQtdmlldy9ELmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12
aWV3L0UuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcv
bWFpbi5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3Vv
dXMuanM6IEFkZGVkLgorICAgICAgICAoZnJvbS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5zaG91bGRU
aHJvdyk6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQi5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQy5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRC5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5q
czogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay5qczogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9BLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0IuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQy5qczogQWRkZWQuCisgICAgICAg
ICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9ELmpzOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0UuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qczogQWRkZWQuCisgICAgICAgICog
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0EtcHJlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFy
L0IuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1z
ZWUtc3Rhci9DLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxl
LXdoZW4tc2VlLXN0YXIvRC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy91bmNh
Y2hlYWJsZS13aGVuLXNlZS1zdGFyL0UtcHJlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9t
b2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS5qczogQWRkZWQuCisgICAgICAgICog
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4xLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIu
anM6IEFkZGVkLgorCiAyMDE1LTA5LTExICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtA
Z21haWwuY29tPgogCiAgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZsb2F0cyBpbiBX
ZWJBc3NzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcAppbmRleCBmYjM2NDI4ZjJhN2E3ZmNmMDFmZDJlNWUzMzMyMmVjMjVkN2NhMmU0
Li42ZTc4MDFhZTAxNmVhYzJiZmFiM2M5ZjA5NmZmYTI3YjFiNWEwNmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC0xNjQsNyAr
MTY0LDEzIEBAIGF1dG8gSlNNb2R1bGVSZWNvcmQ6OnJlc29sdmVJbXBvcnQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBsb2NhbE5hbWUpCiAgICAgcmV0dXJuIGltcG9ydGVkTW9k
dWxlLT5yZXNvbHZlRXhwb3J0KGV4ZWMsIGltcG9ydEVudHJ5LmltcG9ydE5hbWUpOwogfQogCi1z
dHJ1Y3QgUmVzb2x2ZVF1ZXJ5IHsKK3N0cnVjdCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5
IHsKKyAgICBzdHJ1Y3QgSGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFJlc29sdmVRdWVyeSYpOworICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZXNvbHZl
UXVlcnkmLCBjb25zdCBSZXNvbHZlUXVlcnkmKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIH07CisKICAgICBSZXNv
bHZlUXVlcnkoSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgVW5pcXVlZFN0cmluZ0ltcGwq
IGV4cG9ydE5hbWUpCiAgICAgICAgIDogbW9kdWxlUmVjb3JkKG1vZHVsZVJlY29yZCkKICAgICAg
ICAgLCBleHBvcnROYW1lKGV4cG9ydE5hbWUpCkBAIC0yMDQsMjUgKzIxMCwzNCBAQCBzdHJ1Y3Qg
UmVzb2x2ZVF1ZXJ5IHsKICAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IGV4cG9ydE5hbWU7
CiB9OwogCi1zdHJ1Y3QgUmVzb2x2ZVF1ZXJ5SGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVz
b2x2ZVF1ZXJ5JiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwotfTsKLQotaW5saW5lIHVuc2ln
bmVkIFJlc29sdmVRdWVyeUhhc2g6Omhhc2goY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSkKK2lu
bGluZSB1bnNpZ25lZCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5OjpIYXNoOjpoYXNoKGNv
bnN0IFJlc29sdmVRdWVyeSYgcXVlcnkpCiB7CiAgICAgcmV0dXJuIFdURjo6UHRySGFzaDxKU01v
ZHVsZVJlY29yZCo+OjpoYXNoKHF1ZXJ5Lm1vZHVsZVJlY29yZCkgKyBJZGVudGlmaWVyUmVwSGFz
aDo6aGFzaChxdWVyeS5leHBvcnROYW1lKTsKIH0KIAotaW5saW5lIGJvb2wgUmVzb2x2ZVF1ZXJ5
SGFzaDo6ZXF1YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBsaHMsIGNvbnN0IFJlc29sdmVRdWVyeSYg
cmhzKQoraW5saW5lIGJvb2wgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6SGFzaDo6ZXF1
YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBsaHMsIGNvbnN0IFJlc29sdmVRdWVyeSYgcmhzKQogewog
ICAgIHJldHVybiBsaHMubW9kdWxlUmVjb3JkID09IHJocy5tb2R1bGVSZWNvcmQgJiYgbGhzLmV4
cG9ydE5hbWUgPT0gcmhzLmV4cG9ydE5hbWU7CiB9CiAKLXN0YXRpYyBKU01vZHVsZVJlY29yZDo6
UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29s
dmVRdWVyeSYgcm9vdCkKK2F1dG8gSlNNb2R1bGVSZWNvcmQ6OnRyeUdldENhY2hlZFJlc29sc2lv
bihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSkgLT4gT3B0aW9uYWw8UmVzb2x1dGlvbj4K
K3sKKyAgICBjb25zdCBhdXRvIGl0ZXJhdG9yID0gbV9yZXNvbHV0aW9uQ2FjaGUuZmluZChleHBv
cnROYW1lKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9yZXNvbHV0aW9uQ2FjaGUuZW5kKCkpCisg
ICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIHJldHVybiBPcHRpb25hbDxSZXNvbHV0aW9uPihp
dGVyYXRvci0+dmFsdWUpOworfQorCit2b2lkIEpTTW9kdWxlUmVjb3JkOjpjYWNoZVJlc29sdXRp
b24oVW5pcXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNvbnN0IFJlc29sdXRpb24mIHJlc29s
dXRpb24pCit7CisgICAgbV9yZXNvbHV0aW9uQ2FjaGUuYWRkKGV4cG9ydE5hbWUsIHJlc29sdXRp
b24pOworfQorCithdXRvIEpTTW9kdWxlUmVjb3JkOjpyZXNvbHZlRXhwb3J0SW1wbChFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFJlc29sdmVRdWVyeSYgcm9vdCkgLT4gUmVzb2x1dGlvbgogewogICAg
IC8vIGh0dHA6Ly93d3cuZWNtYS1pbnRlcm5hdGlvbmFsLm9yZy9lY21hLTI2Mi82LjAvI3NlYy1y
ZXNvbHZlZXhwb3J0CisKKyAgICAvLyBIb3cgdG8gYXZvaWQgQysrIHJlY3Vyc2lvbiBpbiB0aGlz
IGZ1bmN0aW9uOgogICAgIC8vIFRoaXMgZnVuY3Rpb24gYXZvaWRzIEMrKyByZWN1cnNpb24gb2Yg
dGhlIG5haXZlIFJlc29sdmVFeHBvcnQgaW1wbGVtZW50YXRpb24uCiAgICAgLy8gRmxhdHRlbiB0
aGUgcmVjdXJzaW9uIHRvIHRoZSBsb29wIHdpdGggdGhlIHRhc2sgcXVldWUgYW5kIGZyYW1lcy4K
ICAgICAvLwpAQCAtMjc3LDggKzI5MiwyNDEgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNv
bHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAg
ICAvLyBUbyBmb2xsb3cgdGhlIHJlcXVpcmVtZW50IHN0cmljdGx5LCBpbiB0aGlzIGltcGxlbWVu
dGF0aW9uLCB3ZSBrZWVwIHRoZSBsb2NhbCByZXNvbHV0aW9uIHJlc3VsdCB0byBwcm9kdWNlIHRo
ZQogICAgIC8vIGNvcnJlY3QgcmVzdWx0IHVuZGVyIHRoZSBhYm92ZSBjb21wbGV4IGNhc2VzLgog
Ci0gICAgdXNpbmcgUmVzb2x1dGlvbiA9IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uOwotICAg
IHR5cGVkZWYgV1RGOjpIYXNoU2V0PFJlc29sdmVRdWVyeSwgUmVzb2x2ZVF1ZXJ5SGFzaCwgV1RG
OjpDdXN0b21IYXNoVHJhaXRzPFJlc29sdmVRdWVyeT4+IFJlc29sdmVTZXQ7CisgICAgLy8gQ2Fj
aGluZyBzdHJhdGVneToKKyAgICAvLyBUaGUgcmVzb2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgZnJl
cXVlbnRseSBjYWxsZWQuIFNvIGNhY2hpbmcgcmVzdWx0cyBpcyBpbXBvcnRhbnQuCisgICAgLy8g
V2Ugb2JzZXJ2ZSB0aGUgZm9sbG93aW5nIGFzcGVjdHMgYW5kIGJhc2VkIG9uIHRoZW0gY29uc3Ry
dWN0IHRoZSBjYWNoaW5nIHN0cmF0ZWd5LgorICAgIC8vIEhlcmUsIHdlIGF0dGVtcHQgdG8gY2Fj
aGUgdGhlIHJlc29sdXRpb24gYnkgY29uc3RydWN0aW5nIHRoZSBtYXAgaW4gbW9kdWxlIHJlY29y
ZHMuCisgICAgLy8gVGhhdCBtZWFucyAgTW9kdWxlIC0+IEV4cG9ydE5hbWUgLT4gTWF5YmU8UmVz
b2x1dGlvbj4uCisgICAgLy8gVGVjaG5pY2FsbHksIHRoZSBhbGwgSlNNb2R1bGVSZWNvcmQgaGF2
ZSB0aGUgTWFwPEV4cG9ydE5hbWUsIFJlc29sdXRpb24+IGZvciBjYWNoaW5nLgorICAgIC8vCisg
ICAgLy8gVGhlIGltcG9ydGFudCBvYnNlcnZhdGlvbiBpcyB0aGF0LAorICAgIC8vCisgICAgLy8g
IC0gKmNhY2hlYWJsZSogbWVhbnMgdGhhdCB3ZSBjYW4gY2FjaGUgdGhlIGdhaW4gcmVzdWx0IGJl
Y2F1c2UgdGhlIHJlc3VsdCBpcyB0aGUgc2FtZSB0byB0aGUgcmVzdWx0CisgICAgLy8gICAgdGhh
dCB3aWxsIGJlIHByb2R1Y2VkIHdoZW4gc3RhcnRpbmcgZnJvbSB0aGlzIG5vZGUuIFRoaXMgbWVh
bnMgdGhhdCB0aGUgZm9sbG93aW5nIDIgaXMgdGhlIHNhbWUuCisgICAgLy8gICAgICAxLiBUaGUg
cmVzb2x2aW5nIHJvdXRlIGZyb20gdGhpcyBub2RlIHdoZW4gdHJhY2luZyB0aGUgbm9kZXMgZnJv
bSB0aGUgb3RoZXIgc3RhcnRpbmcgbm9kZS4KKyAgICAvLyAgICAgIDIuIFRoZSByZXNvbHZpbmcg
cm91dGUgZnJvbSB0aGlzIG5vZGUgd2hlbiBzdGFydGluZyBmcm9tIHRoaXMgbm9kZS4KKyAgICAv
LworICAgIC8vICAgIEhlcmUsIHdlIGRlZmluZSB0aGUgcmVzb3ZsaW5nIHJvdXRlLiBXZSByZXBy
ZXNlbnQgWz9dIGFzIHRoZSBtb2R1bGUgdGhhdCBoYXMgdGhlIHNlYXJjaGVkIGxvY2FsIGJpbmRp
bmcuCisgICAgLy8gICAgQW5kICg/KSBhcyB0aGUgbW9kdWxlIHdpdGhvdXQgdGhlIGxvY2FsIGJp
bmRpbmcuCisgICAgLy8KKyAgICAvLyAgICAgIEAgLT4gKEEpIC0+IChCKSAtPiBbQ10KKyAgICAv
LworICAgIC8vICAgIFdlIGxpc3QgdGhlIHJlc29sdmluZyByb3V0ZSBmb3IgZWFjaCBub2RlLgor
ICAgIC8vCisgICAgLy8gICAgKEEpOiAoQSkgLT4gKEIpIC0+IFtDXQorICAgIC8vICAgIChCKTog
KEIpIC0+IFtDXQorICAgIC8vICAgIFtDXTogW0NdCisgICAgLy8KKyAgICAvLyAgICBJbiB0aGlz
IGNhc2UsIGlmIHdlIHN0YXJ0IHRoZSB0cmFjaW5nIGZyb20gKEIpLCB0aGUgcmVzb2x2aW5nIHJv
dXRlIGJlY29tZXMgKEIpIC0+IFtDXS4KKyAgICAvLyAgICBTbyB0aGlzIGlzIHRoZSBzYW1lLiBB
dCB0aGF0IHRpbWUsIHdlIGNhbiBzYXkgKEIpIGlzIGNhY2hlYWJsZSBpbiB0aGUgZmlyc3QgdHJh
Y2luZy4KKyAgICAvLworICAgIC8vICAtIENhY2hlYWJpbGl0eSBkZXBlbmRzIG9uIHRoZSByZXNv
bHZpbmcgcm91dGUgZnJvbSB0aGlzIG5vZGUuIE5vdCBkZXBlbmQgb24gdGhlIG5vZGUuCisgICAg
Ly8gICAgVGhlIG5vZGUgaXMgc29tZXRpbWVzIGNhY2hlYWJsZS4gQW5kIHNvbWV0aW1lcyBub24t
Y2FjaGVhYmxlLgorICAgIC8vICAgIFRoZSByZXNvbHZpbmcgcm91dGUgZGVwZW5kcyBvbiB0aGUg
c3RhcnRpbmcgbm9kZS4KKyAgICAvLworICAgIC8vIDEuIFRoZSBzdGFydGluZyBwb2ludCBpcyBh
bHdheXMgY2FjaGVhYmxlLgorICAgIC8vCisgICAgLy8gQnkgdGhlIGRlZmluaXRpb24gb2YgdGhl
IGNhY2hlYWJsZSwgdGhlIHN0YXJ0aW5nIHBvaW50IGlzIGFsd2F5cyBjYWNoZWFibGUuCisgICAg
Ly8KKyAgICAvLyAgPT4gVGhlIHN0YXJ0aW5nIHBvaW50IGlzIGFsd2F5cyBjYWNoZWFibGUuCisg
ICAgLy8KKyAgICAvLyAyLiBMb2NhbCBleHBvcnRlZCBiaW5kaW5ncyBhcmUgYWx3YXlzIGNhY2hl
YWJsZSBpbiB0aGUgbm9kZS4KKyAgICAvLworICAgIC8vICBAIC0+IChBKSAtPiBbQl0KKyAgICAv
LworICAgIC8vICBJbiB0aGUgYWJvdmUgY2FzZSwgd2UgY2FuIHNlZSB0aGUgW0JdIGFzIGNhY2hl
YWJsZS4KKyAgICAvLyAgVGhpcyBpcyBiZWNhdXNlIHdoZW4gc3RhcnRpbmcgZnJvbSBbQl0gbm9k
ZSwgd2UgaW1tZWRpYXRlbHkgcmVzb2x2ZSB3aXRoIHRoZSBsb2NhbCBiaW5kaW5nLgorICAgIC8v
ICBTbyB0aGUgcmVzb2x2aW5nIHJvdXRlIGZyb20gW0JdIGRvZXMgbm90IGRlcGVuZCBvbiB0aGUg
c3RhcnRpbmcgcG9pbnQuCisgICAgLy8KKyAgICAvLyAgPT4gVGhlIG1vZHVsZSB0aGF0IGhhcyB0
aGUgc2VhcmNoZWQgbG9jYWwgcmVzb2x1dGlvbiBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAgIC8v
CisgICAgLy8gMy4gSW5kaXJlY3QgZXhwb3J0ZWQgYmluZGluZ3MgYXJlIGNhY2hlYWJsZSBpZiB0
aGVyZSBpcyBvbmx5IG5vbi1zdGFyIGxpbmtzLgorICAgIC8vCisgICAgLy8gIElmIHRoZXJlIGFy
ZSBvbmx5IG5vbi1zdGFyIGxpbmtzLCBpdCBtZWFucyB0aGF0IHRoZXJlIGlzICpubyBicmFuY2gq
IGluIHRoZSBtb2R1bGUgZGVwZW5kZW5jeSBncmFwaC4KKyAgICAvLyAgVGhpcyAqbm8gYnJhbmNo
KiBmZWF0dXJlIG1ha2VzIHRoZSBhbGwgbW9kdWxlIGNhY2hhYmxlLgorICAgIC8vCisgICAgLy8g
IEAgLT4gKEEpIC0tPiAoQikgLT4gW0NdIC0+IChEKSAtPiAoRSkgLSsKKyAgICAvLyAgICAgICAg
ICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAg
IHwgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vICBXaGVuIHN0YXJ0aW5nIGZyb20g
QCwgW0NdIHdpbGwgYmUgZm91bmQgYXMgdGhlIG1vZHVsZSByZXNvbHZpbmcgdGhlIGdpdmVuIGJp
bmRpbmcuCisgICAgLy8gIEluIHRoaXMgY2FzZSwgKEIpIGNhbiBjYWNoZSB0aGlzIHJlc29sdXRp
b24uIFNpbmNlIHRoZSByZXNvbHZpbmcgcm91dGUgaXMgdGhlIHNhbWUgdG8gdGhlIG9uZSB3aGVu
CisgICAgLy8gIHN0YXJ0aW5nIGZyb20gKEIpLiBBZnRlciBjYWNoaW5nIHRoZSBhYm92ZSByZXN1
bHQsIHdlIGF0dGVtcHQgdG8gcmVzb2x2ZSB0aGUgc2FtZSBiaW5kaW5nIGZyb20gKEQpLgorICAg
IC8vCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBACisgICAgLy8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2CisgICAgLy8gIEAgLT4gKEEpIC0tPiAoQikgLT4gW0NdIC0+IChEKSAtPiAoRSkgLSsK
KyAgICAvLyAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8v
ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgLy8gICAgICAg
ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLworICAgIC8vICBJbiB0
aGlzIGNhc2UsIHdlIGNhbiB1c2UgdGhlIChCKSdzIGNhY2hlZCByZXN1bHQuIEFuZCAoRSkgY2Fu
IGJlIGNhY2hlZC4KKyAgICAvLworICAgIC8vICAgIChFKTogVGhlIHJlc29sdmluZyByb3V0ZSBp
cyBub3cgKEUpIC0+IChCKSAtPiBbQ10uIFRoYXQgaXMgdGhlIHNhbWUgd2hlbiBzdGFydGluZyBm
cm9tIChFKS4KKyAgICAvLworICAgIC8vICBObyBicmFuY2hpbmcgbWFrZXMgdGhhdCB0aGUgcHJv
YmxlbWF0aWMgKm9uY2UtdmlzaXRlZCogbm9kZSBjYW5ub3QgYmUgc2Vlbi4KKyAgICAvLyAgVGhl
ICpvbmNlLXZpc2l0ZWQqIG5vZGUgbWFrZXMgdGhlIHJlc29sdmluZyByb3V0ZSBjaGFuZ2VkIHNp
bmNlIHdoZW4gd2Ugc2VlIHRoZSAqb25jZS12aXNpdGVkKiBub2RlLAorICAgIC8vICB3ZSBzdG9w
IHRyYWNpbmcgdGhpcy4KKyAgICAvLworICAgIC8vICBJbiB0aGVyZSBpcyBubyBzdGFyIGxpbmtz
IGFuZCBpZiB3ZSBsb29rICpvbmNlLXZpc2l0ZWQqIG5vZGUgdW5kZXIgbm8gYnJhbmNoaW5nIGdy
YXBoLCAqb25jZS12aXNpdGVkKgorICAgIC8vICBub2RlIGNhbm5vdCByZXNvbHZlIHRoZSByZXF1
ZXN0ZWQgYmluZGluZy4gSWYgdGhlICpvbmNlLXZpc2l0ZWQqIG5vZGUgY2FuIHJlc29sdmUgdGhl
IGJpbmRpbmcsIHdlCisgICAgLy8gIHNob3VsZCBhbHJlYWR5IGZpbmlzaCB0aGUgcmVzb2x1dGlv
biB3aGVuIHJlYWNoaW5nIHRoaXMgKm9uY2UtdmlzaXRlZCogbm9kZS4KKyAgICAvLworICAgIC8v
ICA9PiBJZiB3ZSBkb24ndCBmb2xsb3cgYW55IHN0YXIgbGlua3MgZHVyaW5nIHRoZSByZXNvbHV0
aW9uLCB3ZSBjYW4gc2VlIGFsbCB0aGUgdHJhY2VkIG5vZGVzIGFyZSBjYWNoZWFibGUuCisgICAg
Ly8KKyAgICAvLyA0LiBPbmNlIHdlIGZvbGxvdyBzdGFyIGxpbmtzLCB3ZSBzaG91bGQgbm90IHJl
dHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUgYW5kIHNob3VsZCBub3QgY2FjaGUuCisg
ICAgLy8KKyAgICAvLyAgU3RhciBsaW5rcyBhcmUgb25seSB0aGUgd2F5IHRvIGludHJvZHVjZSBi
cmFuY2guCisgICAgLy8gIE9uY2Ugd2UgZm9sbG93IHRoZSBzdGFyIGxpbmtzIGR1cmluZyB0aGUg
cmVzb2x1dGlvbiwgd2UgY2Fubm90IGNhY2hlIG5haXZlbHkuCisgICAgLy8gIFRoaXMgaXMgYmVj
YXVzZSB0aGUgY2FjaGVhYmlsaXR5IGRlcGVuZHMgb24gdGhlIHJlc29sdmluZyByb3V0ZS4gQW5k
IGJyYW5jaGluZyBwcm9kdWNlcyB0aGUgcHJvYmxlbWF0aWMgKm9uY2UtdmlzaXRlZCoKKyAgICAv
LyAgbm9kZXMuIFNpbmNlIHdlIGRvbid0IGZvbGxvdyB0aGUgKm9uY2UtdmlzaXRlZCogbm9kZSwg
dGhlIHJlc29sdmluZyByb3V0ZSBmcm9tIHRoZSBub2RlIGJlY29tZXMgZGlmZmVyZW50IGZyb20K
KyAgICAvLyAgdGhlIHJlc29sdmluZyByb3V0ZSB3aGVuIHN0YXJ0aW5nIGZyb20gdGhpcyBub2Rl
LgorICAgIC8vCisgICAgLy8gIFRoZSBzdGFyIGxpbmsgbWFrZXMgdGhlIG5vZGUgY29uZGl0aW9u
YWwuCisgICAgLy8KKyAgICAvLyAgICAgICAoQSkgKi0tPiBbQl0KKyAgICAvLyAgICAgICAgICAg
IHwgICAgXgorICAgIC8vICAgICAgICAgICAgfCAgICB8CisgICAgLy8gICAgICAgICAgICArLT4g
KEMpICotPiAoRCkKKyAgICAvLyAgICAgICAgICAgICAgICAgXgorICAgIC8vICAgICAgICAgICAg
ICAgICB8CisgICAgLy8gICAgICAgICAgICAgICAgKEUpCisgICAgLy8gICAgICAgICAgICAgICAg
IF4KKyAgICAvLyAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICBACisg
ICAgLy8KKyAgICAvLyAgV2hlbiBzdGFydGluZyBmcm9tIEAsCisgICAgLy8KKyAgICAvLyAgICAx
LiAoRSkgd2lsbCBmb2xsb3cgdGhlIGxpbmsgdG8gKEMpLgorICAgIC8vICAgIDIuIExvb2tpbmcg
KEMpLCBpdCBoYXMgc3RhciBsaW5rLCBidXQgaXQgYWxzbyBoYXMgdGhlIGluZGlyZWN0IGxpbmsu
IFNvIG9uY2Ugd2UgZm9sbG93IHRoZSBsaW5rIHRvIFtCXS4KKyAgICAvLyAgICAzLiBbQl0gaXMg
cmVzb2x2ZWQuIEFuZCBpdCBpcyBjYWNoZWFibGUgYnkgMS4KKyAgICAvLyAgICA0LiAoQykgaXMg
cmVzb2x2ZWQuIEFuZCBzaW5jZSB3ZSBkb24ndCBmb2xsb3cgYW55IHN0YXIgbGluayBkdXJpbmcg
dGhpcywgKEMpIGlzIGNhY2hlYWJsZS4KKyAgICAvLyAgICA1LiAoRSkgaXMgY2FjaGVhYmxlIGJ5
IGRlZmluaXRpb24uCisgICAgLy8KKyAgICAvLyAgQnV0LCBpbiB0aGUgZm9sbG93aW5nLAorICAg
IC8vCisgICAgLy8gIEAgLT4gKEEpICotLT4gW0JdCisgICAgLy8gICAgICAgICAgICB8ICAgIF4K
KyAgICAvLyAgICAgICAgICAgIHwgICAgfAorICAgIC8vICAgICAgICAgICAgKy0+IChDKSAqLT4g
KEQpCisgICAgLy8gICAgICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICAgICAgICAgICAgfAor
ICAgIC8vICAgICAgICAgICAgICAgIChFKQorICAgIC8vCisgICAgLy8gICAgMS4gKEEpIHdpbGwg
Zm9sbG93IHRoZSBzdGFyIGxpbmtzLgorICAgIC8vICAgIDIuIFtCXSBpcyByZXNvbHZlZCAmIGNh
Y2hlYWJsZSBieSBkZWZpbml0aW9uLgorICAgIC8vICAgIDMuIEluIChDKSwgd2UgYXR0ZW1wdCB0
byBmb2xsb3cgdGhlIGxpbmsgdG8gW0JdLCBidXQgd2UgY2Fubm90IHNpbmNlIFtCXSBpcyBhbHJl
YWR5ICpvbmNlLXZpc2l0ZWQqLgorICAgIC8vICAgIDQuIFNvLCB3ZSBmYWxsIGJhY2sgdG8gdGhl
IHN0YXIgbGluayB0byAoRCkuCisgICAgLy8gICAgNS4gKEQpIGlzIG5vdCByZXNvbHZlZC4gU28g
KEMpIGlzIG5vdCByZXNvbHZlZC4KKyAgICAvLworICAgIC8vICBJbiB0aGUgcHJldmlvdXMgb25l
LCAoQykgaXMgY2FjaGVhYmxlLiBCdXQgaW4gdGhlIGFib3ZlIHJvdXRlLCAoQykgYmVjb21lcyB1
bmNhY2hlYWJsZS4KKyAgICAvLyAgU28gaW4gdGhlIHNlY29uZCB0cmlhbCwgd2Ugc2hvdWxkIG5v
dCByZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gKEMpIHdoZW4gdmlzaXRpbmcgKEMpLgorICAgIC8v
ICBIZXJlLCB3ZSBjYW4gb2JzZXJ2ZSB0aGUgb25lIHRoaW5nLiBJbiBzb21lIHNpdHVhdGlvbiwg
d2Ugc2hvdWxkIG5vdCByZXRyaWV2ZSB0aGUgY2FjaGVkIHJlc3VsdAorICAgIC8vICBmcm9tIHRo
ZSBub2RlLgorICAgIC8vCisgICAgLy8gIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBleHBsYWlucyB3
aGVuIHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIGNhY2hlIGFuZCBjYWNoZSB0aGUgcmVzdWx0
LgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICArLS0tLT4gKEQpIC0tLS0tLSsKKyAgICAv
LyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAg
fCAgICAgICAgICAgICAgICB2CisgICAgLy8gICAgICAoQSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4g
W0NdCisgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICAgICAgICAg
ICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBACisgICAgLy8KKyAgICAv
LyAgV2hlbiBzdGFydGluZyBmcm9tIChCKSwgd2UgZmluZCBbQ10uIEluIHRoaXMgcmVzb2x2aW5n
IHJvdXRlLCB3ZSBkb24ndCBmaW5kIGFueSBzdGFyIGxpbmsuCisgICAgLy8gIEFuZCBieSBkZWZp
bml0aW9uLCAoQikgYW5kIFtDXSBhcmUgY2FjaGFibGUuIChCKSBpcyB0aGUgc3RhcnRpbmcgcG9p
bnQuIEFuZCBbQ10gaGFzIHRoZSBsb2NhbCBiaW5kaW5nLgorICAgIC8vCisgICAgLy8gICAgICAg
ICAgICAgICArLS0tLT4gKEQpIC0tLS0tLSsKKyAgICAvLyAgICAgICAgICAgICAgIHwgICAgICAg
ICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB2CisgICAg
Ly8gIEAtPiAoQSkgKi0tLS0rLS0tLT4gKEIpIC0tLT4gW0NdCisgICAgLy8KKyAgICAvLyAgQnV0
IHdoZW4gc3RhcnRpbmcgZnJvbSAoQSksIHdlIHNob3VsZCBub3QgZ2V0IHRoZSB2YWx1ZSBmcm9t
IHRoZSBjYWNoZS4gQmVjYXVzZSwKKyAgICAvLworICAgIC8vICAgIDEuIFdoZW4gbG9va2luZyAo
RCksIHdlIHJlYWNoIFtDXSBhbmQgbWFrZSBib3RoIHJlc29sdmVkLgorICAgIC8vICAgIDIuIFdo
ZW4gbG9va2luZyAoQiksIGlmIHdlIHJldHJpZXZlZCB0aGUgbGFzdCBjYWNoZSBmcm9tIChCKSwg
KEIpIGJlY29tZXMgcmVzb2x2ZWQuCisgICAgLy8gICAgMy4gQnV0IGFjdHVhbGx5LCAoQikgaXMg
bm90LWZvdW5kIGluIHRoaXMgdHJpYWwgYmVjYXVzZSAoQykgaXMgYWxyZWFkeSAqb25jZS12aXNp
dGVkKi4KKyAgICAvLyAgICA0LiBJZiB3ZSBhY2NpZGVudGFsbHkgbWFrZSAoQikgcmVzb2x2ZWQs
IChBKSBiZWNvbWVzIGFtYmlndW91cy4gQnV0IHRoZSBjb3JyZWN0IGFuc3dlciBpcyByZXNvbHZl
ZC4KKyAgICAvLworICAgIC8vICBXaHkgaXMgdGhpcyBwcm9ibGVtIGNhdXNlZD8gVGhpcyBpcyBi
ZWNhdXNlIHRoZSAqb25jZS12aXNpdGVkKiBub2RlIG1ha2VzIHRoZSByZXN1bHQgbm90LWZvdW5k
LgorICAgIC8vICBJbiB0aGUgc2Vjb25kIHRyaWFsLCAoQikgLT4gW0NdIHJlc3VsdCBpcyBjaGFu
Z2VkIGZyb20gcmVzb2x2ZWQgdG8gbm90LWZvdW5kLgorICAgIC8vCisgICAgLy8gIFdoZW4gZG9l
cyB0aGlzIGJlY29tZSBhIHByb2JsZW0/IElmIHRoZSBzdGF0dXMgb2YgdGhlICpvbmNlLXZpc2l0
ZWQqIG5vZGUgZ3JvdXAgaXMgcmVzb2x2ZWQsCisgICAgLy8gIGNoYW5naW5nIHRoZSByZXN1bHQg
dG8gbm90LWZvdW5kIG1ha2VzIHRoZSByZXN1bHQgY2hhbmdlZC4KKyAgICAvLworICAgIC8vICBU
aGlzIHByb2JsZW0gZG9lcyBub3QgaGFwcGVuIHdoZW4gd2UgZG9uJ3Qgc2VlIGFueSBzdGFyIGxp
bmsgeWV0LiBOb3csIGNvbnNpZGVyIHRoZSBtaW5pbXVtIGNhc2UuCisgICAgLy8KKyAgICAvLyAg
QC0+IChBKSAtPiBbIHNvbWUgZ3JhcGggXQorICAgIC8vICAgICAgIF4gICAgICAgICAgICB8Cisg
ICAgLy8gICAgICAgfCAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICArLS0tLS0tLS0tLS0tKwor
ICAgIC8vCisgICAgLy8gIEluIChBKSwgd2UgZG9uJ3Qgc2VlIGFueSBzdGFyIGxpbmsgeWV0LiBT
byB3ZSBjYW4gc2F5IHRoYXQgYWxsIHRoZSB2aXNpdGVkIG5vZGVzIGRvZXMgbm90IGhhdmUgYW55
IGxvY2FsCisgICAgLy8gIHJlc29sdXRpb24uIEJlY2F1c2UgaWYgdGhleSBoYXZlIHRoZSByZXNv
bHV0aW9uLCB3ZSBzaG91bGQgYWxyZWFkeSBmaW5pc2ggdGhlIHRyYWNpbmcuCisgICAgLy8KKyAg
ICAvLyAgQW5kIGV2ZW4gaWYgdGhlIHNvbWUgZ3JhcGggd2lsbCBzZWUgdGhlICpvbmNlLXZpc2l0
ZWQqIG5vZGUgKGluIHRoaXMgY2FzZSwgKEEpKSwgdGhhdCBkb2VzIG5vdCBhZmZlY3QgdGhlCisg
ICAgLy8gIHJlc3VsdCBvZiB0aGUgcmVzb2x1dGlvbi4gQmVjYXVzZSBldmVuIGlmIHdlIGZvbGxv
dyB0aGUgbGluayB0byAoQSkgb3Igbm90IGZvbGxvdyB0aGUgbGluayB0byAoQSksIHRoZSBzdGF0
dXMKKyAgICAvLyAgb2YgdGhlIGxpbmsgaXMgYWx3YXlzIG5vdC1mb3VuZCBzaW5jZSAoQSkgZG9l
cyBub3QgaGF2ZSBhbnkgbG9jYXRpb24gcmVzb2x1dGlvbi4KKyAgICAvLyAgSW4gdGhlIGFib3Zl
IGNhc2UsIHdlIGNhbiB1c2UgdGhlIHJlc3VsdCBvZiB0aGUgW3NvbWUgZ3JhcGhdLgorICAgIC8v
CisgICAgLy8gIFNvLCB3ZSBjYW4gc2F5IHRoYXQsCisgICAgLy8KKyAgICAvLyAgPT4gT25jZSB3
ZSBmb2xsb3cgc3RhciBsaW5rcywgd2Ugc2hvdWxkIG5vdCByZXRyaWV2ZSB0aGUgcmVzdWx0IGZy
b20gdGhlIGNhY2hlIGFuZCBzaG91bGQgbm90IGNhY2hlLgorICAgIC8vCisgICAgLy8gNS4gT25j
ZSB3ZSBzZWUgdGhlIHN0YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdl
IHNob3VsZCBkaXNhYmxlIGNhY2hpbmcuCisgICAgLy8KKyAgICAvLyAgQW5kIHRoZXJlIGlzIGFu
b3RoZXIgZWRnZSBjYXNlLgorICAgIC8vCisgICAgLy8KKyAgICAvLyAgICAgICArLS0tLS0tLS0t
LS0tLSsKKyAgICAvLyAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICB2ICAgICAg
ICAgICAgIHwKKyAgICAvLyAgICAgIChBKSAtPiAoQikgLT4gKEMpICotPiBbRV0KKyAgICAvLyAg
ICAgICAqICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAv
LyAgICAgICB2ICAgICAgICAgICAgIEAKKyAgICAvLyAgICAgIFtEXQorICAgIC8vCisgICAgLy8g
IEluIHRoZSBhYm92ZSBjYXNlLCAoQykgd2lsbCBiZSByZXNvbHZlZCB3aXRoIFtEXS4KKyAgICAv
LyAgKEMpIHdpbGwgc2VlIChBKSBhbmQgKEEpIGdpdmVzIHVwIGluIChBKSAtPiAoQikgLT4gKEMp
IHJvdXRlLiBTbywgKEEpIHdpbGwgZmFsbGJhY2sgdG8gW0RdLgorICAgIC8vCisgICAgLy8gICAg
ICAgKy0tLS0tLS0tLS0tLS0rCisgICAgLy8gICAgICAgfCAgICAgICAgICAgICB8CisgICAgLy8g
ICAgICAgdiAgICAgICAgICAgICB8CisgICAgLy8gIEAtPiAoQSkgLT4gKEIpIC0+IChDKSAqLT4g
W0VdCisgICAgLy8gICAgICAgKgorICAgIC8vICAgICAgIHwKKyAgICAvLyAgICAgICB2CisgICAg
Ly8gICAgICBbRF0KKyAgICAvLworICAgIC8vICBCdXQgaW4gdGhpcyBjYXNlLCAoQSkgd2lsbCBi
ZSByZXNvbHZlZCB3aXRoIFtFXSAobm90IFtEXSkuCisgICAgLy8gIChDKSB3aWxsIGF0dGVtcHQg
dG8gZm9sbG93IHRoZSBsaW5rIHRvIChBKSwgYnV0IGl0IGZhaWxzLgorICAgIC8vICBTbyAoQykg
d2lsbCBmYWxsYmFjayB0byB0aGUgc3RhciBsaW5rIGFuZCBmb3VuZCBbRV0uIEluIHRoaXMgc2Vu
YXJpbywKKyAgICAvLyAgKEMpIGlzIG5vdyByZXNvbHZlZCB3aXRoIFtFXSdzIHJlc3VsdC4KKyAg
ICAvLworICAgIC8vICBUaGUgY2F1c2Ugb2YgdGhpcyBwcm9ibGVtIGlzIGFsc28gdGhlIHNhbWUg
dG8gNC4KKyAgICAvLyAgSW4gdGhlIGxhdHRlciBjYXNlLCB3aGVuIGxvb2tpbmcgKEMpLCB3ZSBj
YW5ub3QgdXNlIHRoZSBjYWNoZWQgcmVzdWx0IGluIChDKS4KKyAgICAvLyAgQmVjYXVzZSB0aGUg
Y2FjaGVkIHJlc3VsdCBvZiAoQykgZGVwZW5kcyBvbiB0aGUgKm9uY2UtdmlzaXRlZCogbm9kZSAo
QSkgYW5kCisgICAgLy8gIChBKSBoYXMgdGhlIGZhbGxiYWNrIHN5c3RlbSB3aXRoIHRoZSBzdGFy
IGxpbmsuCisgICAgLy8gIEluIHRoZSBsYXR0ZXIgdHJpYWwsIHdlIG5vdyBhc3N1bWUgdGhhdCAo
QSkncyBzdGF0dXMgaXMgbm90LWZvdW5kLgorICAgIC8vICBCdXQsIGFjdHVhbGx5LCBpbiB0aGUg
Zm9ybWVyIHRyaWFsLCAoQSkncyBzdGF0dXMgYmVjb21lcyByZXNvbHZlZCBkdWUgdG8gdGhlIGZh
bGxiYWNrIHRvIHRoZSBbRF0uCisgICAgLy8KKyAgICAvLyAgVG8gYXZvaWQgdGhpcywgb25jZSB3
ZSBzZWUgdGhlIHN0YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdlIHNo
b3VsZCBkaXNhYmxlIGNhY2hpbmcuCisgICAgLy8KKyAgICAvLyAgPT4gT25jZSB3ZSBzZWUgdGhl
IHN0YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdlIHNob3VsZCBkaXNh
YmxlIGNhY2hpbmcuCisgICAgLy8KKyAgICAvLyBUbyBzdW1tYXJpemUgdGhlIG9ic2VydmF0aW9u
LgorICAgIC8vCisgICAgLy8gID0+IFRoZSBzdGFydGluZyBwb2ludCBpcyBhbHdheXMgY2FjaGVh
YmxlLgorICAgIC8vICA9PiBUaGUgbW9kdWxlIHRoYXQgaGFzIGxvY2FsIHJlc29sdXRpb24gaXMg
YWx3YXlzIGNhY2hlYWJsZS4KKyAgICAvLyAgPT4gSWYgd2UgZG9uJ3QgZm9sbG93IGFueSBzdGFy
IGxpbmtzIGR1cmluZyB0aGUgcmVzb2x1dGlvbiwgd2UgY2FuIHNlZSBhbGwgdGhlIHRyYWNlZCBu
b2RlcyBhcmUgY2FjaGVhYmxlLgorICAgIC8vICA9PiBPbmNlIHdlIGZvbGxvdyBzdGFyIGxpbmtz
LCB3ZSBzaG91bGQgbm90IHJldHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUgYW5kIHNo
b3VsZCBub3QgY2FjaGUgdGhlIHJlc3VsdC4KKyAgICAvLyAgPT4gT25jZSB3ZSBzZWUgdGhlIHN0
YXIgbGlua3MsIGV2ZW4gaWYgaXQgZG9lcyBub3QgdXNlZCB5ZXQsIHdlIHNob3VsZCBkaXNhYmxl
IGNhY2hpbmcuCisKKyAgICB0eXBlZGVmIFdURjo6SGFzaFNldDxSZXNvbHZlUXVlcnksIFJlc29s
dmVRdWVyeTo6SGFzaCwgV1RGOjpDdXN0b21IYXNoVHJhaXRzPFJlc29sdmVRdWVyeT4+IFJlc29s
dmVTZXQ7CiAgICAgZW51bSBjbGFzcyBUeXBlIHsgUXVlcnksIEluZGlyZWN0RmFsbGJhY2ssIEdh
dGhlclN0YXJzIH07CiAgICAgc3RydWN0IFRhc2sgewogICAgICAgICBSZXNvbHZlUXVlcnkgcXVl
cnk7CkBAIC0yODgsOCArNTM2LDExIEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlv
biByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgVmVj
dG9yPFRhc2ssIDg+IHBlbmRpbmdUYXNrczsKICAgICBSZXNvbHZlU2V0IHJlc29sdmVTZXQ7CiAg
ICAgSGFzaFNldDxKU01vZHVsZVJlY29yZCo+IHN0YXJTZXQ7CisKICAgICBWZWN0b3I8UmVzb2x1
dGlvbiwgOD4gZnJhbWVzOwogCisgICAgYm9vbCBmb3VuZFN0YXJMaW5rcyA9IGZhbHNlOworCiAg
ICAgZnJhbWVzLmFwcGVuZChSZXNvbHV0aW9uOjpub3RGb3VuZCgpKTsKIAogICAgIC8vIENhbGwg
d2hlbiB0aGUgcXVlcnkgaXMgbm90IHJlc29sdmVkIGluIHRoZSBjdXJyZW50IG1vZHVsZS4KQEAg
LTMwOSw4ICs1NjAsMTAgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29s
dmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgLy8gRW5x
dWV1ZSB0aGUgdGFzayB0byBnYXRoZXIgdGhlIHJlc3VsdHMgb2YgdGhlIHN0YXJzLgogICAgICAg
ICAvLyBBbmQgYXBwZW5kIHRoZSBuZXcgUmVzb2x1dGlvbiBmcmFtZSB0byBnYXRoZXIgdGhlIGxv
Y2FsIHJlc3VsdCBvZiB0aGUgc3RhcnMuCiAgICAgICAgIHBlbmRpbmdUYXNrcy5hcHBlbmQoVGFz
ayB7IHF1ZXJ5LCBUeXBlOjpHYXRoZXJTdGFycyB9KTsKKyAgICAgICAgZm91bmRTdGFyTGlua3Mg
PSB0cnVlOwogICAgICAgICBmcmFtZXMuYXBwZW5kKFJlc29sdXRpb246Om5vdEZvdW5kKCkpOwog
CisKICAgICAgICAgLy8gRW5xdWV1ZSB0aGUgdGFza3MgaW4gcmV2ZXJzZSBvcmRlci4KICAgICAg
ICAgZm9yIChhdXRvIGl0ZXJhdG9yID0gcXVlcnkubW9kdWxlUmVjb3JkLT5zdGFyRXhwb3J0RW50
cmllcygpLnJiZWdpbigpLCBlbmQgPSBxdWVyeS5tb2R1bGVSZWNvcmQtPnN0YXJFeHBvcnRFbnRy
aWVzKCkucmVuZCgpOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0b3IpIHsKICAgICAgICAgICAg
IGNvbnN0IFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4mIHN0YXJNb2R1bGVOYW1lID0gKml0ZXJh
dG9yOwpAQCAtMzQzLDYgKzU5NiwxMSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRp
b24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9OwogCisgICAgYXV0byBjYWNoZVJlc29sdXRpb25Gb3JRdWVy
eSA9IFtdIChjb25zdCBSZXNvbHZlUXVlcnkmIHF1ZXJ5LCBjb25zdCBSZXNvbHV0aW9uJiByZXNv
bHV0aW9uKSB7CisgICAgICAgIEFTU0VSVChyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6
VHlwZTo6UmVzb2x2ZWQpOworICAgICAgICBxdWVyeS5tb2R1bGVSZWNvcmQtPmNhY2hlUmVzb2x1
dGlvbihxdWVyeS5leHBvcnROYW1lLmdldCgpLCByZXNvbHV0aW9uKTsKKyAgICB9OworCiAgICAg
cGVuZGluZ1Rhc2tzLmFwcGVuZChUYXNrIHsgcm9vdCwgVHlwZTo6UXVlcnkgfSk7CiAgICAgd2hp
bGUgKCFwZW5kaW5nVGFza3MuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNvbnN0IFRhc2sgdGFzayA9
IHBlbmRpbmdUYXNrcy50YWtlTGFzdCgpOwpAQCAtMzUwLDExICs2MDgsMjUgQEAgc3RhdGljIEpT
TW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgUmVzb2wKIAogICAgICAgICBzd2l0Y2ggKHRhc2sudHlwZSkgewogICAgICAgICBj
YXNlIFR5cGU6OlF1ZXJ5OiB7CisgICAgICAgICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVj
b3JkID0gcXVlcnkubW9kdWxlUmVjb3JkOworCiAgICAgICAgICAgICBpZiAoIXJlc29sdmVTZXQu
YWRkKHRhc2sucXVlcnkpLmlzTmV3RW50cnkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAK
LSAgICAgICAgICAgIEpTTW9kdWxlUmVjb3JkKiBtb2R1bGVSZWNvcmQgPSBxdWVyeS5tb2R1bGVS
ZWNvcmQ7Ci0gICAgICAgICAgICBjb25zdCBPcHRpb25hbDxKU01vZHVsZVJlY29yZDo6RXhwb3J0
RW50cnk+IG9wdGlvbmFsRXhwb3J0RW50cnkgPSBtb2R1bGVSZWNvcmQtPnRyeUdldEV4cG9ydEVu
dHJ5KHF1ZXJ5LmV4cG9ydE5hbWUuZ2V0KCkpOworICAgICAgICAgICAgLy8gID0+IE9uY2Ugd2Ug
c2VlIHRoZSBzdGFyIGxpbmtzLCBldmVuIGlmIGl0IGRvZXMgbm90IHVzZWQgeWV0LCB3ZSBzaG91
bGQgZGlzYWJsZSBjYWNoaW5nLgorICAgICAgICAgICAgaWYgKCFtb2R1bGVSZWNvcmQtPnN0YXJF
eHBvcnRFbnRyaWVzKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGZvdW5kU3Rhckxpbmtz
ID0gdHJ1ZTsKKworICAgICAgICAgICAgLy8gID0+IE9uY2Ugd2UgZm9sbG93IHN0YXIgbGlua3Ms
IHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIHJlc3VsdCBmcm9tIHRoZSBjYWNoZSBhbmQgc2hv
dWxkIG5vdCBjYWNoZSB0aGUgcmVzdWx0LgorICAgICAgICAgICAgaWYgKCFmb3VuZFN0YXJMaW5r
cykgeworICAgICAgICAgICAgICAgIGlmIChPcHRpb25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNv
bHV0aW9uID0gbW9kdWxlUmVjb3JkLT50cnlHZXRDYWNoZWRSZXNvbHNpb24ocXVlcnkuZXhwb3J0
TmFtZS5nZXQoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRv
cCgqY2FjaGVkUmVzb2x1dGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVz
b2x1dGlvbjo6YW1iaWd1b3VzKCk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY29uc3QgT3B0aW9u
YWw8RXhwb3J0RW50cnk+IG9wdGlvbmFsRXhwb3J0RW50cnkgPSBtb2R1bGVSZWNvcmQtPnRyeUdl
dEV4cG9ydEVudHJ5KHF1ZXJ5LmV4cG9ydE5hbWUuZ2V0KCkpOwogICAgICAgICAgICAgaWYgKCFv
cHRpb25hbEV4cG9ydEVudHJ5KSB7CiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8g
bWF0Y2hlZCBleHBvcnRlZCBiaW5kaW5nIGluIHRoZSBjdXJyZW50IG1vZHVsZSwKICAgICAgICAg
ICAgICAgICAvLyB3ZSBuZWVkIHRvIGxvb2sgaW50byB0aGUgc3RhcnMuCkBAIC0zNjMsMTUgKzYz
NSwxOSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExv
b3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjb25zdCBKU01vZHVsZVJlY29yZDo6RXhw
b3J0RW50cnkmIGV4cG9ydEVudHJ5ID0gKm9wdGlvbmFsRXhwb3J0RW50cnk7CisgICAgICAgICAg
ICBjb25zdCBFeHBvcnRFbnRyeSYgZXhwb3J0RW50cnkgPSAqb3B0aW9uYWxFeHBvcnRFbnRyeTsK
ICAgICAgICAgICAgIHN3aXRjaCAoZXhwb3J0RW50cnkudHlwZSkgewotICAgICAgICAgICAgY2Fz
ZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6OkxvY2FsOgotICAgICAgICAgICAg
Y2FzZSBKU01vZHVsZVJlY29yZDo6RXhwb3J0RW50cnk6OlR5cGU6Ok5hbWVzcGFjZToKLSAgICAg
ICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKFJlc29sdXRpb24geyBSZXNvbHV0aW9u
OjpUeXBlOjpSZXNvbHZlZCwgbW9kdWxlUmVjb3JkLCBleHBvcnRFbnRyeS5sb2NhbE5hbWUgfSkp
CisgICAgICAgICAgICBjYXNlIEV4cG9ydEVudHJ5OjpUeXBlOjpMb2NhbDoKKyAgICAgICAgICAg
IGNhc2UgRXhwb3J0RW50cnk6OlR5cGU6Ok5hbWVzcGFjZTogeworICAgICAgICAgICAgICAgIFJl
c29sdXRpb24gcmVzb2x1dGlvbiB7IFJlc29sdXRpb246OlR5cGU6OlJlc29sdmVkLCBtb2R1bGVS
ZWNvcmQsIGV4cG9ydEVudHJ5LmxvY2FsTmFtZSB9OworICAgICAgICAgICAgICAgIC8vICA9PiBU
aGUgbW9kdWxlIHRoYXQgaGFzIGxvY2FsIHJlc29sdXRpb24gaXMgYWx3YXlzIGNhY2hlYWJsZS4K
KyAgICAgICAgICAgICAgICBjYWNoZVJlc29sdXRpb25Gb3JRdWVyeShxdWVyeSwgcmVzb2x1dGlv
bik7CisgICAgICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChyZXNvbHV0aW9uKSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRpb246OmFtYmlndW91cygpOwogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjYXNl
IEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRyeTo6VHlwZTo6SW5kaXJlY3Q6IHsKKyAgICAgICAg
ICAgIGNhc2UgRXhwb3J0RW50cnk6OlR5cGU6OkluZGlyZWN0OiB7CiAgICAgICAgICAgICAgICAg
SlNNb2R1bGVSZWNvcmQqIGltcG9ydGVkTW9kdWxlUmVjb3JkID0gbW9kdWxlUmVjb3JkLT5ob3N0
UmVzb2x2ZUltcG9ydGVkTW9kdWxlKGV4ZWMsIGV4cG9ydEVudHJ5Lm1vZHVsZU5hbWUpOwogCiAg
ICAgICAgICAgICAgICAgLy8gV2hlbiB0aGUgaW1wb3J0ZWQgbW9kdWxlIGRvZXMgbm90IHByb2R1
Y2UgYW55IHJlc29sdmVkIGJpbmRpbmcsIHdlIG5lZWQgdG8gbG9vayBpbnRvIHRoZSBzdGFycyBp
biB0aGUgKmN1cnJlbnQqCkBAIC0zODcsNyArNjYzLDcgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3Jk
OjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVz
b2wKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgVHlwZTo6SW5kaXJlY3RGYWxsYmFjazogewot
ICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x1dGlvbiA9IGZyYW1l
cy50YWtlTGFzdCgpOworICAgICAgICAgICAgUmVzb2x1dGlvbiByZXNvbHV0aW9uID0gZnJhbWVz
LnRha2VMYXN0KCk7CiAKICAgICAgICAgICAgIGlmIChyZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1
dGlvbjo6VHlwZTo6Tm90Rm91bmQpIHsKICAgICAgICAgICAgICAgICAvLyBJbmRpcmVjdCBleHBv
cnQgZW50cnkgZG9lcyBub3QgcHJvZHVjZSBhbnkgcmVzb2x2ZWQgYmluZGluZy4KQEAgLTM5Nyw2
ICs2NzMsMTMgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBv
cnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShy
ZXNvbHV0aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQsICJXaGVuIHdlIHNl
ZSBFcnJvciBhbmQgQW1iaWd1b3VzLCB3ZSBpbW1lZGlhdGVseSByZXR1cm4gZnJvbSB0aGlzIGxv
b3AuIFNvIGhlcmUsIG9ubHkgUmVzb2x2ZWQgY29tZXMuIik7CisKKyAgICAgICAgICAgIC8vICA9
PiBJZiB3ZSBkb24ndCBmb2xsb3cgYW55IHN0YXIgbGlua3MgZHVyaW5nIHRoZSByZXNvbHV0aW9u
LCB3ZSBjYW4gc2VlIGFsbCB0aGUgdHJhY2VkIG5vZGVzIGFyZSBjYWNoZWFibGUuCisgICAgICAg
ICAgICAvLyAgPT4gT25jZSB3ZSBmb2xsb3cgc3RhciBsaW5rcywgd2Ugc2hvdWxkIG5vdCByZXRy
aWV2ZSB0aGUgcmVzdWx0IGZyb20gdGhlIGNhY2hlIGFuZCBzaG91bGQgbm90IGNhY2hlIHRoZSBy
ZXN1bHQuCisgICAgICAgICAgICBpZiAoIWZvdW5kU3RhckxpbmtzKQorICAgICAgICAgICAgICAg
IGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCByZXNvbHV0aW9uKTsKKwogICAgICAgICAg
ICAgLy8gSWYgaW5kaXJlY3QgZXhwb3J0IGVudHJ5IHByb2R1Y2VzIFJlc29sdmVkLCB3ZSBzaG91
bGQgbWVyZ2UgaXQgdG8gdGhlIHVwcGVyIGZyYW1lLgogICAgICAgICAgICAgLy8gQW5kIGRvIG5v
dCBpbnZlc3RpZ2F0ZSB0aGUgc3RhcnMgb2YgdGhlIGN1cnJlbnQgbW9kdWxlLgogICAgICAgICAg
ICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChyZXNvbHV0aW9uKSkKQEAgLTQwNSw5ICs2ODgsMTEg
QEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgVHlw
ZTo6R2F0aGVyU3RhcnM6IHsKKyAgICAgICAgICAgIFJlc29sdXRpb24gcmVzb2x1dGlvbiA9IGZy
YW1lcy50YWtlTGFzdCgpOworICAgICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShyZXNvbHV0
aW9uLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQgfHwgcmVzb2x1dGlvbi50eXBl
ID09IFJlc29sdXRpb246OlR5cGU6Ok5vdEZvdW5kLCAiV2hlbiB3ZSBzZWUgRXJyb3IgYW5kIEFt
YmlndW91cywgd2UgaW1tZWRpYXRlbHkgcmV0dXJuIGZyb20gdGhpcyBsb29wLiBTbyBoZXJlLCBv
bmx5IFJlc29sdmVkIGFuZCBOb3RGb3VuZCBjb21lcy4iKTsKKwogICAgICAgICAgICAgLy8gTWVy
Z2UgdGhlIHN0YXIgcmVzb2x1dGlvbiB0byB0aGUgdXBwZXIgZnJhbWUuCi0gICAgICAgICAgICBK
U01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiBzdGFyUmVzb2x1dGlvbiA9IGZyYW1lcy50YWtlTGFz
dCgpOwotICAgICAgICAgICAgaWYgKCFtZXJnZVRvQ3VycmVudFRvcChzdGFyUmVzb2x1dGlvbikp
CisgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHJlc29sdXRpb24pKQogICAgICAg
ICAgICAgICAgIHJldHVybiBSZXNvbHV0aW9uOjphbWJpZ3VvdXMoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CkBAIC00MTUsMTIgKzcwMCwxOCBAQCBzdGF0aWMgSlNNb2R1bGVSZWNv
cmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBS
ZXNvbAogICAgIH0KIAogICAgIEFTU0VSVChmcmFtZXMuc2l6ZSgpID09IDEpOworICAgIC8vICA9
PiBUaGUgc3RhcnRpbmcgcG9pbnQgaXMgYWx3YXlzIGNhY2hlYWJsZS4KKyAgICBpZiAoZnJhbWVz
WzBdLnR5cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQpCisgICAgICAgIGNhY2hlUmVz
b2x1dGlvbkZvclF1ZXJ5KHJvb3QsIGZyYW1lc1swXSk7CiAgICAgcmV0dXJuIGZyYW1lc1swXTsK
IH0KIAogYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUV4cG9ydChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIGV4cG9ydE5hbWUpIC0+IFJlc29sdXRpb24KIHsKLSAgICByZXR1
cm4gcmVzb2x2ZUV4cG9ydExvb3AoZXhlYywgUmVzb2x2ZVF1ZXJ5KHRoaXMsIGV4cG9ydE5hbWUu
aW1wbCgpKSk7CisgICAgLy8gTG9vayB1cCB0aGUgY2FjaGVkIHJlc29sdXRpb24gZmlyc3QgYmVm
b3JlIGVudGVyaW5nIHRoZSByZXNvbHZpbmcgbG9vcCwgc2luY2UgdGhlIGxvb3Agc2V0dXAgdGFr
ZXMgc29tZSBjb3N0LgorICAgIGlmIChPcHRpb25hbDxSZXNvbHV0aW9uPiBjYWNoZWRSZXNvbHV0
aW9uID0gdHJ5R2V0Q2FjaGVkUmVzb2xzaW9uKGV4cG9ydE5hbWUuaW1wbCgpKSkKKyAgICAgICAg
cmV0dXJuICpjYWNoZWRSZXNvbHV0aW9uOworICAgIHJldHVybiByZXNvbHZlRXhwb3J0SW1wbChl
eGVjLCBSZXNvbHZlUXVlcnkodGhpcywgZXhwb3J0TmFtZS5pbXBsKCkpKTsKIH0KIAogc3RhdGlj
IHZvaWQgZ2V0RXhwb3J0ZWROYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlUmVjb3JkKiBy
b290LCBJZGVudGlmaWVyU2V0JiBleHBvcnRlZE5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKaW5kZXggNzBhMTkwZjgyYzY3OGQxODYxZjUw
NmVkMWQ4MGYyMjViY2M5MGU1ZS4uYzlkNzU4N2YzODJjN2JmMDJjY2IwN2IzYjBhMmRjZTk1Y2M4
ODMwYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVS
ZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29y
ZC5oCkBAIC0xNjMsNiArMTYzLDExIEBAIGNsYXNzIEpTTW9kdWxlUmVjb3JkIDogcHVibGljIEpT
RGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAgIHZvaWQgaW5zdGFudGlhdGVEZWNsYXJhdGlvbnMo
RXhlY1N0YXRlKiwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqKTsKIAorICAgIHN0cnVjdCBSZXNv
bHZlUXVlcnk7CisgICAgc3RhdGljIFJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydEltcGwoRXhlY1N0
YXRlKiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7CisgICAgT3B0aW9uYWw8UmVzb2x1dGlvbj4gdHJ5
R2V0Q2FjaGVkUmVzb2xzaW9uKFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lKTsKKyAgICB2
b2lkIGNhY2hlUmVzb2x1dGlvbihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSwgY29uc3Qg
UmVzb2x1dGlvbiYpOworCiAgICAgLy8gVGhlIGxvYWRlciByZXNvbHZlcyB0aGUgZ2l2ZW4gbW9k
dWxlIG5hbWUgdG8gdGhlIG1vZHVsZSBrZXkuIFRoZSBtb2R1bGUga2V5IGlzIHRoZSB1bmlxdWUg
dmFsdWUgdG8gcmVwcmVzZW50IHRoaXMgbW9kdWxlLgogICAgIElkZW50aWZpZXIgbV9tb2R1bGVL
ZXk7CiAKQEAgLTIwMiw2ICsyMDcsMTMgQEAgY2xhc3MgSlNNb2R1bGVSZWNvcmQgOiBwdWJsaWMg
SlNEZXN0cnVjdGlibGVPYmplY3QgewogICAgIFdyaXRlQmFycmllcjxNb2R1bGVQcm9ncmFtRXhl
Y3V0YWJsZT4gbV9tb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNN
b2R1bGVFbnZpcm9ubWVudD4gbV9tb2R1bGVFbnZpcm9ubWVudDsKICAgICBXcml0ZUJhcnJpZXI8
SlNNb2R1bGVOYW1lc3BhY2VPYmplY3Q+IG1fbW9kdWxlTmFtZXNwYWNlT2JqZWN0OworCisgICAg
Ly8gV2UgYXNzdW1lIHRoYXQgYWxsIHRoZSBKU01vZHVsZVJlY29yZCBhcmUgcmV0YWluZWQgYnkg
TW9kdWxlTG9hZGVyT2JqZWN0J3MgcmVnaXN0cnkuCisgICAgLy8gU28gaGVyZSwgd2UgZG9uJ3Qg
dmlzaXQgZWFjaCBvYmplY3QgZm9yIEdDLiBUaGUgcmVzb2x1dGlvbiBjYWNoZSBtYXAgY2FjaGVz
IHRoZSBvbmNlCisgICAgLy8gbG9va2VkIHVwIGNvcnJlY3RseSByZXNvbHZlZCByZXNvbHV0aW9u
LCBzaW5jZSAoMSkgd2UgcmFyZWx5IGxvb2tlZCB1cCB0aGUgbm9uLXJlc29sdmVkIG9uZSwKKyAg
ICAvLyBhbmQgKDIpIGlmIHdlIGNhY2hlIGFsbCB0aGUgYXR0ZW1wdHMgdGhlIHNpemUgb2YgdGhl
IG1hcCBiZWNvbWVzIGluZmluaXRlbHkgbGFyZ2UuCisgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0
cjxVbmlxdWVkU3RyaW5nSW1wbD4sIFJlc29sdXRpb24sIElkZW50aWZpZXJSZXBIYXNoLCBIYXNo
VHJhaXRzPFJlZlB0cjxVbmlxdWVkU3RyaW5nSW1wbD4+PiBSZXNvbHV0aW9uczsKKyAgICBSZXNv
bHV0aW9ucyBtX3Jlc29sdXRpb25DYWNoZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91
bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21v
ZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQy
NTEzZWQxNzBiM2Q3MTExMzk0YmIzNDkzZGI4YTY0ZDVjMmExZTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3Qt
bWFrZS1hbWJpZ3VvdXMuanMKQEAgLTAsMCArMSw1IEBACisvLyAgICAgICAgICAgICAgICArLS0t
LT4gKEQpIC0tLS0tLSsKKy8vICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfAorLy8g
ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICB2CisvLyAgIEAtPiAoQSkgKi0tLS0rLS0t
LT4gKEIpIC0tLT4gW0NdCitpbXBvcnQgeyBBIH0gZnJvbSAiY2FjaGluZy1zaG91bGQtbm90LW1h
a2UtYW1iaWd1b3VzL21haW4uanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQS5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtl
LWFtYmlndW91cy9BLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEzNjZlMzdjNTI3ODc3ODhhYTgzYjRlMGRkODQ5
ZWQ4NTMyMDhjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQS5qcwpAQCAtMCww
ICsxLDIgQEAKK2V4cG9ydCAqIGZyb20gIi4vRC5qcyIKK2V4cG9ydCAqIGZyb20gIi4vQi5qcyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmct
c2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9CLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjcyYmNjZjA1YjM4ZDM0Nzk4MjA3OGYzYjY4YTNkYTBhY2Y5OTg0YQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hv
dWxkLW5vdC1tYWtlLWFtYmlndW91cy9CLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCB7IEEgfSBm
cm9tICIuL0MuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9k
dWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQy5qcyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91
cy9DLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQzMDhlMmNhZTkzNzMyYTRiNDhiM2Q5YzFlYmU4MDkzMGRhNTQx
ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQy5qcwpAQCAtMCwwICsxIEBACitl
eHBvcnQgbGV0IEEgPSA0MjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9ELmpzIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1i
aWd1b3VzL0QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyYmNjZjA1YjM4ZDM0Nzk4MjA3OGYzYjY4YTNkYTBh
Y2Y5OTg0YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9ELmpzCkBAIC0wLDAgKzEg
QEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0MuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMv
bWFpbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hv
dWxkLW5vdC1tYWtlLWFtYmlndW91cy9tYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5MGI1MzVmODc1YzNi
NGFiMDBkNDAxMTUxNmViNzc1YTkwMGE2Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3Vv
dXMvbWFpbi5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9BLmpzIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZp
ZXcuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmll
dy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mODFlODljMjVmOWY4NjlkNDBlNjU0YjljMmZmMjc1Y2ZiNWQ4OTdh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMv
ZGlmZmVyZW50LXZpZXcuanMKQEAgLTAsMCArMSw3IEBACitpbXBvcnQgeyBzaG91bGRCZSwgc2hv
dWxkVGhyb3cgfSBmcm9tICIuL3Jlc291cmNlcy9hc3NlcnQuanMiCisKK3Nob3VsZFRocm93KCgp
ID0+IHsKKyAgICBsb2FkTW9kdWxlKCcuL2RpZmZlcmVudC12aWV3L21haW4uanMnKTsKK30sIGBT
eW50YXhFcnJvcjogSW1wb3J0aW5nIGJpbmRpbmcgbmFtZSAnQScgY2Fubm90IGJlIHJlc29sdmVk
IGR1ZSB0byBhbWJpZ3VvdXMgbXVsdGlwbGUgYmluZGluZ3MuYCk7CisKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQS5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0EuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2ZkYmI2MDRkMmJiYTA2MTI2MTIyNzdhZjQxZWJiMDNhNDAxMmMwNwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZl
cmVudC12aWV3L0EuanMKQEAgLTAsMCArMSwyIEBACitleHBvcnQgKiBmcm9tICIuL0IuanMiOwor
ZXhwb3J0ICogZnJvbSAiLi9FLmpzIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9CLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4NmRkNzFl
ZTY2YTlhODYxNWFjYWVhNDA1ZWQyZjc4M2RmOWQxODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9CLmpzCkBAIC0w
LDAgKzEsMiBAQAorZXhwb3J0ICogZnJvbSAiLi9DLmpzIgorZXhwb3J0ICogZnJvbSAiLi9ELmpz
IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVy
ZW50LXZpZXcvQy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZl
cmVudC12aWV3L0MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U4MDkzNWQ2ZThlMjJjYWE1NDVkODM0MjVjOGRm
NzAzMjQ2MDY1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0MuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0ICogZnJv
bSAiLi9BLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvZGlmZmVyZW50LXZpZXcvRC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1
bGVzL2RpZmZlcmVudC12aWV3L0QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMwOGUyY2FlOTM3MzJhNGI0OGIz
ZDljMWViZTgwOTMwZGE1NDFmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0QuanMKQEAgLTAsMCArMSBAQAorZXhw
b3J0IGxldCBBID0gNDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
bW9kdWxlcy9kaWZmZXJlbnQtdmlldy9FLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTBjYjBlNjEyODYwNDg4
YzEwZWNhY2IyNWJlNGEyNzQ2YzkxNmI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5qcwpAQCAtMCwwICsxIEBA
CitleHBvcnQgbGV0IEEgPSA1MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L21haW4uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9tYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNGY5
NzJmNjNlNGJlNDJjZTY1MmU4N2Y1OGY2YTlhOTc4MTEyZDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9tYWluLmpz
CkBAIC0wLDAgKzEgQEAKK2ltcG9ydCB7IEEgfSBmcm9tICIuL0EuanMiCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzZiNjBmZTRkN2Q3MTJhN2IyZmZlYWE1ZmE4YmU2YzU2MTM1OTNiNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2Zh
bGxiYWNrLWFtYmlndW91cy5qcwpAQCAtMCwwICsxLDEyIEBACisvLyAgICAgICAgKy0tLS0tLS0t
LS0tLS0tLS0tKworLy8gICAgICAgIHwgICAgICAgICAgICAgICAgIHwKKy8vICAgICAgICB2ICAg
ICAgICAgICAgICAgICB8CisvLyAgICAgICAoQSkgLT4gKEMpIC0+IChEKSAqKy0+IFtFXQorLy8g
ICAgICAgICogICAgICBeCisvLyAgICAgICAgfCAgICAgIHwKKy8vICAgICAgICB2ICAgICAgQAor
Ly8gICAgICAgKEIpCitpbXBvcnQgeyBzaG91bGRUaHJvdyB9IGZyb20gIi4vcmVzb3VyY2VzL2Fz
c2VydC5qcyIKK3Nob3VsZFRocm93KCgpID0+IHsKKyAgICBsb2FkTW9kdWxlKCIuL2ZhbGxiYWNr
LWFtYmlndW91cy9tYWluLmpzIik7Cit9LCBgU3ludGF4RXJyb3I6IEluZGlyZWN0bHkgZXhwb3J0
ZWQgYmluZGluZyBuYW1lICdBJyBjYW5ub3QgYmUgcmVzb2x2ZWQgZHVlIHRvIGFtYmlndW91cyBt
dWx0aXBsZSBiaW5kaW5ncy5gKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9BLmpzIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0EuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWNh
NDgyMmQwZjcwMmY2OTg2YTI4MTM0NDg5MDM4NTE1NTllZGIyNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9B
LmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vQy5qcyIKK2V4cG9ydCAq
IGZyb20gIi4vQi5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9CLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEwY2IwZTYx
Mjg2MDQ4OGMxMGVjYWNiMjViZTRhMjc0NmM5MTZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9CLmpzCkBA
IC0wLDAgKzEgQEAKK2V4cG9ydCBsZXQgQSA9IDUwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0MuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQy5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YWYwNTg4ZTE0ZTY3M2VjMzkzY2ZiM2JlY2Y1Mzk5NDE1Zjc0YWJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2st
YW1iaWd1b3VzL0MuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vRC5qcyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNr
LWFtYmlndW91cy9ELmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFs
bGJhY2stYW1iaWd1b3VzL0QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI1MTYzMjhkY2I5ODRkOTMzYzVkNDNl
ZTA3Mzg1ZGI5ZTExZjlmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9ELmpzCkBAIC0wLDAgKzEsMiBAQAor
ZXhwb3J0ICogZnJvbSAiLi9BLmpzIgorZXhwb3J0ICogZnJvbSAiLi9FLmpzIgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3Vz
L0UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJp
Z3VvdXMvRS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzA4ZTJjYWU5MzczMmE0YjQ4YjNkOWMxZWJlODA5MzBk
YTU0MWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21v
ZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0UuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBB
ID0gNDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9m
YWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9tYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MmJjY2YwNWIz
OGQzNDc5ODIwNzhmM2I2OGEzZGEwYWNmOTk4NGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5qcwpA
QCAtMCwwICsxIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9DLmpzIgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNWUzMzc2MzJiMDVmMDIzZDJmOGNkNjZmMTgzZTNlZDg3YWE0YmEwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxp
bmsuanMKQEAgLTAsMCArMSwxNSBAQAorLy8gICAgICAgKy0tLS0tLS0tLS0tLS0rCisvLyAgICAg
ICB8ICAgICAgICAgICAgIHwKKy8vICAgICAgIHYgICAgICAgICAgICAgfAorLy8gIEAtPiAoQSkg
LT4gKEIpIC0+IChDKSAqLT4gW0VdCisvLyAgICAgICAqCisvLyAgICAgICB8CisvLyAgICAgICB2
CisvLyAgICAgIFtEXQoraW1wb3J0IHsgQSB9IGZyb20gIi4vc2VsZi1zdGFyLWxpbmsvQS5qcyIK
K2ltcG9ydCB7IHNob3VsZEJlIH0gZnJvbSAiLi9yZXNvdXJjZXMvYXNzZXJ0LmpzIgoraW1wb3J0
IHsgQSBhcyBBZnJvbUMgfSBmcm9tICIuL3NlbGYtc3Rhci1saW5rL0MuanMiCitpbXBvcnQgeyBB
IGFzIEFmcm9tQiB9IGZyb20gIi4vc2VsZi1zdGFyLWxpbmsvQi5qcyIKK3Nob3VsZEJlKEEsICdF
Jyk7CitzaG91bGRCZShBZnJvbUMsICdEJyk7CitzaG91bGRCZShBZnJvbUIsICdEJyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGlu
ay9BLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxp
bmsvQS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNzllOTI4ZTJiYTQzNWE5NzljYTY5OTY2MmU5MThmODBhYjQ4
NDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvc2VsZi1zdGFyLWxpbmsvQS5qcwpAQCAtMCwwICsxLDIgQEAKK2V4cG9ydCB7IEEgfSBmcm9t
ICIuL0IuanMiCitleHBvcnQgKiBmcm9tICIuL0QuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9CLmpzIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQi5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NzJiY2NmMDViMzhkMzQ3OTgyMDc4ZjNiNjhhM2RhMGFjZjk5ODRhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsv
Qi5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9DLmpzIgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQy5q
cyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0Mu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmNjNjE5NGE1YzJhM2FiNzg2OTE0NWQ4NjE2NjMzOWM4ZDRlYWYwYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3Nl
bGYtc3Rhci1saW5rL0MuanMKQEAgLTAsMCArMSwyIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9B
LmpzIgorZXhwb3J0ICogZnJvbSAiLi9FLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvRC5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0QuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM5
MzhmNWE5ODhhYWMwMzNlYWRkYzY0NzgzODIyMThhMTU2MDFlNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0QuanMK
QEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBBID0gJ0QnOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvRS5qcyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0UuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDMxNTM4MTE4MWY0NzgxMTk3NzYzYzRjZmI4YzBlYjI5ODQ4MzM0OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5r
L0UuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBBID0gJ0UnOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rh
ci5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdo
ZW4tc2VlLXN0YXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDE5MmI1MTdmYWU4OWFjMzM1MDkwYjU1NmZkYzk1
YjU5ODhjNDM4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIuanMKQEAgLTAsMCArMSwxMyBAQAor
Ly8gICAgICAgKEEpICotLT4gW0JdCisvLyAgICAgICAgICAgIHwgICAgXgorLy8gICAgICAgICAg
ICB8ICAgIHwKKy8vICAgICAgICAgICAgKy0+IChDKSAqLT4gKEQpCisvLyAgICAgICAgICAgICAg
ICAgXgorLy8gICAgICAgICAgICAgICAgIHwKKy8vICAgICAgICAgICAgICAgIChFKQorLy8gICAg
ICAgICAgICAgICAgIF4KKy8vICAgICAgICAgICAgICAgICB8CisvLyAgICAgICAgICAgICAgICAg
QAorCitpbXBvcnQgInVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjEuanMiCitpbXBvcnQg
InVuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0Et
cHJlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUt
d2hlbi1zZWUtc3Rhci9BLXByZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTBiNTM1Zjg3NWMzYjRhYjAwZDQw
MTE1MTZlYjc3NWE5MDBhNmNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9BLXByZS5qcwpAQCAt
MCwwICsxIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9BLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9B
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hl
bi1zZWUtc3Rhci9BLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMjQ3NjQ1ZWU3MTUxNTk3OTQ5ZTkzMTY0MjIx
ZDAzOTkyOWM4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0EuanMKQEAgLTAsMCArMSwyIEBA
CitleHBvcnQgKiBmcm9tICIuL0IuanMiCitleHBvcnQgKiBmcm9tICIuL0MuanMiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVu
LXNlZS1zdGFyL0IuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNh
Y2hlYWJsZS13aGVuLXNlZS1zdGFyL0IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRjOTI5ZjNmZjE4NDdlMTlh
YTg5MjE3NTRjNTE3NDBlNzYxZjkxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQi5qcwpAQCAt
MCwwICsxIEBACitleHBvcnQgbGV0IEEgPSA0MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQy5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0
YXIvQy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNzllOTI4ZTJiYTQzNWE5NzljYTY5OTY2MmU5MThmODBhYjQ4
NDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9DLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0
IHsgQSB9IGZyb20gIi4vQi5qcyIKK2V4cG9ydCAqIGZyb20gIi4vRC5qcyIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2Vl
LXN0YXIvRC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVh
YmxlLXdoZW4tc2VlLXN0YXIvRC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4
ZTY0YjBhYWQ3YmRlZDA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9ELmpzCkBAIC0wLDAg
KzEgQEAKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMv
dW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9FLXByZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS1wcmUuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2QzYWEwNGI3YjAwY2YwNDljYmVlNjEyZjkxODk2NzBkMjE0MmZhNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxl
LXdoZW4tc2VlLXN0YXIvRS1wcmUuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20g
Ii4vRS5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVz
L3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NzJiY2NmMDViMzhkMzQ3OTgyMDc4ZjNiNjhhM2RhMGFjZjk5ODRhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1z
ZWUtc3Rhci9FLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0MuanMiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJs
ZS13aGVuLXNlZS1zdGFyL21haW4xLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21v
ZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjM3
M2I5YmY1Njk0YjE1YjViNTkwZmFiMjBiMGY2ZmU2MDUwYWI5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUt
c3Rhci9tYWluMS5qcwpAQCAtMCwwICsxIEBACitpbXBvcnQgeyBBIH0gZnJvbSAiLi9FLXByZS5q
cyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2Fj
aGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5NzM3NmFhNmNiZTA1NDBiOTFmMTJmZTJhZWZiY2QyZGRiODVlZTQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVu
LXNlZS1zdGFyL21haW4yLmpzCkBAIC0wLDAgKzEgQEAKK2ltcG9ydCB7IEEgfSBmcm9tICIuL0Et
cHJlLmpzIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261081</attachid>
            <date>2015-09-13 02:31:59 -0700</date>
            <delta_ts>2015-09-14 13:21:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148896-20150913023150.patch</filename>
            <type>text/plain</type>
            <size>44871</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg5NjM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YWJjYTUwZGVjNWJkNjdmMWMzMWYxODBhN2M4YjI5YmEyYzE4ZDJkLi43NmMxNDlhYTljMDk0M2Vh
ZmU1ZWEzMDRlODdkZmEwZDFiY2RlM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NiBAQAorMjAxNS0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBDYWNoZSB0aGUgcmVzb2x1dGlvbiByZXN1bHQgaW4gSlNN
b2R1bGVSZWNvcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODg5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoZSByZXNvbHZlRXhwb3J0IG9wZXJhdGlvbiBpcyBmcmVxdWVudGx5IGNhbGxlZC4gRm9y
IGV4YW1wbGUsCisgICAgICAgIDEuIFdoZW4gaW5zdGFudGlhdGluZyB0aGUgbW9kdWxlIGVudmly
b25tZW50LCB3ZSBjYWxsIGl0IGZvciBlYWNoIGV4cG9ydGVkIG5hbWUgYW5kIGltcG9ydGVkCisg
ICAgICAgICAgIG5hbWUuCisgICAgICAgIDIuIFdoZW4gbGlua2luZyB0aGUgaW1wb3J0ZWQgbW9k
dWxlIGVudmlyb25tZW50IHRvIHRoZSBjb2RlIGJsb2NrLCB3ZSBjYWxsIGl0IHRvIHJlc29sdmUg
dGhlCisgICAgICAgICAgIHJlc29sdXRpb24uCisgICAgICAgIDMuIFdoZW4gbG9va2luZyB1cCB0
aGUgcHJvcGVydHkgZnJvbSB0aGUgbmFtZXNwYWNlIG9iamVjdCwgd2UgY2FsbCBpdCB0byBsb29r
IHVwIHRoZSBvcmlnaW5hbAorICAgICAgICAgICBtb2R1bGUgZm9yIHRoZSBpbXBvcnRlZCBiaW5k
aW5nLgorICAgICAgICA0LiBXaGVuIGNyZWF0aW5nIHRoZSBuYW1lc3BhY2Ugb2JqZWN0LCB3ZSBu
ZWVkIHRvIGNvbGxlY3QgYWxsIHRoZSBleHBvcnRlZCBuYW1lcyBmcm9tIHRoZSBtb2R1bGUKKyAg
ICAgICAgICAgYW5kIG5lZWQgdG8gcmVzb2x2ZSB0aGVtIGJ5IGNhbGxpbmcgcmVzb2x2ZUV4cG9y
dC4KKworICAgICAgICBIb3dldmVyLCByZXNvbHZlRXhwb3J0IHRha2VzIHNvbWUgY29zdC4gSXQg
dHJhY2VzIHRoZSBpbXBvcnRlZCBtb2R1bGVzIGFuZCByZXNvbHZlcyB0aGUgcmVmZXJlbmNlCisg
ICAgICAgIHF1ZXJpZWQgYnkgdGhlIG9yaWdpbmFsIG1vZHVsZS4KKworICAgICAgICBUaGUgcmVz
b2x2ZUV4cG9ydCBvcGVyYXRpb24gaXMgcHVyZSBmdW5jdGlvbjsgZ2l2ZW4gYSBtb2R1bGUgcmVj
b3JkIGFuZCBhbiBleHBvcnQgbmFtZSwKKyAgICAgICAgaXQgYWx3YXlzIHJldHVybnMgdGhlIHNh
bWUgcmVzdWx0LiBTbyB3ZSBjYWNoZSByZXNvbHV0aW9uIHJlc3VsdHMgaW4gdGhlIG1vZHVsZSBy
ZWNvcmQgdG8gYXZvaWQKKyAgICAgICAgcmVwZWF0ZWQgcmVzb2x2ZUV4cG9ydCBjYWxscyB3aXRo
IHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgICAgICAgSGVyZSwgd2Ugb25seSBjYWNoZSB0aGUgY29y
cmVjdGx5IHJlc29sdmVkIHJlZmVyZW5jZXMsIHNpbmNlLAorICAgICAgICAxLiBXZSByYXJlbHkg
bG9va2VkIHVwIHRoZSBub24tY29ycmVjdGx5LXJlc29sdmVkIG9uZXMuIEluIHRoZSBsaW5raW5n
IHBoYXNlLCBhdHRlbXB0aW5nIHRvCisgICAgICAgICAgIHJlc29sdmUgbm9uLWNvcnJlY3RseS1y
ZXNvbHZlZCBvbmVzIHRocm93cyBhIHN5bnRheCBlcnJvci4gU28gb25seSBuYW1lc3BhY2Ugb2Jq
ZWN0IGNyZWF0aW9uCisgICAgICAgICAgIHBoYXNlIGRvZXMgaXQgaW4gYSBzeW50YXggdmFsaWQg
c2NyaXB0LgorICAgICAgICAyLiBUaGlzIHN0cmF0ZWd5IGxpbWl0cyB0aGUgc2l6ZSBvZiB0aGUg
Y2FjaGUgbWFwLiBUaGUgbnVtYmVyIG9mIHRoZSBjb3JyZWN0bHkgZXhwb3J0ZWQgYmluZGluZ3MK
KyAgICAgICAgICAgaXMgZGVmaW5lZCBieSB0aGUgbW9kdWxlcycgY29kZS4gU28gdGhlIHNpemUg
ZG9lcyBub3QgYmVjb21lIGluZmluaXRlbHkgbGFyZ2UuCisKKyAgICAgICAgQ3VycmVudGx5LCB0
aGUgYWxsIG1vZHVsZXMgY2Fubm90IGJlIGxpbmtlZCB0d2ljZS4gRm9yIGV4YW1wbGUsCisKKyAg
ICAgICAgICBncmFwaCAxCisKKyAgICAgICAgICAtPiAoQSkgLT4gKEIpCisKKyAgICAgICAgICBn
cmFwaCAyCisKKyAgICAgICAgICAtPiAoQykgLT4gKEEpIC0+IChCKQorCisgICAgICAgIFdlIGNh
bm5vdCB0ZXN0IHRoZSBiZWhhdmlvciBub3cgYmVjYXVzZSB3aGVuIGV4ZWN1dGluZyB0aGUgZ3Jh
cGggMiwgKEEpIGFuZCAoQikgYXJlIGFscmVhZHkgbGlua2VkLAorICAgICAgICBpdCByYWlzZXMg
YW4gZXJyb3IgaW4gdGhlIGN1cnJlbnQgbG9hZGVyIHNwZWMuIEJ1dCBpdCBzaG91bGQgYmUgYWxs
b3dlZFsxXSBzaW5jZSBpdCB3aWxsIG9jY3VyIHdoZW4KKyAgICAgICAgdGhlcmUgaXMgbXVsdGlw
bGUgbW9kdWxlIHRhZyBpbiBXZWJDb3JlLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9naXRodWIu
Y29tL3doYXR3Zy9sb2FkZXIvaXNzdWVzLzQxCisKKyAgICAgICAgKiBydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcDoKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6
SGFzaDo6aGFzaCk6CisgICAgICAgIChKU0M6OkpTTW9kdWxlUmVjb3JkOjpSZXNvbHZlUXVlcnk6
Okhhc2g6OmVxdWFsKToKKyAgICAgICAgKEpTQzo6SlNNb2R1bGVSZWNvcmQ6OmNhY2hlUmVzb2x1
dGlvbik6CisgICAgICAgIChKU0M6OlJlc29sdmVRdWVyeUhhc2g6Omhhc2gpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpSZXNvbHZlUXVlcnlIYXNoOjplcXVhbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OnJlc29sdmVFeHBvcnRMb29wKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmg6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1u
b3QtbWFrZS1hbWJpZ3VvdXMuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2Fj
aGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0EuanM6IEFkZGVkLgorICAgICAgICAqIHRl
c3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0IuanM6IEFkZGVk
LgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1
b3VzL0MuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQt
bm90LW1ha2UtYW1iaWd1b3VzL0QuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMv
Y2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL21haW4uanM6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcuanM6IEFkZGVkLgorICAgICAgICAoZnJv
bS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5zaG91bGRUaHJvdyk6CisgICAgICAgICogdGVzdHMvbW9k
dWxlcy9kaWZmZXJlbnQtdmlldy9BLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVz
L2RpZmZlcmVudC12aWV3L0IuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlm
ZmVyZW50LXZpZXcvQy5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9kaWZmZXJl
bnQtdmlldy9ELmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12
aWV3L0UuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcv
bWFpbi5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3Vv
dXMuanM6IEFkZGVkLgorICAgICAgICAoZnJvbS5zdHJpbmdfYXBwZWFyZWRfaGVyZS5zaG91bGRU
aHJvdyk6CisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQi5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQy5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRC5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5q
czogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay5qczogQWRk
ZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9BLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0IuanM6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQy5qczogQWRkZWQuCisgICAgICAg
ICogdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9ELmpzOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0UuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci5qczogQWRkZWQuCisgICAgICAgICog
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0EtcHJlLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQS5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFy
L0IuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1z
ZWUtc3Rhci9DLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxl
LXdoZW4tc2VlLXN0YXIvRC5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvbW9kdWxlcy91bmNh
Y2hlYWJsZS13aGVuLXNlZS1zdGFyL0UtcHJlLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9t
b2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS5qczogQWRkZWQuCisgICAgICAgICog
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4xLmpzOiBBZGRlZC4K
KyAgICAgICAgKiB0ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjIu
anM6IEFkZGVkLgorCiAyMDE1LTA5LTExICBTdWtvbHNhayBTYWtzaHV3b25nICA8c3Vrb2xzYWtA
Z21haWwuY29tPgogCiAgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIGZsb2F0cyBpbiBX
ZWJBc3NzZW1ibHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxl
UmVjb3JkLmNwcAppbmRleCBmYjM2NDI4ZjJhN2E3ZmNmMDFmZDJlNWUzMzMyMmVjMjVkN2NhMmU0
Li5jZWIxNmZjOGE3MGI0MDc0OTFhMDFkMzk1ZGI3N2I0OTg1NmVhYzhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJlY29yZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuY3BwCkBAIC0xNjQsNyAr
MTY0LDEzIEBAIGF1dG8gSlNNb2R1bGVSZWNvcmQ6OnJlc29sdmVJbXBvcnQoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBsb2NhbE5hbWUpCiAgICAgcmV0dXJuIGltcG9ydGVkTW9k
dWxlLT5yZXNvbHZlRXhwb3J0KGV4ZWMsIGltcG9ydEVudHJ5LmltcG9ydE5hbWUpOwogfQogCi1z
dHJ1Y3QgUmVzb2x2ZVF1ZXJ5IHsKK3N0cnVjdCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5
IHsKKyAgICBzdHJ1Y3QgSGFzaCB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFJlc29sdmVRdWVyeSYpOworICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZXNvbHZl
UXVlcnkmLCBjb25zdCBSZXNvbHZlUXVlcnkmKTsKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworICAgIH07CisKICAgICBSZXNv
bHZlUXVlcnkoSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJlY29yZCwgVW5pcXVlZFN0cmluZ0ltcGwq
IGV4cG9ydE5hbWUpCiAgICAgICAgIDogbW9kdWxlUmVjb3JkKG1vZHVsZVJlY29yZCkKICAgICAg
ICAgLCBleHBvcnROYW1lKGV4cG9ydE5hbWUpCkBAIC0yMDQsMjUgKzIxMCwzNCBAQCBzdHJ1Y3Qg
UmVzb2x2ZVF1ZXJ5IHsKICAgICBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+IGV4cG9ydE5hbWU7
CiB9OwogCi1zdHJ1Y3QgUmVzb2x2ZVF1ZXJ5SGFzaCB7Ci0gICAgc3RhdGljIHVuc2lnbmVkIGhh
c2goY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgUmVz
b2x2ZVF1ZXJ5JiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwotfTsKLQotaW5saW5lIHVuc2ln
bmVkIFJlc29sdmVRdWVyeUhhc2g6Omhhc2goY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSkKK2lu
bGluZSB1bnNpZ25lZCBKU01vZHVsZVJlY29yZDo6UmVzb2x2ZVF1ZXJ5OjpIYXNoOjpoYXNoKGNv
bnN0IFJlc29sdmVRdWVyeSYgcXVlcnkpCiB7CiAgICAgcmV0dXJuIFdURjo6UHRySGFzaDxKU01v
ZHVsZVJlY29yZCo+OjpoYXNoKHF1ZXJ5Lm1vZHVsZVJlY29yZCkgKyBJZGVudGlmaWVyUmVwSGFz
aDo6aGFzaChxdWVyeS5leHBvcnROYW1lKTsKIH0KIAotaW5saW5lIGJvb2wgUmVzb2x2ZVF1ZXJ5
SGFzaDo6ZXF1YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBsaHMsIGNvbnN0IFJlc29sdmVRdWVyeSYg
cmhzKQoraW5saW5lIGJvb2wgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdmVRdWVyeTo6SGFzaDo6ZXF1
YWwoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBsaHMsIGNvbnN0IFJlc29sdmVRdWVyeSYgcmhzKQogewog
ICAgIHJldHVybiBsaHMubW9kdWxlUmVjb3JkID09IHJocy5tb2R1bGVSZWNvcmQgJiYgbGhzLmV4
cG9ydE5hbWUgPT0gcmhzLmV4cG9ydE5hbWU7CiB9CiAKLXN0YXRpYyBKU01vZHVsZVJlY29yZDo6
UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29s
dmVRdWVyeSYgcm9vdCkKK2F1dG8gSlNNb2R1bGVSZWNvcmQ6OnRyeUdldENhY2hlZFJlc29sdXRp
b24oVW5pcXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUpIC0+IE9wdGlvbmFsPFJlc29sdXRpb24+
Cit7CisgICAgY29uc3QgYXV0byBpdGVyYXRvciA9IG1fcmVzb2x1dGlvbkNhY2hlLmZpbmQoZXhw
b3J0TmFtZSk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcmVzb2x1dGlvbkNhY2hlLmVuZCgpKQor
ICAgICAgICByZXR1cm4gTnVsbG9wdDsKKyAgICByZXR1cm4gT3B0aW9uYWw8UmVzb2x1dGlvbj4o
aXRlcmF0b3ItPnZhbHVlKTsKK30KKwordm9pZCBKU01vZHVsZVJlY29yZDo6Y2FjaGVSZXNvbHV0
aW9uKFVuaXF1ZWRTdHJpbmdJbXBsKiBleHBvcnROYW1lLCBjb25zdCBSZXNvbHV0aW9uJiByZXNv
bHV0aW9uKQoreworICAgIG1fcmVzb2x1dGlvbkNhY2hlLmFkZChleHBvcnROYW1lLCByZXNvbHV0
aW9uKTsKK30KKworYXV0byBKU01vZHVsZVJlY29yZDo6cmVzb2x2ZUV4cG9ydEltcGwoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBSZXNvbHZlUXVlcnkmIHJvb3QpIC0+IFJlc29sdXRpb24KIHsKICAg
ICAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNi4wLyNzZWMt
cmVzb2x2ZWV4cG9ydAorCisgICAgLy8gSG93IHRvIGF2b2lkIEMrKyByZWN1cnNpb24gaW4gdGhp
cyBmdW5jdGlvbjoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGF2b2lkcyBDKysgcmVjdXJzaW9uIG9m
IHRoZSBuYWl2ZSBSZXNvbHZlRXhwb3J0IGltcGxlbWVudGF0aW9uLgogICAgIC8vIEZsYXR0ZW4g
dGhlIHJlY3Vyc2lvbiB0byB0aGUgbG9vcCB3aXRoIHRoZSB0YXNrIHF1ZXVlIGFuZCBmcmFtZXMu
CiAgICAgLy8KQEAgLTI3Nyw4ICsyOTIsMjQxIEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVz
b2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAg
ICAgLy8gVG8gZm9sbG93IHRoZSByZXF1aXJlbWVudCBzdHJpY3RseSwgaW4gdGhpcyBpbXBsZW1l
bnRhdGlvbiwgd2Uga2VlcCB0aGUgbG9jYWwgcmVzb2x1dGlvbiByZXN1bHQgdG8gcHJvZHVjZSB0
aGUKICAgICAvLyBjb3JyZWN0IHJlc3VsdCB1bmRlciB0aGUgYWJvdmUgY29tcGxleCBjYXNlcy4K
IAotICAgIHVzaW5nIFJlc29sdXRpb24gPSBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbjsKLSAg
ICB0eXBlZGVmIFdURjo6SGFzaFNldDxSZXNvbHZlUXVlcnksIFJlc29sdmVRdWVyeUhhc2gsIFdU
Rjo6Q3VzdG9tSGFzaFRyYWl0czxSZXNvbHZlUXVlcnk+PiBSZXNvbHZlU2V0OworICAgIC8vIENh
Y2hpbmcgc3RyYXRlZ3k6CisgICAgLy8gVGhlIHJlc29sdmVFeHBvcnQgb3BlcmF0aW9uIGlzIGZy
ZXF1ZW50bHkgY2FsbGVkLiBTbyBjYWNoaW5nIHJlc3VsdHMgaXMgaW1wb3J0YW50LgorICAgIC8v
IFdlIG9ic2VydmUgdGhlIGZvbGxvd2luZyBhc3BlY3RzIGFuZCBiYXNlZCBvbiB0aGVtIGNvbnN0
cnVjdCB0aGUgY2FjaGluZyBzdHJhdGVneS4KKyAgICAvLyBIZXJlLCB3ZSBhdHRlbXB0IHRvIGNh
Y2hlIHRoZSByZXNvbHV0aW9uIGJ5IGNvbnN0cnVjdGluZyB0aGUgbWFwIGluIG1vZHVsZSByZWNv
cmRzLgorICAgIC8vIFRoYXQgbWVhbnMgIE1vZHVsZSAtPiBFeHBvcnROYW1lIC0+IE1heWJlPFJl
c29sdXRpb24+LgorICAgIC8vIFRlY2huaWNhbGx5LCB0aGUgYWxsIEpTTW9kdWxlUmVjb3JkIGhh
dmUgdGhlIE1hcDxFeHBvcnROYW1lLCBSZXNvbHV0aW9uPiBmb3IgY2FjaGluZy4KKyAgICAvLwor
ICAgIC8vIFRoZSBpbXBvcnRhbnQgb2JzZXJ2YXRpb24gaXMgdGhhdCwKKyAgICAvLworICAgIC8v
ICAtICpjYWNoZWFibGUqIG1lYW5zIHRoYXQgd2UgY2FuIGNhY2hlIHRoZSBnYWluIHJlc3VsdCBi
ZWNhdXNlIHRoZSByZXN1bHQgaXMgdGhlIHNhbWUgdG8gdGhlIHJlc3VsdAorICAgIC8vICAgIHRo
YXQgd2lsbCBiZSBwcm9kdWNlZCB3aGVuIHN0YXJ0aW5nIGZyb20gdGhpcyBub2RlLiBUaGlzIG1l
YW5zIHRoYXQgdGhlIGZvbGxvd2luZyAyIGlzIHRoZSBzYW1lLgorICAgIC8vICAgICAgMS4gVGhl
IHJlc29sdmluZyByb3V0ZSBmcm9tIHRoaXMgbm9kZSB3aGVuIHRyYWNpbmcgdGhlIG5vZGVzIGZy
b20gdGhlIG90aGVyIHN0YXJ0aW5nIG5vZGUuCisgICAgLy8gICAgICAyLiBUaGUgcmVzb2x2aW5n
IHJvdXRlIGZyb20gdGhpcyBub2RlIHdoZW4gc3RhcnRpbmcgZnJvbSB0aGlzIG5vZGUuCisgICAg
Ly8KKyAgICAvLyAgICBIZXJlLCB3ZSBkZWZpbmUgdGhlIHJlc292bGluZyByb3V0ZS4gV2UgcmVw
cmVzZW50IFs/XSBhcyB0aGUgbW9kdWxlIHRoYXQgaGFzIHRoZSBzZWFyY2hlZCBsb2NhbCBiaW5k
aW5nLgorICAgIC8vICAgIEFuZCAoPykgYXMgdGhlIG1vZHVsZSB3aXRob3V0IHRoZSBsb2NhbCBi
aW5kaW5nLgorICAgIC8vCisgICAgLy8gICAgICBAIC0+IChBKSAtPiAoQikgLT4gW0NdCisgICAg
Ly8KKyAgICAvLyAgICBXZSBsaXN0IHRoZSByZXNvbHZpbmcgcm91dGUgZm9yIGVhY2ggbm9kZS4K
KyAgICAvLworICAgIC8vICAgIChBKTogKEEpIC0+IChCKSAtPiBbQ10KKyAgICAvLyAgICAoQik6
IChCKSAtPiBbQ10KKyAgICAvLyAgICBbQ106IFtDXQorICAgIC8vCisgICAgLy8gICAgSW4gdGhp
cyBjYXNlLCBpZiB3ZSBzdGFydCB0aGUgdHJhY2luZyBmcm9tIChCKSwgdGhlIHJlc29sdmluZyBy
b3V0ZSBiZWNvbWVzIChCKSAtPiBbQ10uCisgICAgLy8gICAgU28gdGhpcyBpcyB0aGUgc2FtZS4g
QXQgdGhhdCB0aW1lLCB3ZSBjYW4gc2F5IChCKSBpcyBjYWNoZWFibGUgaW4gdGhlIGZpcnN0IHRy
YWNpbmcuCisgICAgLy8KKyAgICAvLyAgLSBDYWNoZWFiaWxpdHkgZGVwZW5kcyBvbiB0aGUgcmVz
b2x2aW5nIHJvdXRlIGZyb20gdGhpcyBub2RlLiBOb3QgZGVwZW5kIG9uIHRoZSBub2RlLgorICAg
IC8vICAgIFRoZSBub2RlIGlzIHNvbWV0aW1lcyBjYWNoZWFibGUuIEFuZCBzb21ldGltZXMgbm9u
LWNhY2hlYWJsZS4KKyAgICAvLyAgICBUaGUgcmVzb2x2aW5nIHJvdXRlIGRlcGVuZHMgb24gdGhl
IHN0YXJ0aW5nIG5vZGUuCisgICAgLy8KKyAgICAvLyAxLiBUaGUgc3RhcnRpbmcgcG9pbnQgaXMg
YWx3YXlzIGNhY2hlYWJsZS4KKyAgICAvLworICAgIC8vIEJ5IHRoZSBkZWZpbml0aW9uIG9mIHRo
ZSBjYWNoZWFibGUsIHRoZSBzdGFydGluZyBwb2ludCBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAg
IC8vCisgICAgLy8gID0+IFRoZSBzdGFydGluZyBwb2ludCBpcyBhbHdheXMgY2FjaGVhYmxlLgor
ICAgIC8vCisgICAgLy8gMi4gTG9jYWwgZXhwb3J0ZWQgYmluZGluZ3MgYXJlIGFsd2F5cyBjYWNo
ZWFibGUgaW4gdGhlIG5vZGUuCisgICAgLy8KKyAgICAvLyAgQCAtPiAoQSkgLT4gW0JdCisgICAg
Ly8KKyAgICAvLyAgSW4gdGhlIGFib3ZlIGNhc2UsIHdlIGNhbiBzZWUgdGhlIFtCXSBhcyBjYWNo
ZWFibGUuCisgICAgLy8gIFRoaXMgaXMgYmVjYXVzZSB3aGVuIHN0YXJ0aW5nIGZyb20gW0JdIG5v
ZGUsIHdlIGltbWVkaWF0ZWx5IHJlc29sdmUgd2l0aCB0aGUgbG9jYWwgYmluZGluZy4KKyAgICAv
LyAgU28gdGhlIHJlc29sdmluZyByb3V0ZSBmcm9tIFtCXSBkb2VzIG5vdCBkZXBlbmQgb24gdGhl
IHN0YXJ0aW5nIHBvaW50LgorICAgIC8vCisgICAgLy8gID0+IFRoZSBtb2R1bGUgdGhhdCBoYXMg
dGhlIHNlYXJjaGVkIGxvY2FsIHJlc29sdXRpb24gaXMgYWx3YXlzIGNhY2hlYWJsZS4KKyAgICAv
LworICAgIC8vIDMuIEluZGlyZWN0IGV4cG9ydGVkIGJpbmRpbmdzIGFyZSBjYWNoZWFibGUgaWYg
dGhlcmUgaXMgb25seSBub24tc3RhciBsaW5rcy4KKyAgICAvLworICAgIC8vICBJZiB0aGVyZSBh
cmUgb25seSBub24tc3RhciBsaW5rcywgaXQgbWVhbnMgdGhhdCB0aGVyZSBpcyAqbm8gYnJhbmNo
KiBpbiB0aGUgbW9kdWxlIGRlcGVuZGVuY3kgZ3JhcGguCisgICAgLy8gIFRoaXMgKm5vIGJyYW5j
aCogZmVhdHVyZSBtYWtlcyB0aGUgYWxsIG1vZHVsZSBjYWNoYWJsZS4KKyAgICAvLworICAgIC8v
ICBAIC0+IChBKSAtLT4gKEIpIC0+IFtDXSAtPiAoRCkgLT4gKEUpIC0rCisgICAgLy8gICAgICAg
ICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAg
ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgLy8KKyAgICAvLyAgV2hlbiBzdGFydGluZyBmcm9t
IEAsIFtDXSB3aWxsIGJlIGZvdW5kIGFzIHRoZSBtb2R1bGUgcmVzb2x2aW5nIHRoZSBnaXZlbiBi
aW5kaW5nLgorICAgIC8vICBJbiB0aGlzIGNhc2UsIChCKSBjYW4gY2FjaGUgdGhpcyByZXNvbHV0
aW9uLiBTaW5jZSB0aGUgcmVzb2x2aW5nIHJvdXRlIGlzIHRoZSBzYW1lIHRvIHRoZSBvbmUgd2hl
bgorICAgIC8vICBzdGFydGluZyBmcm9tIChCKS4gQWZ0ZXIgY2FjaGluZyB0aGUgYWJvdmUgcmVz
dWx0LCB3ZSBhdHRlbXB0IHRvIHJlc29sdmUgdGhlIHNhbWUgYmluZGluZyBmcm9tIChEKS4KKyAg
ICAvLworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQAorICAgIC8vICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdgorICAgIC8vICBAIC0+IChBKSAtLT4gKEIpIC0+IFtDXSAtPiAoRCkgLT4gKEUpIC0r
CisgICAgLy8gICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAv
LyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgIC8vICAgICAg
ICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgLy8KKyAgICAvLyAgSW4g
dGhpcyBjYXNlLCB3ZSBjYW4gdXNlIHRoZSAoQikncyBjYWNoZWQgcmVzdWx0LiBBbmQgKEUpIGNh
biBiZSBjYWNoZWQuCisgICAgLy8KKyAgICAvLyAgICAoRSk6IFRoZSByZXNvbHZpbmcgcm91dGUg
aXMgbm93IChFKSAtPiAoQikgLT4gW0NdLiBUaGF0IGlzIHRoZSBzYW1lIHdoZW4gc3RhcnRpbmcg
ZnJvbSAoRSkuCisgICAgLy8KKyAgICAvLyAgTm8gYnJhbmNoaW5nIG1ha2VzIHRoYXQgdGhlIHBy
b2JsZW1hdGljICpvbmNlLXZpc2l0ZWQqIG5vZGUgY2Fubm90IGJlIHNlZW4uCisgICAgLy8gIFRo
ZSAqb25jZS12aXNpdGVkKiBub2RlIG1ha2VzIHRoZSByZXNvbHZpbmcgcm91dGUgY2hhbmdlZCBz
aW5jZSB3aGVuIHdlIHNlZSB0aGUgKm9uY2UtdmlzaXRlZCogbm9kZSwKKyAgICAvLyAgd2Ugc3Rv
cCB0cmFjaW5nIHRoaXMuCisgICAgLy8KKyAgICAvLyAgSW4gdGhlcmUgaXMgbm8gc3RhciBsaW5r
cyBhbmQgaWYgd2UgbG9vayAqb25jZS12aXNpdGVkKiBub2RlIHVuZGVyIG5vIGJyYW5jaGluZyBn
cmFwaCwgKm9uY2UtdmlzaXRlZCoKKyAgICAvLyAgbm9kZSBjYW5ub3QgcmVzb2x2ZSB0aGUgcmVx
dWVzdGVkIGJpbmRpbmcuIElmIHRoZSAqb25jZS12aXNpdGVkKiBub2RlIGNhbiByZXNvbHZlIHRo
ZSBiaW5kaW5nLCB3ZQorICAgIC8vICBzaG91bGQgYWxyZWFkeSBmaW5pc2ggdGhlIHJlc29sdXRp
b24gd2hlbiByZWFjaGluZyB0aGlzICpvbmNlLXZpc2l0ZWQqIG5vZGUuCisgICAgLy8KKyAgICAv
LyAgPT4gSWYgd2UgZG9uJ3QgZm9sbG93IGFueSBzdGFyIGxpbmtzIGR1cmluZyB0aGUgcmVzb2x1
dGlvbiwgd2UgY2FuIHNlZSBhbGwgdGhlIHRyYWNlZCBub2RlcyBhcmUgY2FjaGVhYmxlLgorICAg
IC8vCisgICAgLy8gNC4gT25jZSB3ZSBmb2xsb3cgc3RhciBsaW5rcywgd2Ugc2hvdWxkIG5vdCBy
ZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gdGhlIGNhY2hlIGFuZCBzaG91bGQgbm90IGNhY2hlLgor
ICAgIC8vCisgICAgLy8gIFN0YXIgbGlua3MgYXJlIG9ubHkgdGhlIHdheSB0byBpbnRyb2R1Y2Ug
YnJhbmNoLgorICAgIC8vICBPbmNlIHdlIGZvbGxvdyB0aGUgc3RhciBsaW5rcyBkdXJpbmcgdGhl
IHJlc29sdXRpb24sIHdlIGNhbm5vdCBjYWNoZSBuYWl2ZWx5LgorICAgIC8vICBUaGlzIGlzIGJl
Y2F1c2UgdGhlIGNhY2hlYWJpbGl0eSBkZXBlbmRzIG9uIHRoZSByZXNvbHZpbmcgcm91dGUuIEFu
ZCBicmFuY2hpbmcgcHJvZHVjZXMgdGhlIHByb2JsZW1hdGljICpvbmNlLXZpc2l0ZWQqCisgICAg
Ly8gIG5vZGVzLiBTaW5jZSB3ZSBkb24ndCBmb2xsb3cgdGhlICpvbmNlLXZpc2l0ZWQqIG5vZGUs
IHRoZSByZXNvbHZpbmcgcm91dGUgZnJvbSB0aGUgbm9kZSBiZWNvbWVzIGRpZmZlcmVudCBmcm9t
CisgICAgLy8gIHRoZSByZXNvbHZpbmcgcm91dGUgd2hlbiBzdGFydGluZyBmcm9tIHRoaXMgbm9k
ZS4KKyAgICAvLworICAgIC8vICBUaGUgc3RhciBsaW5rIG1ha2VzIHRoZSBub2RlIGNvbmRpdGlv
bmFsLgorICAgIC8vCisgICAgLy8gICAgICAgKEEpICotLT4gW0JdCisgICAgLy8gICAgICAgICAg
ICB8ICAgIF4KKyAgICAvLyAgICAgICAgICAgIHwgICAgfAorICAgIC8vICAgICAgICAgICAgKy0+
IChDKSAqLT4gKEQpCisgICAgLy8gICAgICAgICAgICAgICAgIF4KKyAgICAvLyAgICAgICAgICAg
ICAgICAgfAorICAgIC8vICAgICAgICAgICAgICAgIChFKQorICAgIC8vICAgICAgICAgICAgICAg
ICBeCisgICAgLy8gICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICAgQAor
ICAgIC8vCisgICAgLy8gIFdoZW4gc3RhcnRpbmcgZnJvbSBALAorICAgIC8vCisgICAgLy8gICAg
MS4gKEUpIHdpbGwgZm9sbG93IHRoZSBsaW5rIHRvIChDKS4KKyAgICAvLyAgICAyLiBMb29raW5n
IChDKSwgaXQgaGFzIHN0YXIgbGluaywgYnV0IGl0IGFsc28gaGFzIHRoZSBpbmRpcmVjdCBsaW5r
LiBTbyBvbmNlIHdlIGZvbGxvdyB0aGUgbGluayB0byBbQl0uCisgICAgLy8gICAgMy4gW0JdIGlz
IHJlc29sdmVkLiBBbmQgaXQgaXMgY2FjaGVhYmxlIGJ5IDEuCisgICAgLy8gICAgNC4gKEMpIGlz
IHJlc29sdmVkLiBBbmQgc2luY2Ugd2UgZG9uJ3QgZm9sbG93IGFueSBzdGFyIGxpbmsgZHVyaW5n
IHRoaXMsIChDKSBpcyBjYWNoZWFibGUuCisgICAgLy8gICAgNS4gKEUpIGlzIGNhY2hlYWJsZSBi
eSBkZWZpbml0aW9uLgorICAgIC8vCisgICAgLy8gIEJ1dCwgaW4gdGhlIGZvbGxvd2luZywKKyAg
ICAvLworICAgIC8vICBAIC0+IChBKSAqLS0+IFtCXQorICAgIC8vICAgICAgICAgICAgfCAgICBe
CisgICAgLy8gICAgICAgICAgICB8ICAgIHwKKyAgICAvLyAgICAgICAgICAgICstPiAoQykgKi0+
IChEKQorICAgIC8vICAgICAgICAgICAgICAgICBeCisgICAgLy8gICAgICAgICAgICAgICAgIHwK
KyAgICAvLyAgICAgICAgICAgICAgICAoRSkKKyAgICAvLworICAgIC8vICAgIDEuIChBKSB3aWxs
IGZvbGxvdyB0aGUgc3RhciBsaW5rcy4KKyAgICAvLyAgICAyLiBbQl0gaXMgcmVzb2x2ZWQgJiBj
YWNoZWFibGUgYnkgZGVmaW5pdGlvbi4KKyAgICAvLyAgICAzLiBJbiAoQyksIHdlIGF0dGVtcHQg
dG8gZm9sbG93IHRoZSBsaW5rIHRvIFtCXSwgYnV0IHdlIGNhbm5vdCBzaW5jZSBbQl0gaXMgYWxy
ZWFkeSAqb25jZS12aXNpdGVkKi4KKyAgICAvLyAgICA0LiBTbywgd2UgZmFsbCBiYWNrIHRvIHRo
ZSBzdGFyIGxpbmsgdG8gKEQpLgorICAgIC8vICAgIDUuIChEKSBpcyBub3QgcmVzb2x2ZWQuIFNv
IChDKSBpcyBub3QgcmVzb2x2ZWQuCisgICAgLy8KKyAgICAvLyAgSW4gdGhlIHByZXZpb3VzIG9u
ZSwgKEMpIGlzIGNhY2hlYWJsZS4gQnV0IGluIHRoZSBhYm92ZSByb3V0ZSwgKEMpIGJlY29tZXMg
dW5jYWNoZWFibGUuCisgICAgLy8gIFNvIGluIHRoZSBzZWNvbmQgdHJpYWwsIHdlIHNob3VsZCBu
b3QgcmV0cmlldmUgdGhlIHJlc3VsdCBmcm9tIChDKSB3aGVuIHZpc2l0aW5nIChDKS4KKyAgICAv
LyAgSGVyZSwgd2UgY2FuIG9ic2VydmUgdGhlIG9uZSB0aGluZy4gSW4gc29tZSBzaXR1YXRpb24s
IHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIGNhY2hlZCByZXN1bHQKKyAgICAvLyAgZnJvbSB0
aGUgbm9kZS4KKyAgICAvLworICAgIC8vICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgZXhwbGFpbnMg
d2hlbiB3ZSBzaG91bGQgbm90IHJldHJpZXZlIHRoZSBjYWNoZSBhbmQgY2FjaGUgdGhlIHJlc3Vs
dC4KKyAgICAvLworICAgIC8vICAgICAgICAgICAgICAgKy0tLS0+IChEKSAtLS0tLS0rCisgICAg
Ly8gICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAg
IHwgICAgICAgICAgICAgICAgdgorICAgIC8vICAgICAgKEEpICotLS0tKy0tLS0+IChCKSAtLS0+
IFtDXQorICAgIC8vICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgLy8gICAgICAgICAgICAg
ICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgQAorICAgIC8vCisgICAg
Ly8gIFdoZW4gc3RhcnRpbmcgZnJvbSAoQiksIHdlIGZpbmQgW0NdLiBJbiB0aGlzIHJlc29sdmlu
ZyByb3V0ZSwgd2UgZG9uJ3QgZmluZCBhbnkgc3RhciBsaW5rLgorICAgIC8vICBBbmQgYnkgZGVm
aW5pdGlvbiwgKEIpIGFuZCBbQ10gYXJlIGNhY2hhYmxlLiAoQikgaXMgdGhlIHN0YXJ0aW5nIHBv
aW50LiBBbmQgW0NdIGhhcyB0aGUgbG9jYWwgYmluZGluZy4KKyAgICAvLworICAgIC8vICAgICAg
ICAgICAgICAgKy0tLS0+IChEKSAtLS0tLS0rCisgICAgLy8gICAgICAgICAgICAgICB8ICAgICAg
ICAgICAgICAgIHwKKyAgICAvLyAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgdgorICAg
IC8vICBALT4gKEEpICotLS0tKy0tLS0+IChCKSAtLS0+IFtDXQorICAgIC8vCisgICAgLy8gIEJ1
dCB3aGVuIHN0YXJ0aW5nIGZyb20gKEEpLCB3ZSBzaG91bGQgbm90IGdldCB0aGUgdmFsdWUgZnJv
bSB0aGUgY2FjaGUuIEJlY2F1c2UsCisgICAgLy8KKyAgICAvLyAgICAxLiBXaGVuIGxvb2tpbmcg
KEQpLCB3ZSByZWFjaCBbQ10gYW5kIG1ha2UgYm90aCByZXNvbHZlZC4KKyAgICAvLyAgICAyLiBX
aGVuIGxvb2tpbmcgKEIpLCBpZiB3ZSByZXRyaWV2ZWQgdGhlIGxhc3QgY2FjaGUgZnJvbSAoQiks
IChCKSBiZWNvbWVzIHJlc29sdmVkLgorICAgIC8vICAgIDMuIEJ1dCBhY3R1YWxseSwgKEIpIGlz
IG5vdC1mb3VuZCBpbiB0aGlzIHRyaWFsIGJlY2F1c2UgKEMpIGlzIGFscmVhZHkgKm9uY2Utdmlz
aXRlZCouCisgICAgLy8gICAgNC4gSWYgd2UgYWNjaWRlbnRhbGx5IG1ha2UgKEIpIHJlc29sdmVk
LCAoQSkgYmVjb21lcyBhbWJpZ3VvdXMuIEJ1dCB0aGUgY29ycmVjdCBhbnN3ZXIgaXMgcmVzb2x2
ZWQuCisgICAgLy8KKyAgICAvLyAgV2h5IGlzIHRoaXMgcHJvYmxlbSBjYXVzZWQ/IFRoaXMgaXMg
YmVjYXVzZSB0aGUgKm9uY2UtdmlzaXRlZCogbm9kZSBtYWtlcyB0aGUgcmVzdWx0IG5vdC1mb3Vu
ZC4KKyAgICAvLyAgSW4gdGhlIHNlY29uZCB0cmlhbCwgKEIpIC0+IFtDXSByZXN1bHQgaXMgY2hh
bmdlZCBmcm9tIHJlc29sdmVkIHRvIG5vdC1mb3VuZC4KKyAgICAvLworICAgIC8vICBXaGVuIGRv
ZXMgdGhpcyBiZWNvbWUgYSBwcm9ibGVtPyBJZiB0aGUgc3RhdHVzIG9mIHRoZSAqb25jZS12aXNp
dGVkKiBub2RlIGdyb3VwIGlzIHJlc29sdmVkLAorICAgIC8vICBjaGFuZ2luZyB0aGUgcmVzdWx0
IHRvIG5vdC1mb3VuZCBtYWtlcyB0aGUgcmVzdWx0IGNoYW5nZWQuCisgICAgLy8KKyAgICAvLyAg
VGhpcyBwcm9ibGVtIGRvZXMgbm90IGhhcHBlbiB3aGVuIHdlIGRvbid0IHNlZSBhbnkgc3RhciBs
aW5rIHlldC4gTm93LCBjb25zaWRlciB0aGUgbWluaW11bSBjYXNlLgorICAgIC8vCisgICAgLy8g
IEAtPiAoQSkgLT4gWyBzb21lIGdyYXBoIF0KKyAgICAvLyAgICAgICBeICAgICAgICAgICAgfAor
ICAgIC8vICAgICAgIHwgICAgICAgICAgICB8CisgICAgLy8gICAgICAgKy0tLS0tLS0tLS0tLSsK
KyAgICAvLworICAgIC8vICBJbiAoQSksIHdlIGRvbid0IHNlZSBhbnkgc3RhciBsaW5rIHlldC4g
U28gd2UgY2FuIHNheSB0aGF0IGFsbCB0aGUgdmlzaXRlZCBub2RlcyBkb2VzIG5vdCBoYXZlIGFu
eSBsb2NhbAorICAgIC8vICByZXNvbHV0aW9uLiBCZWNhdXNlIGlmIHRoZXkgaGF2ZSB0aGUgcmVz
b2x1dGlvbiwgd2Ugc2hvdWxkIGFscmVhZHkgZmluaXNoIHRoZSB0cmFjaW5nLgorICAgIC8vCisg
ICAgLy8gIEFuZCBldmVuIGlmIHRoZSBzb21lIGdyYXBoIHdpbGwgc2VlIHRoZSAqb25jZS12aXNp
dGVkKiBub2RlIChpbiB0aGlzIGNhc2UsIChBKSksIHRoYXQgZG9lcyBub3QgYWZmZWN0IHRoZQor
ICAgIC8vICByZXN1bHQgb2YgdGhlIHJlc29sdXRpb24uIEJlY2F1c2UgZXZlbiBpZiB3ZSBmb2xs
b3cgdGhlIGxpbmsgdG8gKEEpIG9yIG5vdCBmb2xsb3cgdGhlIGxpbmsgdG8gKEEpLCB0aGUgc3Rh
dHVzCisgICAgLy8gIG9mIHRoZSBsaW5rIGlzIGFsd2F5cyBub3QtZm91bmQgc2luY2UgKEEpIGRv
ZXMgbm90IGhhdmUgYW55IGxvY2F0aW9uIHJlc29sdXRpb24uCisgICAgLy8gIEluIHRoZSBhYm92
ZSBjYXNlLCB3ZSBjYW4gdXNlIHRoZSByZXN1bHQgb2YgdGhlIFtzb21lIGdyYXBoXS4KKyAgICAv
LworICAgIC8vICBTbywgd2UgY2FuIHNheSB0aGF0LAorICAgIC8vCisgICAgLy8gID0+IE9uY2Ug
d2UgZm9sbG93IHN0YXIgbGlua3MsIHdlIHNob3VsZCBub3QgcmV0cmlldmUgdGhlIHJlc3VsdCBm
cm9tIHRoZSBjYWNoZSBhbmQgc2hvdWxkIG5vdCBjYWNoZS4KKyAgICAvLworICAgIC8vIDUuIE9u
Y2Ugd2Ugc2VlIHRoZSBzdGFyIGxpbmtzLCBldmVuIGlmIGl0IGRvZXMgbm90IHVzZWQgeWV0LCB3
ZSBzaG91bGQgZGlzYWJsZSBjYWNoaW5nLgorICAgIC8vCisgICAgLy8gIEFuZCB0aGVyZSBpcyBh
bm90aGVyIGVkZ2UgY2FzZS4KKyAgICAvLworICAgIC8vCisgICAgLy8gICAgICAgKy0tLS0tLS0t
LS0tLS0rCisgICAgLy8gICAgICAgfCAgICAgICAgICAgICB8CisgICAgLy8gICAgICAgdiAgICAg
ICAgICAgICB8CisgICAgLy8gICAgICAoQSkgLT4gKEIpIC0+IChDKSAqLT4gW0VdCisgICAgLy8g
ICAgICAgKiAgICAgICAgICAgICBeCisgICAgLy8gICAgICAgfCAgICAgICAgICAgICB8CisgICAg
Ly8gICAgICAgdiAgICAgICAgICAgICBACisgICAgLy8gICAgICBbRF0KKyAgICAvLworICAgIC8v
ICBJbiB0aGUgYWJvdmUgY2FzZSwgKEMpIHdpbGwgYmUgcmVzb2x2ZWQgd2l0aCBbRF0uCisgICAg
Ly8gIChDKSB3aWxsIHNlZSAoQSkgYW5kIChBKSBnaXZlcyB1cCBpbiAoQSkgLT4gKEIpIC0+IChD
KSByb3V0ZS4gU28sIChBKSB3aWxsIGZhbGxiYWNrIHRvIFtEXS4KKyAgICAvLworICAgIC8vICAg
ICAgICstLS0tLS0tLS0tLS0tKworICAgIC8vICAgICAgIHwgICAgICAgICAgICAgfAorICAgIC8v
ICAgICAgIHYgICAgICAgICAgICAgfAorICAgIC8vICBALT4gKEEpIC0+IChCKSAtPiAoQykgKi0+
IFtFXQorICAgIC8vICAgICAgICoKKyAgICAvLyAgICAgICB8CisgICAgLy8gICAgICAgdgorICAg
IC8vICAgICAgW0RdCisgICAgLy8KKyAgICAvLyAgQnV0IGluIHRoaXMgY2FzZSwgKEEpIHdpbGwg
YmUgcmVzb2x2ZWQgd2l0aCBbRV0gKG5vdCBbRF0pLgorICAgIC8vICAoQykgd2lsbCBhdHRlbXB0
IHRvIGZvbGxvdyB0aGUgbGluayB0byAoQSksIGJ1dCBpdCBmYWlscy4KKyAgICAvLyAgU28gKEMp
IHdpbGwgZmFsbGJhY2sgdG8gdGhlIHN0YXIgbGluayBhbmQgZm91bmQgW0VdLiBJbiB0aGlzIHNl
bmFyaW8sCisgICAgLy8gIChDKSBpcyBub3cgcmVzb2x2ZWQgd2l0aCBbRV0ncyByZXN1bHQuCisg
ICAgLy8KKyAgICAvLyAgVGhlIGNhdXNlIG9mIHRoaXMgcHJvYmxlbSBpcyBhbHNvIHRoZSBzYW1l
IHRvIDQuCisgICAgLy8gIEluIHRoZSBsYXR0ZXIgY2FzZSwgd2hlbiBsb29raW5nIChDKSwgd2Ug
Y2Fubm90IHVzZSB0aGUgY2FjaGVkIHJlc3VsdCBpbiAoQykuCisgICAgLy8gIEJlY2F1c2UgdGhl
IGNhY2hlZCByZXN1bHQgb2YgKEMpIGRlcGVuZHMgb24gdGhlICpvbmNlLXZpc2l0ZWQqIG5vZGUg
KEEpIGFuZAorICAgIC8vICAoQSkgaGFzIHRoZSBmYWxsYmFjayBzeXN0ZW0gd2l0aCB0aGUgc3Rh
ciBsaW5rLgorICAgIC8vICBJbiB0aGUgbGF0dGVyIHRyaWFsLCB3ZSBub3cgYXNzdW1lIHRoYXQg
KEEpJ3Mgc3RhdHVzIGlzIG5vdC1mb3VuZC4KKyAgICAvLyAgQnV0LCBhY3R1YWxseSwgaW4gdGhl
IGZvcm1lciB0cmlhbCwgKEEpJ3Mgc3RhdHVzIGJlY29tZXMgcmVzb2x2ZWQgZHVlIHRvIHRoZSBm
YWxsYmFjayB0byB0aGUgW0RdLgorICAgIC8vCisgICAgLy8gIFRvIGF2b2lkIHRoaXMsIG9uY2Ug
d2Ugc2VlIHRoZSBzdGFyIGxpbmtzLCBldmVuIGlmIGl0IGRvZXMgbm90IHVzZWQgeWV0LCB3ZSBz
aG91bGQgZGlzYWJsZSBjYWNoaW5nLgorICAgIC8vCisgICAgLy8gID0+IE9uY2Ugd2Ugc2VlIHRo
ZSBzdGFyIGxpbmtzLCBldmVuIGlmIGl0IGRvZXMgbm90IHVzZWQgeWV0LCB3ZSBzaG91bGQgZGlz
YWJsZSBjYWNoaW5nLgorICAgIC8vCisgICAgLy8gVG8gc3VtbWFyaXplIHRoZSBvYnNlcnZhdGlv
bi4KKyAgICAvLworICAgIC8vICA9PiBUaGUgc3RhcnRpbmcgcG9pbnQgaXMgYWx3YXlzIGNhY2hl
YWJsZS4KKyAgICAvLyAgPT4gVGhlIG1vZHVsZSB0aGF0IGhhcyBsb2NhbCByZXNvbHV0aW9uIGlz
IGFsd2F5cyBjYWNoZWFibGUuCisgICAgLy8gID0+IElmIHdlIGRvbid0IGZvbGxvdyBhbnkgc3Rh
ciBsaW5rcyBkdXJpbmcgdGhlIHJlc29sdXRpb24sIHdlIGNhbiBzZWUgYWxsIHRoZSB0cmFjZWQg
bm9kZXMgYXJlIGNhY2hlYWJsZS4KKyAgICAvLyAgPT4gT25jZSB3ZSBmb2xsb3cgc3RhciBsaW5r
cywgd2Ugc2hvdWxkIG5vdCByZXRyaWV2ZSB0aGUgcmVzdWx0IGZyb20gdGhlIGNhY2hlIGFuZCBz
aG91bGQgbm90IGNhY2hlIHRoZSByZXN1bHQuCisgICAgLy8gID0+IE9uY2Ugd2Ugc2VlIHRoZSBz
dGFyIGxpbmtzLCBldmVuIGlmIGl0IGRvZXMgbm90IHVzZWQgeWV0LCB3ZSBzaG91bGQgZGlzYWJs
ZSBjYWNoaW5nLgorCisgICAgdHlwZWRlZiBXVEY6Okhhc2hTZXQ8UmVzb2x2ZVF1ZXJ5LCBSZXNv
bHZlUXVlcnk6Okhhc2gsIFdURjo6Q3VzdG9tSGFzaFRyYWl0czxSZXNvbHZlUXVlcnk+PiBSZXNv
bHZlU2V0OwogICAgIGVudW0gY2xhc3MgVHlwZSB7IFF1ZXJ5LCBJbmRpcmVjdEZhbGxiYWNrLCBH
YXRoZXJTdGFycyB9OwogICAgIHN0cnVjdCBUYXNrIHsKICAgICAgICAgUmVzb2x2ZVF1ZXJ5IHF1
ZXJ5OwpAQCAtMjg4LDggKzUzNiwxMSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRp
b24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgIFZl
Y3RvcjxUYXNrLCA4PiBwZW5kaW5nVGFza3M7CiAgICAgUmVzb2x2ZVNldCByZXNvbHZlU2V0Owog
ICAgIEhhc2hTZXQ8SlNNb2R1bGVSZWNvcmQqPiBzdGFyU2V0OworCiAgICAgVmVjdG9yPFJlc29s
dXRpb24sIDg+IGZyYW1lczsKIAorICAgIGJvb2wgZm91bmRTdGFyTGlua3MgPSBmYWxzZTsKKwog
ICAgIGZyYW1lcy5hcHBlbmQoUmVzb2x1dGlvbjo6bm90Rm91bmQoKSk7CiAKICAgICAvLyBDYWxs
IHdoZW4gdGhlIHF1ZXJ5IGlzIG5vdCByZXNvbHZlZCBpbiB0aGUgY3VycmVudCBtb2R1bGUuCkBA
IC0zMDksOCArNTYwLDEwIEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNv
bHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgIC8vIEVu
cXVldWUgdGhlIHRhc2sgdG8gZ2F0aGVyIHRoZSByZXN1bHRzIG9mIHRoZSBzdGFycy4KICAgICAg
ICAgLy8gQW5kIGFwcGVuZCB0aGUgbmV3IFJlc29sdXRpb24gZnJhbWUgdG8gZ2F0aGVyIHRoZSBs
b2NhbCByZXN1bHQgb2YgdGhlIHN0YXJzLgogICAgICAgICBwZW5kaW5nVGFza3MuYXBwZW5kKFRh
c2sgeyBxdWVyeSwgVHlwZTo6R2F0aGVyU3RhcnMgfSk7CisgICAgICAgIGZvdW5kU3Rhckxpbmtz
ID0gdHJ1ZTsKICAgICAgICAgZnJhbWVzLmFwcGVuZChSZXNvbHV0aW9uOjpub3RGb3VuZCgpKTsK
IAorCiAgICAgICAgIC8vIEVucXVldWUgdGhlIHRhc2tzIGluIHJldmVyc2Ugb3JkZXIuCiAgICAg
ICAgIGZvciAoYXV0byBpdGVyYXRvciA9IHF1ZXJ5Lm1vZHVsZVJlY29yZC0+c3RhckV4cG9ydEVu
dHJpZXMoKS5yYmVnaW4oKSwgZW5kID0gcXVlcnkubW9kdWxlUmVjb3JkLT5zdGFyRXhwb3J0RW50
cmllcygpLnJlbmQoKTsgaXRlcmF0b3IgIT0gZW5kOyArK2l0ZXJhdG9yKSB7CiAgICAgICAgICAg
ICBjb25zdCBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+JiBzdGFyTW9kdWxlTmFtZSA9ICppdGVy
YXRvcjsKQEAgLTM0Myw2ICs1OTYsMTEgQEAgc3RhdGljIEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0
aW9uIHJlc29sdmVFeHBvcnRMb29wKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgUmVzb2wKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfTsKIAorICAgIGF1dG8gY2FjaGVSZXNvbHV0aW9uRm9yUXVl
cnkgPSBbXSAoY29uc3QgUmVzb2x2ZVF1ZXJ5JiBxdWVyeSwgY29uc3QgUmVzb2x1dGlvbiYgcmVz
b2x1dGlvbikgeworICAgICAgICBBU1NFUlQocmVzb2x1dGlvbi50eXBlID09IFJlc29sdXRpb246
OlR5cGU6OlJlc29sdmVkKTsKKyAgICAgICAgcXVlcnkubW9kdWxlUmVjb3JkLT5jYWNoZVJlc29s
dXRpb24ocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSwgcmVzb2x1dGlvbik7CisgICAgfTsKKwogICAg
IHBlbmRpbmdUYXNrcy5hcHBlbmQoVGFzayB7IHJvb3QsIFR5cGU6OlF1ZXJ5IH0pOwogICAgIHdo
aWxlICghcGVuZGluZ1Rhc2tzLmlzRW1wdHkoKSkgewogICAgICAgICBjb25zdCBUYXNrIHRhc2sg
PSBwZW5kaW5nVGFza3MudGFrZUxhc3QoKTsKQEAgLTM1MCwxMSArNjA4LDI1IEBAIHN0YXRpYyBK
U01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFJlc29sCiAKICAgICAgICAgc3dpdGNoICh0YXNrLnR5cGUpIHsKICAgICAgICAg
Y2FzZSBUeXBlOjpRdWVyeTogeworICAgICAgICAgICAgSlNNb2R1bGVSZWNvcmQqIG1vZHVsZVJl
Y29yZCA9IHF1ZXJ5Lm1vZHVsZVJlY29yZDsKKwogICAgICAgICAgICAgaWYgKCFyZXNvbHZlU2V0
LmFkZCh0YXNrLnF1ZXJ5KS5pc05ld0VudHJ5KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxlUmVjb3JkID0gcXVlcnkubW9kdWxl
UmVjb3JkOwotICAgICAgICAgICAgY29uc3QgT3B0aW9uYWw8SlNNb2R1bGVSZWNvcmQ6OkV4cG9y
dEVudHJ5PiBvcHRpb25hbEV4cG9ydEVudHJ5ID0gbW9kdWxlUmVjb3JkLT50cnlHZXRFeHBvcnRF
bnRyeShxdWVyeS5leHBvcnROYW1lLmdldCgpKTsKKyAgICAgICAgICAgIC8vICA9PiBPbmNlIHdl
IHNlZSB0aGUgc3RhciBsaW5rcywgZXZlbiBpZiBpdCBkb2VzIG5vdCB1c2VkIHlldCwgd2Ugc2hv
dWxkIGRpc2FibGUgY2FjaGluZy4KKyAgICAgICAgICAgIGlmICghbW9kdWxlUmVjb3JkLT5zdGFy
RXhwb3J0RW50cmllcygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBmb3VuZFN0YXJMaW5r
cyA9IHRydWU7CisKKyAgICAgICAgICAgIC8vICA9PiBPbmNlIHdlIGZvbGxvdyBzdGFyIGxpbmtz
LCB3ZSBzaG91bGQgbm90IHJldHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUgYW5kIHNo
b3VsZCBub3QgY2FjaGUgdGhlIHJlc3VsdC4KKyAgICAgICAgICAgIGlmICghZm91bmRTdGFyTGlu
a3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoT3B0aW9uYWw8UmVzb2x1dGlvbj4gY2FjaGVkUmVz
b2x1dGlvbiA9IG1vZHVsZVJlY29yZC0+dHJ5R2V0Q2FjaGVkUmVzb2x1dGlvbihxdWVyeS5leHBv
cnROYW1lLmdldCgpKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50
VG9wKCpjYWNoZWRSZXNvbHV0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBS
ZXNvbHV0aW9uOjphbWJpZ3VvdXMoKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBPcHRp
b25hbDxFeHBvcnRFbnRyeT4gb3B0aW9uYWxFeHBvcnRFbnRyeSA9IG1vZHVsZVJlY29yZC0+dHJ5
R2V0RXhwb3J0RW50cnkocXVlcnkuZXhwb3J0TmFtZS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAo
IW9wdGlvbmFsRXhwb3J0RW50cnkpIHsKICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBu
byBtYXRjaGVkIGV4cG9ydGVkIGJpbmRpbmcgaW4gdGhlIGN1cnJlbnQgbW9kdWxlLAogICAgICAg
ICAgICAgICAgIC8vIHdlIG5lZWQgdG8gbG9vayBpbnRvIHRoZSBzdGFycy4KQEAgLTM2MywxNSAr
NjM1LDE5IEBAIHN0YXRpYyBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0
TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFJlc29sCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNvbnN0IEpTTW9kdWxlUmVjb3JkOjpF
eHBvcnRFbnRyeSYgZXhwb3J0RW50cnkgPSAqb3B0aW9uYWxFeHBvcnRFbnRyeTsKKyAgICAgICAg
ICAgIGNvbnN0IEV4cG9ydEVudHJ5JiBleHBvcnRFbnRyeSA9ICpvcHRpb25hbEV4cG9ydEVudHJ5
OwogICAgICAgICAgICAgc3dpdGNoIChleHBvcnRFbnRyeS50eXBlKSB7Ci0gICAgICAgICAgICBj
YXNlIEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRyeTo6VHlwZTo6TG9jYWw6Ci0gICAgICAgICAg
ICBjYXNlIEpTTW9kdWxlUmVjb3JkOjpFeHBvcnRFbnRyeTo6VHlwZTo6TmFtZXNwYWNlOgotICAg
ICAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3AoUmVzb2x1dGlvbiB7IFJlc29sdXRp
b246OlR5cGU6OlJlc29sdmVkLCBtb2R1bGVSZWNvcmQsIGV4cG9ydEVudHJ5LmxvY2FsTmFtZSB9
KSkKKyAgICAgICAgICAgIGNhc2UgRXhwb3J0RW50cnk6OlR5cGU6OkxvY2FsOgorICAgICAgICAg
ICAgY2FzZSBFeHBvcnRFbnRyeTo6VHlwZTo6TmFtZXNwYWNlOiB7CisgICAgICAgICAgICAgICAg
UmVzb2x1dGlvbiByZXNvbHV0aW9uIHsgUmVzb2x1dGlvbjo6VHlwZTo6UmVzb2x2ZWQsIG1vZHVs
ZVJlY29yZCwgZXhwb3J0RW50cnkubG9jYWxOYW1lIH07CisgICAgICAgICAgICAgICAgLy8gID0+
IFRoZSBtb2R1bGUgdGhhdCBoYXMgbG9jYWwgcmVzb2x1dGlvbiBpcyBhbHdheXMgY2FjaGVhYmxl
LgorICAgICAgICAgICAgICAgIGNhY2hlUmVzb2x1dGlvbkZvclF1ZXJ5KHF1ZXJ5LCByZXNvbHV0
aW9uKTsKKyAgICAgICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHJlc29sdXRpb24p
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmVzb2x1dGlvbjo6YW1iaWd1b3VzKCk7CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNh
c2UgSlNNb2R1bGVSZWNvcmQ6OkV4cG9ydEVudHJ5OjpUeXBlOjpJbmRpcmVjdDogeworICAgICAg
ICAgICAgY2FzZSBFeHBvcnRFbnRyeTo6VHlwZTo6SW5kaXJlY3Q6IHsKICAgICAgICAgICAgICAg
ICBKU01vZHVsZVJlY29yZCogaW1wb3J0ZWRNb2R1bGVSZWNvcmQgPSBtb2R1bGVSZWNvcmQtPmhv
c3RSZXNvbHZlSW1wb3J0ZWRNb2R1bGUoZXhlYywgZXhwb3J0RW50cnkubW9kdWxlTmFtZSk7CiAK
ICAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBpbXBvcnRlZCBtb2R1bGUgZG9lcyBub3QgcHJv
ZHVjZSBhbnkgcmVzb2x2ZWQgYmluZGluZywgd2UgbmVlZCB0byBsb29rIGludG8gdGhlIHN0YXJz
IGluIHRoZSAqY3VycmVudCoKQEAgLTM4Nyw3ICs2NjMsNyBAQCBzdGF0aWMgSlNNb2R1bGVSZWNv
cmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBS
ZXNvbAogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBUeXBlOjpJbmRpcmVjdEZhbGxiYWNrOiB7
Ci0gICAgICAgICAgICBKU01vZHVsZVJlY29yZDo6UmVzb2x1dGlvbiByZXNvbHV0aW9uID0gZnJh
bWVzLnRha2VMYXN0KCk7CisgICAgICAgICAgICBSZXNvbHV0aW9uIHJlc29sdXRpb24gPSBmcmFt
ZXMudGFrZUxhc3QoKTsKIAogICAgICAgICAgICAgaWYgKHJlc29sdXRpb24udHlwZSA9PSBSZXNv
bHV0aW9uOjpUeXBlOjpOb3RGb3VuZCkgewogICAgICAgICAgICAgICAgIC8vIEluZGlyZWN0IGV4
cG9ydCBlbnRyeSBkb2VzIG5vdCBwcm9kdWNlIGFueSByZXNvbHZlZCBiaW5kaW5nLgpAQCAtMzk3
LDYgKzY3MywxMyBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4
cG9ydExvb3AoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdF
KHJlc29sdXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCwgIldoZW4gd2Ug
c2VlIEVycm9yIGFuZCBBbWJpZ3VvdXMsIHdlIGltbWVkaWF0ZWx5IHJldHVybiBmcm9tIHRoaXMg
bG9vcC4gU28gaGVyZSwgb25seSBSZXNvbHZlZCBjb21lcy4iKTsKKworICAgICAgICAgICAgLy8g
ID0+IElmIHdlIGRvbid0IGZvbGxvdyBhbnkgc3RhciBsaW5rcyBkdXJpbmcgdGhlIHJlc29sdXRp
b24sIHdlIGNhbiBzZWUgYWxsIHRoZSB0cmFjZWQgbm9kZXMgYXJlIGNhY2hlYWJsZS4KKyAgICAg
ICAgICAgIC8vICA9PiBPbmNlIHdlIGZvbGxvdyBzdGFyIGxpbmtzLCB3ZSBzaG91bGQgbm90IHJl
dHJpZXZlIHRoZSByZXN1bHQgZnJvbSB0aGUgY2FjaGUgYW5kIHNob3VsZCBub3QgY2FjaGUgdGhl
IHJlc3VsdC4KKyAgICAgICAgICAgIGlmICghZm91bmRTdGFyTGlua3MpCisgICAgICAgICAgICAg
ICAgY2FjaGVSZXNvbHV0aW9uRm9yUXVlcnkocXVlcnksIHJlc29sdXRpb24pOworCiAgICAgICAg
ICAgICAvLyBJZiBpbmRpcmVjdCBleHBvcnQgZW50cnkgcHJvZHVjZXMgUmVzb2x2ZWQsIHdlIHNo
b3VsZCBtZXJnZSBpdCB0byB0aGUgdXBwZXIgZnJhbWUuCiAgICAgICAgICAgICAvLyBBbmQgZG8g
bm90IGludmVzdGlnYXRlIHRoZSBzdGFycyBvZiB0aGUgY3VycmVudCBtb2R1bGUuCiAgICAgICAg
ICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHJlc29sdXRpb24pKQpAQCAtNDA1LDkgKzY4OCwx
MSBAQCBzdGF0aWMgSlNNb2R1bGVSZWNvcmQ6OlJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydExvb3Ao
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBSZXNvbAogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBU
eXBlOjpHYXRoZXJTdGFyczogeworICAgICAgICAgICAgUmVzb2x1dGlvbiByZXNvbHV0aW9uID0g
ZnJhbWVzLnRha2VMYXN0KCk7CisgICAgICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHJlc29s
dXRpb24udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCB8fCByZXNvbHV0aW9uLnR5
cGUgPT0gUmVzb2x1dGlvbjo6VHlwZTo6Tm90Rm91bmQsICJXaGVuIHdlIHNlZSBFcnJvciBhbmQg
QW1iaWd1b3VzLCB3ZSBpbW1lZGlhdGVseSByZXR1cm4gZnJvbSB0aGlzIGxvb3AuIFNvIGhlcmUs
IG9ubHkgUmVzb2x2ZWQgYW5kIE5vdEZvdW5kIGNvbWVzLiIpOworCiAgICAgICAgICAgICAvLyBN
ZXJnZSB0aGUgc3RhciByZXNvbHV0aW9uIHRvIHRoZSB1cHBlciBmcmFtZS4KLSAgICAgICAgICAg
IEpTTW9kdWxlUmVjb3JkOjpSZXNvbHV0aW9uIHN0YXJSZXNvbHV0aW9uID0gZnJhbWVzLnRha2VM
YXN0KCk7Ci0gICAgICAgICAgICBpZiAoIW1lcmdlVG9DdXJyZW50VG9wKHN0YXJSZXNvbHV0aW9u
KSkKKyAgICAgICAgICAgIGlmICghbWVyZ2VUb0N1cnJlbnRUb3AocmVzb2x1dGlvbikpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIFJlc29sdXRpb246OmFtYmlndW91cygpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KQEAgLTQxNSwxMiArNzAwLDE4IEBAIHN0YXRpYyBKU01vZHVsZVJl
Y29yZDo6UmVzb2x1dGlvbiByZXNvbHZlRXhwb3J0TG9vcChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFJlc29sCiAgICAgfQogCiAgICAgQVNTRVJUKGZyYW1lcy5zaXplKCkgPT0gMSk7CisgICAgLy8g
ID0+IFRoZSBzdGFydGluZyBwb2ludCBpcyBhbHdheXMgY2FjaGVhYmxlLgorICAgIGlmIChmcmFt
ZXNbMF0udHlwZSA9PSBSZXNvbHV0aW9uOjpUeXBlOjpSZXNvbHZlZCkKKyAgICAgICAgY2FjaGVS
ZXNvbHV0aW9uRm9yUXVlcnkocm9vdCwgZnJhbWVzWzBdKTsKICAgICByZXR1cm4gZnJhbWVzWzBd
OwogfQogCiBhdXRvIEpTTW9kdWxlUmVjb3JkOjpyZXNvbHZlRXhwb3J0KEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgZXhwb3J0TmFtZSkgLT4gUmVzb2x1dGlvbgogewotICAgIHJl
dHVybiByZXNvbHZlRXhwb3J0TG9vcChleGVjLCBSZXNvbHZlUXVlcnkodGhpcywgZXhwb3J0TmFt
ZS5pbXBsKCkpKTsKKyAgICAvLyBMb29rIHVwIHRoZSBjYWNoZWQgcmVzb2x1dGlvbiBmaXJzdCBi
ZWZvcmUgZW50ZXJpbmcgdGhlIHJlc29sdmluZyBsb29wLCBzaW5jZSB0aGUgbG9vcCBzZXR1cCB0
YWtlcyBzb21lIGNvc3QuCisgICAgaWYgKE9wdGlvbmFsPFJlc29sdXRpb24+IGNhY2hlZFJlc29s
dXRpb24gPSB0cnlHZXRDYWNoZWRSZXNvbHV0aW9uKGV4cG9ydE5hbWUuaW1wbCgpKSkKKyAgICAg
ICAgcmV0dXJuICpjYWNoZWRSZXNvbHV0aW9uOworICAgIHJldHVybiByZXNvbHZlRXhwb3J0SW1w
bChleGVjLCBSZXNvbHZlUXVlcnkodGhpcywgZXhwb3J0TmFtZS5pbXBsKCkpKTsKIH0KIAogc3Rh
dGljIHZvaWQgZ2V0RXhwb3J0ZWROYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIEpTTW9kdWxlUmVjb3Jk
KiByb290LCBJZGVudGlmaWVyU2V0JiBleHBvcnRlZE5hbWVzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVSZWNvcmQuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlUmVjb3JkLmgKaW5kZXggNzBhMTkwZjgyYzY3OGQxODYx
ZjUwNmVkMWQ4MGYyMjViY2M5MGU1ZS4uOGUyNzhhN2RjMmUyMTE0OWNmZDZlZjU3Y2MwMGQzNWVi
ZjhlMDAwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1
bGVSZWNvcmQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZVJl
Y29yZC5oCkBAIC0xNjMsNiArMTYzLDExIEBAIGNsYXNzIEpTTW9kdWxlUmVjb3JkIDogcHVibGlj
IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKIAogICAgIHZvaWQgaW5zdGFudGlhdGVEZWNsYXJhdGlv
bnMoRXhlY1N0YXRlKiwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqKTsKIAorICAgIHN0cnVjdCBS
ZXNvbHZlUXVlcnk7CisgICAgc3RhdGljIFJlc29sdXRpb24gcmVzb2x2ZUV4cG9ydEltcGwoRXhl
Y1N0YXRlKiwgY29uc3QgUmVzb2x2ZVF1ZXJ5Jik7CisgICAgT3B0aW9uYWw8UmVzb2x1dGlvbj4g
dHJ5R2V0Q2FjaGVkUmVzb2x1dGlvbihVbmlxdWVkU3RyaW5nSW1wbCogZXhwb3J0TmFtZSk7Cisg
ICAgdm9pZCBjYWNoZVJlc29sdXRpb24oVW5pcXVlZFN0cmluZ0ltcGwqIGV4cG9ydE5hbWUsIGNv
bnN0IFJlc29sdXRpb24mKTsKKwogICAgIC8vIFRoZSBsb2FkZXIgcmVzb2x2ZXMgdGhlIGdpdmVu
IG1vZHVsZSBuYW1lIHRvIHRoZSBtb2R1bGUga2V5LiBUaGUgbW9kdWxlIGtleSBpcyB0aGUgdW5p
cXVlIHZhbHVlIHRvIHJlcHJlc2VudCB0aGlzIG1vZHVsZS4KICAgICBJZGVudGlmaWVyIG1fbW9k
dWxlS2V5OwogCkBAIC0yMDIsNiArMjA3LDEzIEBAIGNsYXNzIEpTTW9kdWxlUmVjb3JkIDogcHVi
bGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICBXcml0ZUJhcnJpZXI8TW9kdWxlUHJvZ3Jh
bUV4ZWN1dGFibGU+IG1fbW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGU7CiAgICAgV3JpdGVCYXJyaWVy
PEpTTW9kdWxlRW52aXJvbm1lbnQ+IG1fbW9kdWxlRW52aXJvbm1lbnQ7CiAgICAgV3JpdGVCYXJy
aWVyPEpTTW9kdWxlTmFtZXNwYWNlT2JqZWN0PiBtX21vZHVsZU5hbWVzcGFjZU9iamVjdDsKKwor
ICAgIC8vIFdlIGFzc3VtZSB0aGF0IGFsbCB0aGUgSlNNb2R1bGVSZWNvcmQgYXJlIHJldGFpbmVk
IGJ5IE1vZHVsZUxvYWRlck9iamVjdCdzIHJlZ2lzdHJ5LgorICAgIC8vIFNvIGhlcmUsIHdlIGRv
bid0IHZpc2l0IGVhY2ggb2JqZWN0IGZvciBHQy4gVGhlIHJlc29sdXRpb24gY2FjaGUgbWFwIGNh
Y2hlcyB0aGUgb25jZQorICAgIC8vIGxvb2tlZCB1cCBjb3JyZWN0bHkgcmVzb2x2ZWQgcmVzb2x1
dGlvbiwgc2luY2UgKDEpIHdlIHJhcmVseSBsb29rZWQgdXAgdGhlIG5vbi1yZXNvbHZlZCBvbmUs
CisgICAgLy8gYW5kICgyKSBpZiB3ZSBjYWNoZSBhbGwgdGhlIGF0dGVtcHRzIHRoZSBzaXplIG9m
IHRoZSBtYXAgYmVjb21lcyBpbmZpbml0ZWx5IGxhcmdlLgorICAgIHR5cGVkZWYgSGFzaE1hcDxS
ZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+LCBSZXNvbHV0aW9uLCBJZGVudGlmaWVyUmVwSGFzaCwg
SGFzaFRyYWl0czxSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+Pj4gUmVzb2x1dGlvbnM7CisgICAg
UmVzb2x1dGlvbnMgbV9yZXNvbHV0aW9uQ2FjaGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmct
c2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MjUxM2VkMTcwYjNkNzExMTM5NGJiMzQ5M2RiOGE2NGQ1YzJhMWUwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQt
bm90LW1ha2UtYW1iaWd1b3VzLmpzCkBAIC0wLDAgKzEsNSBAQAorLy8gICAgICAgICAgICAgICAg
Ky0tLS0+IChEKSAtLS0tLS0rCisvLyAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwK
Ky8vICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgdgorLy8gICBALT4gKEEpICotLS0t
Ky0tLS0+IChCKSAtLS0+IFtDXQoraW1wb3J0IHsgQSB9IGZyb20gImNhY2hpbmctc2hvdWxkLW5v
dC1tYWtlLWFtYmlndW91cy9tYWluLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0EuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3Qt
bWFrZS1hbWJpZ3VvdXMvQS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzY2ZTM3YzUyNzg3Nzg4YWE4M2I0ZTBk
ZDg0OWVkODUzMjA4YzJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0EuanMKQEAg
LTAsMCArMSwyIEBACitleHBvcnQgKiBmcm9tICIuL0QuanMiCitleHBvcnQgKiBmcm9tICIuL0Iu
anMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNo
aW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtlLWFtYmlndW91cy9CLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY3MmJjY2YwNWIzOGQzNDc5ODIwNzhmM2I2OGEzZGEwYWNmOTk4NGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5n
LXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvQi5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgeyBB
IH0gZnJvbSAiLi9DLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0MuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJp
Z3VvdXMvQy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzA4ZTJjYWU5MzczMmE0YjQ4YjNkOWMxZWJlODA5MzBk
YTU0MWZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21v
ZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1b3VzL0MuanMKQEAgLTAsMCArMSBA
QAorZXhwb3J0IGxldCBBID0gNDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvRC5qcyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2NhY2hpbmctc2hvdWxkLW5vdC1tYWtl
LWFtYmlndW91cy9ELmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MmJjY2YwNWIzOGQzNDc5ODIwNzhmM2I2OGEz
ZGEwYWNmOTk4NGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy9jYWNoaW5nLXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvRC5qcwpAQCAtMCww
ICsxIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9DLmpzIgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1iaWd1
b3VzL21haW4uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9jYWNoaW5n
LXNob3VsZC1ub3QtbWFrZS1hbWJpZ3VvdXMvbWFpbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTBiNTM1Zjg3
NWMzYjRhYjAwZDQwMTE1MTZlYjc3NWE5MDBhNmNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvY2FjaGluZy1zaG91bGQtbm90LW1ha2UtYW1i
aWd1b3VzL21haW4uanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vQS5qcyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVu
dC12aWV3LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50
LXZpZXcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgxZTg5YzI1ZjlmODY5ZDQwZTY1NGI5YzJmZjI3NWNmYjVk
ODk3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1
bGVzL2RpZmZlcmVudC12aWV3LmpzCkBAIC0wLDAgKzEsNyBAQAoraW1wb3J0IHsgc2hvdWxkQmUs
IHNob3VsZFRocm93IH0gZnJvbSAiLi9yZXNvdXJjZXMvYXNzZXJ0LmpzIgorCitzaG91bGRUaHJv
dygoKSA9PiB7CisgICAgbG9hZE1vZHVsZSgnLi9kaWZmZXJlbnQtdmlldy9tYWluLmpzJyk7Cit9
LCBgU3ludGF4RXJyb3I6IEltcG9ydGluZyBiaW5kaW5nIG5hbWUgJ0EnIGNhbm5vdCBiZSByZXNv
bHZlZCBkdWUgdG8gYW1iaWd1b3VzIG11bHRpcGxlIGJpbmRpbmdzLmApOworCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0Eu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9B
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNmZGJiNjA0ZDJiYmEwNjEyNjEyMjc3YWY0MWViYjAzYTQwMTJjMDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9k
aWZmZXJlbnQtdmlldy9BLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0ICogZnJvbSAiLi9CLmpz
IjsKK2V4cG9ydCAqIGZyb20gIi4vRS5qcyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9CLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQi5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODZk
ZDcxZWU2NmE5YTg2MTVhY2FlYTQwNWVkMmY3ODNkZjlkMTgyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvQi5qcwpA
QCAtMCwwICsxLDIgQEAKK2V4cG9ydCAqIGZyb20gIi4vQy5qcyIKK2V4cG9ydCAqIGZyb20gIi4v
RC5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2Rp
ZmZlcmVudC12aWV3L0MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9k
aWZmZXJlbnQtdmlldy9DLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlODA5MzVkNmU4ZTIyY2FhNTQ1ZDgzNDI1
YzhkZjcwMzI0NjA2NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9DLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCAq
IGZyb20gIi4vQS5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL2RpZmZlcmVudC12aWV3L0QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
bW9kdWxlcy9kaWZmZXJlbnQtdmlldy9ELmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMDhlMmNhZTkzNzMyYTRi
NDhiM2Q5YzFlYmU4MDkzMGRhNTQxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9ELmpzCkBAIC0wLDAgKzEgQEAK
K2V4cG9ydCBsZXQgQSA9IDQyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvRS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEwY2IwZTYxMjg2
MDQ4OGMxMGVjYWNiMjViZTRhMjc0NmM5MTZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2RpZmZlcmVudC12aWV3L0UuanMKQEAgLTAsMCAr
MSBAQAorZXhwb3J0IGxldCBBID0gNTA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9kaWZmZXJlbnQtdmlldy9tYWluLmpzIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvbWFpbi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
MjRmOTcyZjYzZTRiZTQyY2U2NTJlODdmNThmNmE5YTk3ODExMmQzCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZGlmZmVyZW50LXZpZXcvbWFp
bi5qcwpAQCAtMCwwICsxIEBACitpbXBvcnQgeyBBIH0gZnJvbSAiLi9BLmpzIgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3Vz
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1
b3VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM2YjYwZmU0ZDdkNzEyYTdiMmZmZWFhNWZhOGJlNmM1NjEzNTkz
YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy9mYWxsYmFjay1hbWJpZ3VvdXMuanMKQEAgLTAsMCArMSwxMiBAQAorLy8gICAgICAgICstLS0t
LS0tLS0tLS0tLS0tLSsKKy8vICAgICAgICB8ICAgICAgICAgICAgICAgICB8CisvLyAgICAgICAg
diAgICAgICAgICAgICAgICAgfAorLy8gICAgICAgKEEpIC0+IChDKSAtPiAoRCkgKistPiBbRV0K
Ky8vICAgICAgICAqICAgICAgXgorLy8gICAgICAgIHwgICAgICB8CisvLyAgICAgICAgdiAgICAg
IEAKKy8vICAgICAgIChCKQoraW1wb3J0IHsgc2hvdWxkVGhyb3cgfSBmcm9tICIuL3Jlc291cmNl
cy9hc3NlcnQuanMiCitzaG91bGRUaHJvdygoKSA9PiB7CisgICAgbG9hZE1vZHVsZSgiLi9mYWxs
YmFjay1hbWJpZ3VvdXMvbWFpbi5qcyIpOworfSwgYFN5bnRheEVycm9yOiBJbmRpcmVjdGx5IGV4
cG9ydGVkIGJpbmRpbmcgbmFtZSAnQScgY2Fubm90IGJlIHJlc29sdmVkIGR1ZSB0byBhbWJpZ3Vv
dXMgbXVsdGlwbGUgYmluZGluZ3MuYCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQS5qcyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9BLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFjYTQ4MjJkMGY3MDJmNjk4NmEyODEzNDQ4OTAzODUxNTU5ZWRiMjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3Vv
dXMvQS5qcwpAQCAtMCwwICsxLDIgQEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0MuanMiCitleHBv
cnQgKiBmcm9tICIuL0IuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9CLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMGNi
MGU2MTI4NjA0ODhjMTBlY2FjYjI1YmU0YTI3NDZjOTE2YjcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvQi5q
cwpAQCAtMCwwICsxIEBACitleHBvcnQgbGV0IEEgPSA1MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9DLmpzIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL0MuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmFmMDU4OGUxNGU2NzNlYzM5M2NmYjNiZWNmNTM5OTQxNWY3NGFiZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxi
YWNrLWFtYmlndW91cy9DLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCB7IEEgfSBmcm9tICIuL0Qu
anMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9mYWxs
YmFjay1hbWJpZ3VvdXMvRC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVz
L2ZhbGxiYWNrLWFtYmlndW91cy9ELmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNTE2MzI4ZGNiOTg0ZDkzM2M1
ZDQzZWUwNzM4NWRiOWUxMWY5ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvRC5qcwpAQCAtMCwwICsxLDIg
QEAKK2V4cG9ydCAqIGZyb20gIi4vQS5qcyIKK2V4cG9ydCAqIGZyb20gIi4vRS5qcyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmln
dW91cy9FLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2st
YW1iaWd1b3VzL0UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMwOGUyY2FlOTM3MzJhNGI0OGIzZDljMWViZTgw
OTMwZGE1NDFmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL2ZhbGxiYWNrLWFtYmlndW91cy9FLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCBs
ZXQgQSA9IDQyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVs
ZXMvZmFsbGJhY2stYW1iaWd1b3VzL21haW4uanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvbW9kdWxlcy9mYWxsYmFjay1hbWJpZ3VvdXMvbWFpbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzJiY2Nm
MDViMzhkMzQ3OTgyMDc4ZjNiNjhhM2RhMGFjZjk5ODRhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvZmFsbGJhY2stYW1iaWd1b3VzL21haW4u
anMKQEAgLTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vQy5qcyIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDVlMzM3NjMyYjA1ZjAyM2QyZjhjZDY2ZjE4M2UzZWQ4N2FhNGJhMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rh
ci1saW5rLmpzCkBAIC0wLDAgKzEsMTUgQEAKKy8vICAgICAgICstLS0tLS0tLS0tLS0tKworLy8g
ICAgICAgfCAgICAgICAgICAgICB8CisvLyAgICAgICB2ICAgICAgICAgICAgIHwKKy8vICBALT4g
KEEpIC0+IChCKSAtPiAoQykgKi0+IFtFXQorLy8gICAgICAgKgorLy8gICAgICAgfAorLy8gICAg
ICAgdgorLy8gICAgICBbRF0KK2ltcG9ydCB7IEEgfSBmcm9tICIuL3NlbGYtc3Rhci1saW5rL0Eu
anMiCitpbXBvcnQgeyBzaG91bGRCZSB9IGZyb20gIi4vcmVzb3VyY2VzL2Fzc2VydC5qcyIKK2lt
cG9ydCB7IEEgYXMgQWZyb21DIH0gZnJvbSAiLi9zZWxmLXN0YXItbGluay9DLmpzIgoraW1wb3J0
IHsgQSBhcyBBZnJvbUIgfSBmcm9tICIuL3NlbGYtc3Rhci1saW5rL0IuanMiCitzaG91bGRCZShB
LCAnRScpOworc2hvdWxkQmUoQWZyb21DLCAnRCcpOworc2hvdWxkQmUoQWZyb21CLCAnRCcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFy
LWxpbmsvQS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rh
ci1saW5rL0EuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc5ZTkyOGUyYmE0MzVhOTc5Y2E2OTk2NjJlOTE4Zjgw
YWI0ODQ1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL3NlbGYtc3Rhci1saW5rL0EuanMKQEAgLTAsMCArMSwyIEBACitleHBvcnQgeyBBIH0g
ZnJvbSAiLi9CLmpzIgorZXhwb3J0ICogZnJvbSAiLi9ELmpzIgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvc2VsZi1zdGFyLWxpbmsvQi5qcyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0IuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjcyYmNjZjA1YjM4ZDM0Nzk4MjA3OGYzYjY4YTNkYTBhY2Y5OTg0YQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1s
aW5rL0IuanMKQEAgLTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vQy5qcyIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5r
L0MuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGlu
ay9DLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjYzYxOTRhNWMyYTNhYjc4NjkxNDVkODYxNjYzMzljOGQ0ZWFm
MGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxl
cy9zZWxmLXN0YXItbGluay9DLmpzCkBAIC0wLDAgKzEsMiBAQAorZXhwb3J0IHsgQSB9IGZyb20g
Ii4vQS5qcyIKK2V4cG9ydCAqIGZyb20gIi4vRS5qcyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0QuanMgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9ELmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVjOTM4ZjVhOTg4YWFjMDMzZWFkZGM2NDc4MzgyMjE4YTE1NjAxZTUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9E
LmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCBsZXQgQSA9ICdEJzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3NlbGYtc3Rhci1saW5rL0UuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXItbGluay9FLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQzMTUzODExODFmNDc4MTE5Nzc2M2M0Y2ZiOGMwZWIyOTg0ODMzNDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy9zZWxmLXN0YXIt
bGluay9FLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCBsZXQgQSA9ICdFJzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2Vl
LXN0YXIuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJs
ZS13aGVuLXNlZS1zdGFyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxOTJiNTE3ZmFlODlhYzMzNTA5MGI1NTZm
ZGM5NWI1OTg4YzQzODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyLmpzCkBAIC0wLDAgKzEsMTMg
QEAKKy8vICAgICAgIChBKSAqLS0+IFtCXQorLy8gICAgICAgICAgICB8ICAgIF4KKy8vICAgICAg
ICAgICAgfCAgICB8CisvLyAgICAgICAgICAgICstPiAoQykgKi0+IChEKQorLy8gICAgICAgICAg
ICAgICAgIF4KKy8vICAgICAgICAgICAgICAgICB8CisvLyAgICAgICAgICAgICAgICAoRSkKKy8v
ICAgICAgICAgICAgICAgICBeCisvLyAgICAgICAgICAgICAgICAgfAorLy8gICAgICAgICAgICAg
ICAgIEAKKworaW1wb3J0ICJ1bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4xLmpzIgoraW1w
b3J0ICJ1bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpzIgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rh
ci9BLXByZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVh
YmxlLXdoZW4tc2VlLXN0YXIvQS1wcmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTkwYjUzNWY4NzVjM2I0YWIw
MGQ0MDExNTE2ZWI3NzVhOTAwYTZjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQS1wcmUuanMK
QEAgLTAsMCArMSBAQAorZXhwb3J0IHsgQSB9IGZyb20gIi4vQS5qcyIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0
YXIvQS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxl
LXdoZW4tc2VlLXN0YXIvQS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTI0NzY0NWVlNzE1MTU5Nzk0OWU5MzE2
NDIyMWQwMzk5MjljOGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9BLmpzCkBAIC0wLDAgKzEs
MiBAQAorZXhwb3J0ICogZnJvbSAiLi9CLmpzIgorZXhwb3J0ICogZnJvbSAiLi9DLmpzIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUt
d2hlbi1zZWUtc3Rhci9CLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMv
dW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9CLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkYzkyOWYzZmYxODQ3
ZTE5YWE4OTIxNzU0YzUxNzQwZTc2MWY5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0IuanMK
QEAgLTAsMCArMSBAQAorZXhwb3J0IGxldCBBID0gNDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0MuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNl
ZS1zdGFyL0MuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTc5ZTkyOGUyYmE0MzVhOTc5Y2E2OTk2NjJlOTE4Zjgw
YWI0ODQ1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9t
b2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvQy5qcwpAQCAtMCwwICsxLDIgQEAKK2V4
cG9ydCB7IEEgfSBmcm9tICIuL0IuanMiCitleHBvcnQgKiBmcm9tICIuL0QuanMiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVu
LXNlZS1zdGFyL0QuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNh
Y2hlYWJsZS13aGVuLXNlZS1zdGFyL0QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3
YWQ3OGU2NGIwYWFkN2JkZWQwOGJkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRC5qcwpAQCAt
MCwwICsxIEBACisKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1
bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvRS1wcmUuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0UtcHJlLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdkM2FhMDRiN2IwMGNmMDQ5Y2JlZTYxMmY5MTg5NjcwZDIxNDJmYTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91bmNhY2hl
YWJsZS13aGVuLXNlZS1zdGFyL0UtcHJlLmpzCkBAIC0wLDAgKzEgQEAKK2V4cG9ydCB7IEEgfSBm
cm9tICIuL0UuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9k
dWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0UuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvbW9kdWxlcy91bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL0UuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjcyYmNjZjA1YjM4ZDM0Nzk4MjA3OGYzYjY4YTNkYTBhY2Y5OTg0YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdo
ZW4tc2VlLXN0YXIvRS5qcwpAQCAtMCwwICsxIEBACitleHBvcnQgeyBBIH0gZnJvbSAiLi9DLmpz
IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNo
ZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4tc2VlLXN0YXIvbWFpbjEuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjIzNzNiOWJmNTY5NGIxNWI1YjU5MGZhYjIwYjBmNmZlNjA1MGFiOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9tb2R1bGVzL3VuY2FjaGVhYmxlLXdoZW4t
c2VlLXN0YXIvbWFpbjEuanMKQEAgLTAsMCArMSBAQAoraW1wb3J0IHsgQSB9IGZyb20gIi4vRS1w
cmUuanMiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvbW9kdWxlcy91
bmNhY2hlYWJsZS13aGVuLXNlZS1zdGFyL21haW4yLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUtd2hlbi1zZWUtc3Rhci9tYWluMi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41OTczNzZhYTZjYmUwNTQwYjkxZjEyZmUyYWVmYmNkMmRkYjg1ZWU0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL21vZHVsZXMvdW5jYWNoZWFibGUt
d2hlbi1zZWUtc3Rhci9tYWluMi5qcwpAQCAtMCwwICsxIEBACitpbXBvcnQgeyBBIH0gZnJvbSAi
Li9BLXByZS5qcyIK
</data>
<flag name="review"
          id="286278"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>