<?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>204859</bug_id>
          
          <creation_ts>2019-12-04 14:02:12 -0800</creation_ts>
          <short_desc>Web Inspector: Runtime.enable reports duplicates (non existent) contexts</short_desc>
          <delta_ts>2020-01-08 14:16:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1595583</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-04 14:02:12 -0800</bug_when>
    <thetext>Calling Runtime.enable results in duplicate Runtime.executionContextCreated events: for each context in the main world it will report it with isPageContext=true and isPageContext=false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595589</commentid>
    <comment_count>1</comment_count>
      <attachid>384845</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-04 14:29:08 -0800</bug_when>
    <thetext>Created attachment 384845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595591</commentid>
    <comment_count>2</comment_count>
      <attachid>384847</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-04 14:53:46 -0800</bug_when>
    <thetext>Created attachment 384847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595609</commentid>
    <comment_count>3</comment_count>
      <attachid>384858</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-04 15:46:53 -0800</bug_when>
    <thetext>Created attachment 384858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595881</commentid>
    <comment_count>4</comment_count>
      <attachid>384920</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-05 10:43:49 -0800</bug_when>
    <thetext>Created attachment 384920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597691</commentid>
    <comment_count>5</comment_count>
      <attachid>384920</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-11 10:55:22 -0800</bug_when>
    <thetext>Comment on attachment 384920
Patch

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:124
&gt; -    if (&amp;world != &amp;mainThreadNormalWorld())
&gt; +    if (!world.isNormal())

Why is this change necessary?

&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:78
&gt; +    // Report initial contexts before enabling instrumentation as the reporting
&gt; +    // can force creation of script state which could result in duplicate notifications.
&gt; +    reportExecutionContextCreation();

IIUC, the problem you&apos;re describing here is that `reportExecutionContextCreation()` can cause script to be evaluated, which could then pipe back to this object via the `m_instrumentingAgents.setPageRuntimeAgent(this);`?  If so, we should still call `InspectorRuntimeAgent::enable(errorString);` before doing that, as we want the agent to be considered fully &quot;enabled&quot; (meaning the parent class should also be &quot;enabled&quot;) before we dispatch any events.
```
    void PageRuntimeAgent::enable(ErrorString&amp; errorString)
    {
        if (m_instrumentingAgents.pageRuntimeAgent() == this)
            return;

        InspectorRuntimeAgent::enable(errorString);

        // Report initial contexts before connecting instrumentation as the reporting
        // can force creation of script state which could result in duplicate notifications.
        reportExecutionContextCreation();

        m_instrumentingAgents.setPageRuntimeAgent(this);
    }
```

It would be preferable to set `m_instrumentingAgents.setPageRuntimeAgent(this);` first to avoid any potential reentrancy though.  Perhaps we could keep track of the `Frame` that we&apos;re about to call `mainWorldExecState` with and early-return inside `didClearWindowObjectInWorld` if it matches?

&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:146
&gt; +        for (auto&amp; context : isolatedContexts) {

NIT: you can use a structured binding:
```
    for (auto&amp; [globalObject, securityOrigin] : isolatedContexts)
```

&gt; Source/WebInspectorUI/UserInterface/Models/ExecutionContextList.js:48
&gt;          this._contexts.push(context);

I think we should still have some assertion to guard against duplicate IDs:
```
    console.assert(this._contexts.every((existingContext) =&gt; existingContext.id !== context.id), &quot;Unexpected duplicate context id&quot;, this, context);
```

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:36
&gt; +            this._protocolToStableId = new Map;

NIT: this could theoretically be used for more than just protocol ID values (e.g. timer/rAF identifiers), so I&apos;d just make it `this._map = new Map;`.

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:38
&gt; +

Style: please add a `// Public`

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:39
&gt; +        get lastAssignedId() { return this._lastAssignedId; }

Rather than `lastAssignedId`, should we expose `this._protocolToStableId.size`?  I think they&apos;d fundamentally map to the same thing, but `size` is more of a generic name than `lastAssignedId`.
```
    get size()
    {
        return this._protocolToStableId.size;
    }
```

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:41
&gt; +        stableId(protocolId)

I&apos;d just call this `get(unstableId)`, since the name of this class already has &quot;stable&quot; so this would be somewhat repetitive.

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:44
&gt; +            if (!id) {

So this means that this will never assign a stable ID of 0?  That&apos;s fine I guess :)

&gt; LayoutTests/inspector/runtime/execution-context-events.html:6
&gt; +

Style: unnecessary newline

&gt; LayoutTests/inspector/runtime/execution-context-events.html:27
&gt; +                InspectorProtocol.awaitCommand({method: &quot;Runtime.enable&quot;})

Style: missing trailing comma

&gt; LayoutTests/inspector/runtime/execution-context-events.html:30
&gt; +            ProtocolTest.expectEqual(contextCount, 2, &quot;Should have 2 contexts (for main world in the main frame and the subframe)&quot;)

Why not test for `contextIdMap.size` and avoid having another variable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597803</commentid>
    <comment_count>6</comment_count>
      <attachid>384920</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-11 14:39:46 -0800</bug_when>
    <thetext>Comment on attachment 384920
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:124
&gt;&gt; +    if (!world.isNormal())
&gt; 
&gt; Why is this change necessary?

It&apos;s a drive-by making this check more straightforward and likely more efficient due to memory locality.

&gt;&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:78
&gt;&gt; +    reportExecutionContextCreation();
&gt; 
&gt; IIUC, the problem you&apos;re describing here is that `reportExecutionContextCreation()` can cause script to be evaluated, which could then pipe back to this object via the `m_instrumentingAgents.setPageRuntimeAgent(this);`?  If so, we should still call `InspectorRuntimeAgent::enable(errorString);` before doing that, as we want the agent to be considered fully &quot;enabled&quot; (meaning the parent class should also be &quot;enabled&quot;) before we dispatch any events.
&gt; ```
&gt;     void PageRuntimeAgent::enable(ErrorString&amp; errorString)
&gt;     {
&gt;         if (m_instrumentingAgents.pageRuntimeAgent() == this)
&gt;             return;
&gt; 
&gt;         InspectorRuntimeAgent::enable(errorString);
&gt; 
&gt;         // Report initial contexts before connecting instrumentation as the reporting
&gt;         // can force creation of script state which could result in duplicate notifications.
&gt;         reportExecutionContextCreation();
&gt; 
&gt;         m_instrumentingAgents.setPageRuntimeAgent(this);
&gt;     }
&gt; ```
&gt; 
&gt; It would be preferable to set `m_instrumentingAgents.setPageRuntimeAgent(this);` first to avoid any potential reentrancy though.  Perhaps we could keep track of the `Frame` that we&apos;re about to call `mainWorldExecState` with and early-return inside `didClearWindowObjectInWorld` if it matches?

Done. Super class is &apos;enabled&apos; before reporting.

I like better not adding PageRuntimeAgent to the instrumentation until all contexts are reported. Introducing a state that we are currently in the process of initialization or even reporting contexts for a particular frame would be more convoluted and require an extra field on the agent. For now the agent is instrumenting only 2 events: frame navigated and didClearWindowObjectInWorld so it&apos;s safe to enable the instrumentation later.

&gt;&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:146
&gt;&gt; +        for (auto&amp; context : isolatedContexts) {
&gt; 
&gt; NIT: you can use a structured binding:
&gt; ```
&gt;     for (auto&amp; [globalObject, securityOrigin] : isolatedContexts)
&gt; ```

Done.

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/ExecutionContextList.js:48
&gt;&gt;          this._contexts.push(context);
&gt; 
&gt; I think we should still have some assertion to guard against duplicate IDs:
&gt; ```
&gt;     console.assert(this._contexts.every((existingContext) =&gt; existingContext.id !== context.id), &quot;Unexpected duplicate context id&quot;, this, context);
&gt; ```

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597804</commentid>
    <comment_count>7</comment_count>
      <attachid>385442</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-11 14:40:14 -0800</bug_when>
    <thetext>Created attachment 385442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597808</commentid>
    <comment_count>8</comment_count>
      <attachid>385445</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-11 14:58:39 -0800</bug_when>
    <thetext>Created attachment 385445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597809</commentid>
    <comment_count>9</comment_count>
      <attachid>384920</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-11 14:58:42 -0800</bug_when>
    <thetext>Comment on attachment 384920
Patch

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

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:36
&gt;&gt; +            this._protocolToStableId = new Map;
&gt; 
&gt; NIT: this could theoretically be used for more than just protocol ID values (e.g. timer/rAF identifiers), so I&apos;d just make it `this._map = new Map;`.

Done.

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:38
&gt;&gt; +
&gt; 
&gt; Style: please add a `// Public`

Done.

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:39
&gt;&gt; +        get lastAssignedId() { return this._lastAssignedId; }
&gt; 
&gt; Rather than `lastAssignedId`, should we expose `this._protocolToStableId.size`?  I think they&apos;d fundamentally map to the same thing, but `size` is more of a generic name than `lastAssignedId`.
&gt; ```
&gt;     get size()
&gt;     {
&gt;         return this._protocolToStableId.size;
&gt;     }
&gt; ```

Done.

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:41
&gt;&gt; +        stableId(protocolId)
&gt; 
&gt; I&apos;d just call this `get(unstableId)`, since the name of this class already has &quot;stable&quot; so this would be somewhat repetitive.

Done.

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:44
&gt;&gt; +            if (!id) {
&gt; 
&gt; So this means that this will never assign a stable ID of 0?  That&apos;s fine I guess :)

Yes, this was intentional as 0 sometimes has special meaning of not set.

&gt;&gt; LayoutTests/inspector/runtime/execution-context-events.html:6
&gt;&gt; +
&gt; 
&gt; Style: unnecessary newline

Done.

&gt;&gt; LayoutTests/inspector/runtime/execution-context-events.html:27
&gt;&gt; +                InspectorProtocol.awaitCommand({method: &quot;Runtime.enable&quot;})
&gt; 
&gt; Style: missing trailing comma

Done.

&gt;&gt; LayoutTests/inspector/runtime/execution-context-events.html:30
&gt;&gt; +            ProtocolTest.expectEqual(contextCount, 2, &quot;Should have 2 contexts (for main world in the main frame and the subframe)&quot;)
&gt; 
&gt; Why not test for `contextIdMap.size` and avoid having another variable?

This is to cover the case of duplicate contexts which this patch is fixing. Actually, we need to test that all of them are unique too. Updated the test to do it explicitly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1597892</commentid>
    <comment_count>10</comment_count>
      <attachid>385445</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-11 17:38:54 -0800</bug_when>
    <thetext>Comment on attachment 385445
Patch

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

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:124
&gt; -    if (&amp;world != &amp;mainThreadNormalWorld())
&gt; +    if (!world.isNormal())

&gt;&gt; Why is this change necessary?
&gt; It&apos;s a drive-by making this check more straightforward and likely more efficient due to memory locality.
This seems like a potentially very risky change that shouldn&apos;t be a drive-by.  If this is unnecessary for this patch, please remove it.  If it is necessary, please explain why.

Also, &quot;likely more efficient&quot; is not a good reason for making changes like these.  If it is definitely more memory efficient, then maybe it can be its own change.

&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:78
&gt; +    if (!errorString.isEmpty())
&gt; +        return;

We know that `InspectorRuntimeAgent::enable` doesn&apos;t populate `errorString`, and if we passed the first early return then we can safely assume that the parent class hasn&apos;t been enabled yet either.  As such, we can remove this.

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:45
&gt; +            let id = this._idMap.get(unstableId);

&gt;&gt; So this means that this will never assign a stable ID of 0?  That&apos;s fine I guess :)
&gt; Yes, this was intentional as 0 sometimes has special meaning of not set.
If that&apos;s the case, maybe we should also assert that `unstableId !== 0`?  We wouldn&apos;t want to use `console.assert`, but instead probably something like `(InspectorTest || ProtocolTest).assert(unstableId, &quot;StableIdMap should only be given truthy ID values.&quot;)`.

&gt; LayoutTests/inspector/runtime/execution-context-events.html:8
&gt; +    let suite = ProtocolTest.createAsyncSuite(&quot;Runtime.executionContextCreated.OnEnable&quot;);

NIT: we normally have the test file name match (or be close) to the suite name in that test file.  As such, I&apos;d rename this test file to &apos;LayoutTests/inspector/runtime/executionContextCreated-OnEnable.html&apos;.

&gt; LayoutTests/inspector/runtime/execution-context-events.html:20
&gt; +                ProtocolTest.addResult(`Execution context created: id=${contextIdMap.get(id)} frameId=${frameIdMap.get(frameId)} isPageContext=${isPageContext}`)

Please use `ProtocolTest.log` instead.

&gt; LayoutTests/inspector/runtime/execution-context-events.html:30
&gt; +            ProtocolTest.expectEqual(contextCount, 2, &quot;Should receive 2 executionContextCreated events (for main world in the main frame and the subframe)&quot;);
&gt; +            ProtocolTest.expectEqual(contextIdMap.size, 2, &quot;Should have 2 unique contexts&quot;);

Style: please make sure that any expectation strings are sentences that end with &quot;.&quot; (we don&apos;t care as much for regular logs).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598055</commentid>
    <comment_count>11</comment_count>
      <attachid>385445</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-12 10:31:06 -0800</bug_when>
    <thetext>Comment on attachment 385445
Patch

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

&gt;&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:124
&gt;&gt; +    if (!world.isNormal())
&gt; 
&gt; 

&gt; This seems like a potentially very risky change that shouldn&apos;t be a drive-by.  If this is unnecessary for this patch, please remove it.  If it is necessary, please explain why.
This is not necessary for the change. Reverting.

I&apos;m curious why you think this is a &apos;very risky&apos; change?


&gt;Also, &quot;likely more efficient&quot; is not a good reason for making changes like these.  If it is definitely more memory efficient, then maybe it can be its own change.
Well, first of all its more readable. Efficiency is secondary here as this code is not hot to try and optimize for memory cache locality.

&gt;&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:78
&gt;&gt; +        return;
&gt; 
&gt; We know that `InspectorRuntimeAgent::enable` doesn&apos;t populate `errorString`, and if we passed the first early return then we can safely assume that the parent class hasn&apos;t been enabled yet either.  As such, we can remove this.

This sounds like too many assumption about the base class. Its logic can change in the future to allow failures and this code will break forcing the author to think whether errors were intentionally ignored before or it was a bug. Why not make it explicit.

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:45
&gt;&gt; +            let id = this._idMap.get(unstableId);
&gt; 
&gt; 

&gt; If that&apos;s the case, maybe we should also assert that `unstableId !== 0`?  We wouldn&apos;t want to use `console.assert`, but instead probably something like `(InspectorTest || ProtocolTest).assert(unstableId, &gt; &quot;StableIdMap should only be given truthy ID values.&quot;)`.
I feel like this getting more attention than necessary. Changed to use 0-based ids instead.

&gt;&gt; LayoutTests/inspector/runtime/execution-context-events.html:8
&gt;&gt; +    let suite = ProtocolTest.createAsyncSuite(&quot;Runtime.executionContextCreated.OnEnable&quot;);
&gt; 
&gt; NIT: we normally have the test file name match (or be close) to the suite name in that test file.  As such, I&apos;d rename this test file to &apos;LayoutTests/inspector/runtime/executionContextCreated-OnEnable.html&apos;.

Renamed.

Why do inspector tests not follow file-naming-convention of other layout tests and use camel case?

&gt;&gt; LayoutTests/inspector/runtime/execution-context-events.html:20
&gt;&gt; +                ProtocolTest.addResult(`Execution context created: id=${contextIdMap.get(id)} frameId=${frameIdMap.get(frameId)} isPageContext=${isPageContext}`)
&gt; 
&gt; Please use `ProtocolTest.log` instead.

Done.

&gt;&gt; LayoutTests/inspector/runtime/execution-context-events.html:30
&gt;&gt; +            ProtocolTest.expectEqual(contextIdMap.size, 2, &quot;Should have 2 unique contexts&quot;);
&gt; 
&gt; Style: please make sure that any expectation strings are sentences that end with &quot;.&quot; (we don&apos;t care as much for regular logs).

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598058</commentid>
    <comment_count>12</comment_count>
      <attachid>385511</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-12 10:33:46 -0800</bug_when>
    <thetext>Created attachment 385511
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598063</commentid>
    <comment_count>13</comment_count>
      <attachid>385512</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-12 10:36:26 -0800</bug_when>
    <thetext>Created attachment 385512
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599911</commentid>
    <comment_count>14</comment_count>
      <attachid>385512</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-12-18 12:09:42 -0800</bug_when>
    <thetext>Comment on attachment 385512
Patch

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

Looks good to me. Lets see if Devin is good with the most recent revision given his earlier comments.

&gt; Source/WebInspectorUI/UserInterface/Models/ExecutionContextList.js:-52
&gt; -        // FIXME: The backend sends duplicate page context execution contexts with the same id. Why?
&gt; -        if (context.isPageContext &amp;&amp; this._pageExecutionContext) {
&gt; -            console.assert(context.id === this._pageExecutionContext.id);
&gt; -            return false;
&gt; -        }

It looks like we will still want something like this code for the Remote Inspector connected to legacy backends that do continue to send duplicates.

Perhaps keep the code and add:

    // COMPATIBILITY (iOS 13.0): Older iOS releases will send duplicates. Newer releases will not.

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:2
&gt; + * Copyright (C) 2019 Microsoft Corporation. All rights reserved.

Is there any need for this file to have a license? Most WebKit test code doesn&apos;t and this is effectively 10 non-complex statements.

&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:35
&gt; +            this._lastAssignedId = 0;

This is unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599914</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-12-18 12:14:09 -0800</bug_when>
    <thetext>&gt; &gt;&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:124
&gt; &gt;&gt; +    if (!world.isNormal())
&gt; 
&gt; &gt; This seems like a potentially very risky change that shouldn&apos;t be a drive-by.  If this is unnecessary for this patch, please remove it.  If it is necessary, please explain why.
&gt; This is not necessary for the change. Reverting.
&gt; 
&gt; I&apos;m curious why you think this is a &apos;very risky&apos; change?

I agree with Yury here that the `isNormal()` is simpler and probably. I think it is worth moving in that direction. But this can be done separately if you have concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599920</commentid>
    <comment_count>16</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 12:23:42 -0800</bug_when>
    <thetext>(In reply to Joseph Pecoraro from comment #15)
&gt; &gt; &gt;&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:124
&gt; &gt; &gt;&gt; +    if (!world.isNormal())
&gt; &gt; &gt; This seems like a potentially very risky change that shouldn&apos;t be a drive-by.  If this is unnecessary for this patch, please remove it.  If it is necessary, please explain why.
&gt; &gt; This is not necessary for the change. Reverting.
&gt; &gt; 
&gt; &gt; I&apos;m curious why you think this is a &apos;very risky&apos; change?
&gt; I agree with Yury here that the `isNormal()` is simpler and probably. I think it is worth moving in that direction. But this can be done separately if you have concerns.
I agree that this is probably better, but I&apos;d rather have it be a separate change so that if it does end up breaking something, the rollout is much more localized and wouldn&apos;t affect the fix of this bug.  I&apos;d also want to make sure it has a test (somehow).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599922</commentid>
    <comment_count>17</comment_count>
      <attachid>385512</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-12-18 12:25:11 -0800</bug_when>
    <thetext>Comment on attachment 385512
Patch

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

r=me

&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:156
&gt; +            if (scriptState != globalObject)

NIT: I&apos;d flip the order of these, given that `globalObject` is more local than `scriptState`

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/ExecutionContextList.js:-52
&gt;&gt; -        }
&gt; 
&gt; It looks like we will still want something like this code for the Remote Inspector connected to legacy backends that do continue to send duplicates.
&gt; 
&gt; Perhaps keep the code and add:
&gt; 
&gt;     // COMPATIBILITY (iOS 13.0): Older iOS releases will send duplicates. Newer releases will not.

Ah, yeah!  I totally forgot about that.  Good catch Joe!

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:35
&gt;&gt; +            this._lastAssignedId = 0;
&gt; 
&gt; This is unused.

NIT: this is no longer used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599960</commentid>
    <comment_count>18</comment_count>
      <attachid>385512</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-18 13:26:17 -0800</bug_when>
    <thetext>Comment on attachment 385512
Patch

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

&gt;&gt; Source/WebCore/inspector/agents/page/PageRuntimeAgent.cpp:156
&gt;&gt; +            if (scriptState != globalObject)
&gt; 
&gt; NIT: I&apos;d flip the order of these, given that `globalObject` is more local than `scriptState`

Done.

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Models/ExecutionContextList.js:-52
&gt;&gt;&gt; -        }
&gt;&gt; 
&gt;&gt; It looks like we will still want something like this code for the Remote Inspector connected to legacy backends that do continue to send duplicates.
&gt;&gt; 
&gt;&gt; Perhaps keep the code and add:
&gt;&gt; 
&gt;&gt;     // COMPATIBILITY (iOS 13.0): Older iOS releases will send duplicates. Newer releases will not.
&gt; 
&gt; Ah, yeah!  I totally forgot about that.  Good catch Joe!

Good catch! Done.

&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:2
&gt;&gt; + * Copyright (C) 2019 Microsoft Corporation. All rights reserved.
&gt; 
&gt; Is there any need for this file to have a license? Most WebKit test code doesn&apos;t and this is effectively 10 non-complex statements.

I don&apos;t know what&apos;s the general rule for layout test .js files these days but all .js in LayoutTests/http/tests/inspector/resources/ have license header so I&apos;ve added this for consistency. Also I don&apos;t think we ever use size of a source file as a criteria for adding license header, they usually start small and simple and grow over time.

&gt;&gt;&gt; LayoutTests/http/tests/inspector/resources/stable-id-map.js:35
&gt;&gt;&gt; +            this._lastAssignedId = 0;
&gt;&gt; 
&gt;&gt; This is unused.
&gt; 
&gt; NIT: this is no longer used

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599963</commentid>
    <comment_count>19</comment_count>
      <attachid>386001</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2019-12-18 13:29:01 -0800</bug_when>
    <thetext>Created attachment 386001
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599979</commentid>
    <comment_count>20</comment_count>
      <attachid>386001</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 14:05:35 -0800</bug_when>
    <thetext>Comment on attachment 386001
Patch for landing

Clearing flags on attachment: 386001

Committed r253718: &lt;https://trac.webkit.org/changeset/253718&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599980</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-18 14:05:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599982</commentid>
    <comment_count>22</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-18 14:06:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/58057008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600530</commentid>
    <comment_count>23</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-12-19 15:23:06 -0800</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/253718/webkit

broke http/tests/inspector/target/provisional-load-cancels-previous-load.html

History:
https://results.webkit.org/?suite=layout-tests&amp;test=http%2Ftests%2Finspector%2Ftarget%2Fprovisional-load-cancels-previous-load.html


tracked in https://bugs.webkit.org/show_bug.cgi?id=205473</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604285</commentid>
    <comment_count>24</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-01-08 14:16:07 -0800</bug_when>
    <thetext>The new test inspector/runtime/executionContextCreated-onEnable.html

added in https://trac.webkit.org/changeset/253718/webkit

is flaky

tracking in https://bugs.webkit.org/show_bug.cgi?id=205956</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384845</attachid>
            <date>2019-12-04 14:29:08 -0800</date>
            <delta_ts>2019-12-04 14:53:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191204142907.patch</filename>
            <type>text/plain</type>
            <size>14071</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMxYTdkZDA1ZmJlNjJk
M2E4ZDI3MGEzZGYxZTdkZGEzMTEyODFkMS4uNmZiMWQ1N2UxOWJmYWM4OTQ3ZmE3NWIwOTllZmEz
NTdhM2NlYjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbik6CisKIDIw
MTktMTItMDQgIExvdWllIExpdm9uLUJlbWVsICA8bGxpdm9uYmVtZWxAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4dCBtYW5pcHVsYXRpb24gU1BJIHRvIGV4
Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBjYjZlZDlmNmM4NGQy
NWVhOTI3MmQxZTNlYTRmMTU1YjZkZWNkNTU0Li4yNmRmYjI2MmIxOGYyNjk0NTZiYmIxMGVkMGEw
ZGZhODRlZDAyZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBGcmFt
ZSogZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRv
d09iamVjdEluV29ybGRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoJndv
cmxkICE9ICZtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkKKyAgICBpZiAoIXdvcmxkLmlzTm9ybWFs
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChhdXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNw
cAppbmRleCA4YzRhMTA0ZGEwNDExYTU5ZWVlYzE2YmIzMGYyZTg4MmNlZDZlMTcxLi5iMDFiM2Iw
OTBhYjY3NTUwN2JjZTgzZTQzMTZjODlhYzJjNWM3YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBA
IC03MCwxNCArNzAsMTUgQEAgUGFnZVJ1bnRpbWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKSA9
IGRlZmF1bHQ7CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBl
cnJvclN0cmluZykKIHsKLSAgICBib29sIGVuYWJsZWQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMu
cGFnZVJ1bnRpbWVBZ2VudCgpID09IHRoaXM7CisgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpcykKKyAgICAgICAgcmV0dXJuOwogCi0gICAgSW5z
cGVjdG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JTdHJpbmcpOworICAgIC8vIFJlcG9ydCBp
bml0aWFsIGNvbnRleHRzIGJlZm9yZSBlbmFibGluZyBpbnN0cnVtZW50YXRpb24gYXMgdGhlIHJl
cG9ydGluZworICAgIC8vIGNhbiBmb3JjZSBjcmVhdGlvbiBvZiBzY3JpcHQgc3RhdGUgd2hpY2gg
Y291bGQgcmVzdWx0IGluIGR1cGxpY2F0ZSBub3RpZmljYXRpb25zLgorICAgIHJlcG9ydEV4ZWN1
dGlvbkNvbnRleHRDcmVhdGlvbigpOwogCisgICAgSW5zcGVjdG9yUnVudGltZUFnZW50OjplbmFi
bGUoZXJyb3JTdHJpbmcpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlUnVudGlt
ZUFnZW50KHRoaXMpOwotCi0gICAgaWYgKCFlbmFibGVkKQotICAgICAgICByZXBvcnRFeGVjdXRp
b25Db250ZXh0Q3JlYXRpb24oKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaXNhYmxl
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTE0Miw4ICsxNDMsMTAgQEAgdm9pZCBQYWdl
UnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKQogICAgICAgICBm
cmFtZS0+c2NyaXB0KCkuY29sbGVjdElzb2xhdGVkQ29udGV4dHMoaXNvbGF0ZWRDb250ZXh0cyk7
CiAgICAgICAgIGlmIChpc29sYXRlZENvbnRleHRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBmb3IgKGF1dG8mIGNvbnRleHQgOiBpc29sYXRlZENvbnRleHRzKQot
ICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJhbWVJZCwgY29udGV4dC5maXJzdCwg
Y29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAgZm9yIChhdXRvJiBjb250ZXh0IDogaXNv
bGF0ZWRDb250ZXh0cykgeworICAgICAgICAgICAgaWYgKHNjcmlwdFN0YXRlICE9IGNvbnRleHQu
Zmlyc3QpCisgICAgICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJhbWVJZCwgY29u
dGV4dC5maXJzdCwgY29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAgfQogICAgICAgICBp
c29sYXRlZENvbnRleHRzLmNsZWFyKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFiMGI0OTZmZjA0NGQ3
YTU4YmY5YmY2MjM4MDg1MWE2MWI0N2M3MGEuLmM2MjI1ZmY3YzgwNDJkZTE0ZTdkZDBhMjA5OWM1
MWM5ZDU1ODM1MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0xMi0wNCAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
dW50aW1lLmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkgY29udGV4dHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhh
dCBvbmx5IGV4aXN0aW5nIGNvbnRleHRzIGFyZSByZXBvcnRlZC4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwKToKKyAg
ICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwLnBy
b3RvdHlwZS5nZXQgbGFzdEFzc2lnbmVkSWQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJ
bml0aWFsaXplci53aW5kb3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLnN0YWJsZUlkKToKKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIpOgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1
dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0wNCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFBh
aW50IHdpdGggVGV4dFBhaW50ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1pZC1tYXAuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM0
NmMwNjcxOWU5ZjFiZjU3OTc5YzI1MzJhNDYzYmNhYmRmOGE0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFw
LmpzCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgTWljcm9zb2Z0
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisgVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgd2luZG93LlN0YWJsZUlkTWFwID0gY2xhc3MgU3Rh
YmxlSWRNYXAgeworICAgICAgICBjb25zdHJ1Y3RvcigpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRoaXMuX2xhc3RBc3NpZ25lZElkID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3Byb3RvY29sVG9T
dGFibGVJZCA9IG5ldyBNYXA7CisgICAgICAgIH0KKworICAgICAgICBnZXQgbGFzdEFzc2lnbmVk
SWQoKSB7IHJldHVybiB0aGlzLl9sYXN0QXNzaWduZWRJZDsgfQorCisgICAgICAgIHN0YWJsZUlk
KHByb3RvY29sSWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxldCBpZCA9IHRoaXMuX3Byb3Rv
Y29sVG9TdGFibGVJZC5nZXQocHJvdG9jb2xJZCk7CisgICAgICAgICAgICBpZiAoIWlkKSB7Cisg
ICAgICAgICAgICAgICAgaWQgPSArK3RoaXMuX2xhc3RBc3NpZ25lZElkOworICAgICAgICAgICAg
ICAgIHRoaXMuX3Byb3RvY29sVG9TdGFibGVJZC5zZXQocHJvdG9jb2xJZCwgaWQpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisgICAgfQorfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlz
aW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMt
bG9hZC5odG1sCmluZGV4IGM5NmIwMjNiMzA5YzZjOGMxYmUwMzVlOWI0MjBjOTc2Y2RhYjlmYzMu
LjRmMmQ0MWQwMTE3MzZhNTc4MmJlNmFhYmUzODRhNjhlZTcwNjFkNGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNh
bmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1s
CkBAIC0zLDM0ICszLDI0IEBACiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBsZXQgbGFzdEFzc2lnbmVkSWQgPSAwOwotICAgIGxl
dCB0YXJnZXRUb0lkID0gbmV3IE1hcDsKLSAgICBmdW5jdGlvbiBzdGFibGVUYXJnZXRJZCh0YXJn
ZXRJZCkKLSAgICB7Ci0gICAgICAgIGxldCBpZCA9IHRhcmdldFRvSWQuZ2V0KHRhcmdldElkKTsK
LSAgICAgICAgaWYgKCFpZCkgewotICAgICAgICAgICAgaWQgPSArK2xhc3RBc3NpZ25lZElkOwot
ICAgICAgICAgICAgdGFyZ2V0VG9JZC5zZXQodGFyZ2V0SWQsIGlkKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gaWQ7Ci0gICAgfQotCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJUYXJnZXQuUFNPTiIpOwogCiAgICAgc3VpdGUuYWRkVGVzdENhc2Uo
ewogICAgICAgICBuYW1lOiAiUHJvdmlzaW9uYWxQYWdlUGF1c2VkIiwKICAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IG5ldyBwcm92aXNpb25hbCBwYWdlIGNhbiBiZSBwYXVzZWQgYmVm
b3JlIG5hdmlnYXRpb24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50IHRhcmdldCBpcyAke3N0YWJsZVRhcmdl
dElkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmllcil9LmApOworICAgICAgICAgICAgbGV0IHRhcmdl
dElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
YEN1cnJlbnQgdGFyZ2V0IGlzICR7dGFyZ2V0SWRNYXAuc3RhYmxlSWQoV0kubWFpblRhcmdldC5p
ZGVudGlmaWVyKX0uYCk7CiAgICAgICAgICAgICBjb25zdCB1cmwgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3Vz
LWxvYWQuaHRtbCI7CiAgICAgICAgICAgICBsZXQgbmF2aWdhdGVkVHdpY2UgPSBmYWxzZTsKIAog
ICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1h
bmFnZXIuRXZlbnQuVGFyZ2V0QWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgIGxl
dCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0
SWQgPSBzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAg
bGV0IHRhcmdldElkID0gdGFyZ2V0SWRNYXAuc3RhYmxlSWQodGFyZ2V0LmlkZW50aWZpZXIpOwog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgVGFyZ2V0
QWRkZWQgZXZlbnQgZm9yIHRhcmdldCAke3RhcmdldElkfS5gKTsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRydWUodGFyZ2V0LmlzUHJvdmlzaW9uYWwsIGBUYXJnZXQgJHt0
YXJnZXRJZH0gc2hvdWxkIGJlIHByb3Zpc2lvbmFsLmApOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VHJ1ZSh0YXJnZXQuaXNQYXVzZWQsIGBUYXJnZXQgJHt0YXJnZXRJZH0g
c2hvdWxkIGJlIHBhdXNlZCBvbiBzdGFydC5gKTsKQEAgLTQ1LDE4ICszNSwxOCBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuRGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQsIChldmVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGxldCB7cHJldmlvdXNUYXJnZXRJZCwgdGFyZ2V0fSA9
IGV2ZW50LmRhdGE7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQg
cmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBldmVudCAke3N0YWJsZVRhcmdldElk
KHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAke3N0YWJsZVRhcmdldElkKHRhcmdldC5pZGVudGlmaWVy
KX0uYCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2
ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBldmVudCAke3RhcmdldElkTWFwLnN0YWJsZUlk
KHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAke3RhcmdldElkTWFwLnN0YWJsZUlkKHRhcmdldC5pZGVu
dGlmaWVyKX0uYCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgV0kudGFyZ2V0TWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3Zl
ZCwgKGV2ZW50KSA9PnsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSBzdGFibGVUYXJn
ZXRJZChldmVudC5kYXRhLnRhcmdldC5pZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBsZXQg
dGFyZ2V0SWQgPSB0YXJnZXRJZE1hcC5zdGFibGVJZChldmVudC5kYXRhLnRhcmdldC5pZGVudGlm
aWVyKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZl
IFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdldCAke3RhcmdldElkfWApOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgICAgIC8vIFdhaXQgZm9yIHBhZ2UgcmVsb2FkIGV2ZW50IHRvIGF2
b2lkIHJhY2UgYmV0d2VlbiB0ZXN0IHJlc3VsdHMgZmx1c2hpbmcgYW5kIHRoZSB0ZXN0IGNvbXBs
ZXRpb24uCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoRnJvbnRlbmRUZXN0
SGFybmVzcy5FdmVudC5UZXN0UGFnZURpZExvYWQpCiAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChsYXN0QXNzaWduZWRJ
ZCwgMywgYFNob3VsZCBoYXZlIHNlZW4gMyBkaWZmZXJlbnQgdGFyZ2V0cy5gKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldElkTWFwLmxhc3RBc3NpZ25l
ZElkLCAzLCBgU2hvdWxkIGhhdmUgc2VlbiAzIGRpZmZlcmVudCB0YXJnZXRzLmApOwogICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgIC50aGVuKHJlc29sdmUpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQt
ZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk1MTNhODJhNmYzYTc3NTcxYjkzMWVi
YzEwMzI3MTI0NDQyNjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACisKK1Rlc3QgdGhhdCBleGFjdGx5IG9uZSBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRD
cmVhdGVkIGV2ZW50IGlzIGZpcmVkIGZvciBlYWNoIGV4aXN0aW5nIGNvbnRleHQgd2hlbiBSdW50
aW1lLmVuYWJsZSBpcyBjYWxsZWQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBJbml0aWFs
IFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogTm8gZHVwbGljYXRlIGNvbnRleHRzIHdoZW4gZW5hYmxpbmcgUnVudGltZSBhZ2VudAor
RXhlY3V0aW9uIGNvbnRleHQgY3JlYXRlZDogaWQ9MSBmcmFtZUlkPTEgaXNQYWdlQ29udGV4dD10
cnVlCitFeGVjdXRpb24gY29udGV4dCBjcmVhdGVkOiBpZD0yIGZyYW1lSWQ9MiBpc1BhZ2VDb250
ZXh0PXRydWUKK1BBU1M6IFNob3VsZCBoYXZlIDIgY29udGV4dHMgKGZvciBtYWluIHdvcmxkIGlu
IHRoZSBtYWluIGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDRiODE0Mjk2ZDBmMTQ3NmIxNTg2MmM0N2E0NjFjODVkY2NjZjAyNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1j
b250ZXh0LWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJJbml0aWFsIFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzIik7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJObyBkdXBsaWNhdGUgY29u
dGV4dHMgd2hlbiBlbmFibGluZyBSdW50aW1lIGFnZW50IiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJUZXN0IHRoYXQgUnVudGltZS5lbmFibGUgd2lsbCBzZW5kIGV4ZWN1dGlvbkNvbnRleHRDcmVh
dGVkIGV2ZW50cyBvbmx5IGZvciBleGlzdG5nIG1haW4gd29ybGQgY29udGV4dHMiLAorICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgbGV0IGNvbnRleHRJZE1hcCA9
IG5ldyBTdGFibGVJZE1hcDsKKyAgICAgICAgICAgIGxldCBmcmFtZUlkTWFwID0gbmV3IFN0YWJs
ZUlkTWFwOworICAgICAgICAgICAgbGV0IGNvbnRleHRDb3VudCA9IDA7CisKKyAgICAgICAgICAg
IEluc3BlY3RvclByb3RvY29sLmFkZEV2ZW50TGlzdGVuZXIoIlJ1bnRpbWUuZXhlY3V0aW9uQ29u
dGV4dENyZWF0ZWQiLCAobWVzc2FnZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCB7
aWQsIGlzUGFnZUNvbnRleHQsIGZyYW1lSWR9ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY29udGV4
dDsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuYWRkUmVzdWx0KGBFeGVjdXRpb24gY29u
dGV4dCBjcmVhdGVkOiBpZD0ke2NvbnRleHRJZE1hcC5zdGFibGVJZChpZCl9IGZyYW1lSWQ9JHtm
cmFtZUlkTWFwLnN0YWJsZUlkKGZyYW1lSWQpfSBpc1BhZ2VDb250ZXh0PSR7aXNQYWdlQ29udGV4
dH1gKQorICAgICAgICAgICAgICAgICsrY29udGV4dENvdW50OworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1hbmQoeworICAgICAgICAgICAg
ICAgIG1ldGhvZDogIlBhZ2UuZW5hYmxlIgorICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIC50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gSW5zcGVjdG9yUHJvdG9jb2wuYXdh
aXRDb21tYW5kKHsKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAiUnVudGltZS5lbmFibGUi
CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhlbigo
KSA9PiB7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKGNvbnRleHRD
b3VudCwgMiwgIlNob3VsZCBoYXZlIDIgY29udGV4dHMgKGZvciBtYWluIHdvcmxkIGluIHRoZSBt
YWluIGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUpIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgICAgICB9KS5jYXRjaChyZWplY3QpOworICAgICAgICB9CisgICAgfSk7CisKKyAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aWZyYW1lIGlkPSJzdWJmcmFtZSIgc3JjPSJyZXNvdXJjZXMvY2hhbmdlLWV4ZWN1
dGlvbi1jb250ZXh0LWlkZW50aWZpZXItc3ViZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCki
PjwvaWZyYW1lPgorPHA+VGVzdCB0aGF0IGV4YWN0bHkgb25lIFJ1bnRpbWUuZXhlY3V0aW9uQ29u
dGV4dENyZWF0ZWQgZXZlbnQgaXMgZmlyZWQgZm9yIGVhY2ggZXhpc3RpbmcgY29udGV4dCB3aGVu
IFJ1bnRpbWUuZW5hYmxlIGlzIGNhbGxlZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384847</attachid>
            <date>2019-12-04 14:53:46 -0800</date>
            <delta_ts>2019-12-04 15:46:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191204145345.patch</filename>
            <type>text/plain</type>
            <size>13985</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMxYTdkZDA1ZmJlNjJk
M2E4ZDI3MGEzZGYxZTdkZGEzMTEyODFkMS4uNmZiMWQ1N2UxOWJmYWM4OTQ3ZmE3NWIwOTllZmEz
NTdhM2NlYjI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbik6CisKIDIw
MTktMTItMDQgIExvdWllIExpdm9uLUJlbWVsICA8bGxpdm9uYmVtZWxAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBleGNsdXNpb24gcnVsZSBmb3IgdGV4dCBtYW5pcHVsYXRpb24gU1BJIHRvIGV4
Y2x1ZGUgYmFzZWQgb24gZWxlbWVudCBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBjYjZlZDlmNmM4NGQy
NWVhOTI3MmQxZTNlYTRmMTU1YjZkZWNkNTU0Li4yNmRmYjI2MmIxOGYyNjk0NTZiYmIxMGVkMGEw
ZGZhODRlZDAyZThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHN0YXRpYyBGcmFt
ZSogZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRv
d09iamVjdEluV29ybGRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKLSAgICBpZiAoJndv
cmxkICE9ICZtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkKKyAgICBpZiAoIXdvcmxkLmlzTm9ybWFs
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChhdXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNw
cAppbmRleCA4YzRhMTA0ZGEwNDExYTU5ZWVlYzE2YmIzMGYyZTg4MmNlZDZlMTcxLi5iMDFiM2Iw
OTBhYjY3NTUwN2JjZTgzZTQzMTZjODlhYzJjNWM3YTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBA
IC03MCwxNCArNzAsMTUgQEAgUGFnZVJ1bnRpbWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKSA9
IGRlZmF1bHQ7CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBl
cnJvclN0cmluZykKIHsKLSAgICBib29sIGVuYWJsZWQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMu
cGFnZVJ1bnRpbWVBZ2VudCgpID09IHRoaXM7CisgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50
cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpcykKKyAgICAgICAgcmV0dXJuOwogCi0gICAgSW5z
cGVjdG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JTdHJpbmcpOworICAgIC8vIFJlcG9ydCBp
bml0aWFsIGNvbnRleHRzIGJlZm9yZSBlbmFibGluZyBpbnN0cnVtZW50YXRpb24gYXMgdGhlIHJl
cG9ydGluZworICAgIC8vIGNhbiBmb3JjZSBjcmVhdGlvbiBvZiBzY3JpcHQgc3RhdGUgd2hpY2gg
Y291bGQgcmVzdWx0IGluIGR1cGxpY2F0ZSBub3RpZmljYXRpb25zLgorICAgIHJlcG9ydEV4ZWN1
dGlvbkNvbnRleHRDcmVhdGlvbigpOwogCisgICAgSW5zcGVjdG9yUnVudGltZUFnZW50OjplbmFi
bGUoZXJyb3JTdHJpbmcpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlUnVudGlt
ZUFnZW50KHRoaXMpOwotCi0gICAgaWYgKCFlbmFibGVkKQotICAgICAgICByZXBvcnRFeGVjdXRp
b25Db250ZXh0Q3JlYXRpb24oKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpkaXNhYmxl
KEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTE0Miw4ICsxNDMsMTAgQEAgdm9pZCBQYWdl
UnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKQogICAgICAgICBm
cmFtZS0+c2NyaXB0KCkuY29sbGVjdElzb2xhdGVkQ29udGV4dHMoaXNvbGF0ZWRDb250ZXh0cyk7
CiAgICAgICAgIGlmIChpc29sYXRlZENvbnRleHRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICBmb3IgKGF1dG8mIGNvbnRleHQgOiBpc29sYXRlZENvbnRleHRzKQot
ICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJhbWVJZCwgY29udGV4dC5maXJzdCwg
Y29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAgZm9yIChhdXRvJiBjb250ZXh0IDogaXNv
bGF0ZWRDb250ZXh0cykgeworICAgICAgICAgICAgaWYgKHNjcmlwdFN0YXRlICE9IGNvbnRleHQu
Zmlyc3QpCisgICAgICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJhbWVJZCwgY29u
dGV4dC5maXJzdCwgY29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAgfQogICAgICAgICBp
c29sYXRlZENvbnRleHRzLmNsZWFyKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFiMGI0OTZmZjA0NGQ3
YTU4YmY5YmY2MjM4MDg1MWE2MWI0N2M3MGEuLmM2MjI1ZmY3YzgwNDJkZTE0ZTdkZDBhMjA5OWM1
MWM5ZDU1ODM1MWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0xMi0wNCAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBS
dW50aW1lLmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkgY29udGV4dHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhh
dCBvbmx5IGV4aXN0aW5nIGNvbnRleHRzIGFyZSByZXBvcnRlZC4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwKToKKyAg
ICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwLnBy
b3RvdHlwZS5nZXQgbGFzdEFzc2lnbmVkSWQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJ
bml0aWFsaXplci53aW5kb3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLnN0YWJsZUlkKToKKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIpOgorICAgICAgICAqIGh0dHAvdGVzdHMv
aW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1
dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0wNCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIFBh
aW50IHdpdGggVGV4dFBhaW50ZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1pZC1tYXAuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM0
NmMwNjcxOWU5ZjFiZjU3OTc5YzI1MzJhNDYzYmNhYmRmOGE0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFw
LmpzCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgTWljcm9zb2Z0
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisgVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgd2luZG93LlN0YWJsZUlkTWFwID0gY2xhc3MgU3Rh
YmxlSWRNYXAgeworICAgICAgICBjb25zdHJ1Y3RvcigpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRoaXMuX2xhc3RBc3NpZ25lZElkID0gMDsKKyAgICAgICAgICAgIHRoaXMuX3Byb3RvY29sVG9T
dGFibGVJZCA9IG5ldyBNYXA7CisgICAgICAgIH0KKworICAgICAgICBnZXQgbGFzdEFzc2lnbmVk
SWQoKSB7IHJldHVybiB0aGlzLl9sYXN0QXNzaWduZWRJZDsgfQorCisgICAgICAgIHN0YWJsZUlk
KHByb3RvY29sSWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxldCBpZCA9IHRoaXMuX3Byb3Rv
Y29sVG9TdGFibGVJZC5nZXQocHJvdG9jb2xJZCk7CisgICAgICAgICAgICBpZiAoIWlkKSB7Cisg
ICAgICAgICAgICAgICAgaWQgPSArK3RoaXMuX2xhc3RBc3NpZ25lZElkOworICAgICAgICAgICAg
ICAgIHRoaXMuX3Byb3RvY29sVG9TdGFibGVJZC5zZXQocHJvdG9jb2xJZCwgaWQpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisgICAgfQorfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlz
aW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMt
bG9hZC5odG1sCmluZGV4IGM5NmIwMjNiMzA5YzZjOGMxYmUwMzVlOWI0MjBjOTc2Y2RhYjlmYzMu
LjRmMmQ0MWQwMTE3MzZhNTc4MmJlNmFhYmUzODRhNjhlZTcwNjFkNGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNh
bmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1s
CkBAIC0zLDM0ICszLDI0IEBACiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBsZXQgbGFzdEFzc2lnbmVkSWQgPSAwOwotICAgIGxl
dCB0YXJnZXRUb0lkID0gbmV3IE1hcDsKLSAgICBmdW5jdGlvbiBzdGFibGVUYXJnZXRJZCh0YXJn
ZXRJZCkKLSAgICB7Ci0gICAgICAgIGxldCBpZCA9IHRhcmdldFRvSWQuZ2V0KHRhcmdldElkKTsK
LSAgICAgICAgaWYgKCFpZCkgewotICAgICAgICAgICAgaWQgPSArK2xhc3RBc3NpZ25lZElkOwot
ICAgICAgICAgICAgdGFyZ2V0VG9JZC5zZXQodGFyZ2V0SWQsIGlkKTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4gaWQ7Ci0gICAgfQotCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJUYXJnZXQuUFNPTiIpOwogCiAgICAgc3VpdGUuYWRkVGVzdENhc2Uo
ewogICAgICAgICBuYW1lOiAiUHJvdmlzaW9uYWxQYWdlUGF1c2VkIiwKICAgICAgICAgZGVzY3Jp
cHRpb246ICJDaGVjayB0aGF0IG5ldyBwcm92aXNpb25hbCBwYWdlIGNhbiBiZSBwYXVzZWQgYmVm
b3JlIG5hdmlnYXRpb24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50IHRhcmdldCBpcyAke3N0YWJsZVRhcmdl
dElkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmllcil9LmApOworICAgICAgICAgICAgbGV0IHRhcmdl
dElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
YEN1cnJlbnQgdGFyZ2V0IGlzICR7dGFyZ2V0SWRNYXAuc3RhYmxlSWQoV0kubWFpblRhcmdldC5p
ZGVudGlmaWVyKX0uYCk7CiAgICAgICAgICAgICBjb25zdCB1cmwgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3Vz
LWxvYWQuaHRtbCI7CiAgICAgICAgICAgICBsZXQgbmF2aWdhdGVkVHdpY2UgPSBmYWxzZTsKIAog
ICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1h
bmFnZXIuRXZlbnQuVGFyZ2V0QWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgIGxl
dCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0
SWQgPSBzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAg
bGV0IHRhcmdldElkID0gdGFyZ2V0SWRNYXAuc3RhYmxlSWQodGFyZ2V0LmlkZW50aWZpZXIpOwog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgVGFyZ2V0
QWRkZWQgZXZlbnQgZm9yIHRhcmdldCAke3RhcmdldElkfS5gKTsKICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRydWUodGFyZ2V0LmlzUHJvdmlzaW9uYWwsIGBUYXJnZXQgJHt0
YXJnZXRJZH0gc2hvdWxkIGJlIHByb3Zpc2lvbmFsLmApOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VHJ1ZSh0YXJnZXQuaXNQYXVzZWQsIGBUYXJnZXQgJHt0YXJnZXRJZH0g
c2hvdWxkIGJlIHBhdXNlZCBvbiBzdGFydC5gKTsKQEAgLTQ1LDE4ICszNSwxOCBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuRGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQsIChldmVu
dCkgPT4gewogICAgICAgICAgICAgICAgIGxldCB7cHJldmlvdXNUYXJnZXRJZCwgdGFyZ2V0fSA9
IGV2ZW50LmRhdGE7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQg
cmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBldmVudCAke3N0YWJsZVRhcmdldElk
KHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAke3N0YWJsZVRhcmdldElkKHRhcmdldC5pZGVudGlmaWVy
KX0uYCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2
ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBldmVudCAke3RhcmdldElkTWFwLnN0YWJsZUlk
KHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAke3RhcmdldElkTWFwLnN0YWJsZUlkKHRhcmdldC5pZGVu
dGlmaWVyKX0uYCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgV0kudGFyZ2V0TWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3Zl
ZCwgKGV2ZW50KSA9PnsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSBzdGFibGVUYXJn
ZXRJZChldmVudC5kYXRhLnRhcmdldC5pZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBsZXQg
dGFyZ2V0SWQgPSB0YXJnZXRJZE1hcC5zdGFibGVJZChldmVudC5kYXRhLnRhcmdldC5pZGVudGlm
aWVyKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZl
IFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdldCAke3RhcmdldElkfWApOwogICAgICAgICAg
ICAgfSk7CiAKICAgICAgICAgICAgIC8vIFdhaXQgZm9yIHBhZ2UgcmVsb2FkIGV2ZW50IHRvIGF2
b2lkIHJhY2UgYmV0d2VlbiB0ZXN0IHJlc3VsdHMgZmx1c2hpbmcgYW5kIHRoZSB0ZXN0IGNvbXBs
ZXRpb24uCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoRnJvbnRlbmRUZXN0
SGFybmVzcy5FdmVudC5UZXN0UGFnZURpZExvYWQpCiAgICAgICAgICAgICAudGhlbigoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChsYXN0QXNzaWduZWRJ
ZCwgMywgYFNob3VsZCBoYXZlIHNlZW4gMyBkaWZmZXJlbnQgdGFyZ2V0cy5gKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdldElkTWFwLmxhc3RBc3NpZ25l
ZElkLCAzLCBgU2hvdWxkIGhhdmUgc2VlbiAzIGRpZmZlcmVudCB0YXJnZXRzLmApOwogICAgICAg
ICAgICAgfSkKICAgICAgICAgICAgIC50aGVuKHJlc29sdmUpOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQt
ZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTk1MTNhODJhNmYzYTc3NTcxYjkzMWVi
YzEwMzI3MTI0NDQyNjJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEwIEBACisKK1Rlc3QgdGhhdCBleGFjdGx5IG9uZSBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRD
cmVhdGVkIGV2ZW50IGlzIGZpcmVkIGZvciBlYWNoIGV4aXN0aW5nIGNvbnRleHQgd2hlbiBSdW50
aW1lLmVuYWJsZSBpcyBjYWxsZWQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBJbml0aWFs
IFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogTm8gZHVwbGljYXRlIGNvbnRleHRzIHdoZW4gZW5hYmxpbmcgUnVudGltZSBhZ2VudAor
RXhlY3V0aW9uIGNvbnRleHQgY3JlYXRlZDogaWQ9MSBmcmFtZUlkPTEgaXNQYWdlQ29udGV4dD10
cnVlCitFeGVjdXRpb24gY29udGV4dCBjcmVhdGVkOiBpZD0yIGZyYW1lSWQ9MiBpc1BhZ2VDb250
ZXh0PXRydWUKK1BBU1M6IFNob3VsZCBoYXZlIDIgY29udGV4dHMgKGZvciBtYWluIHdvcmxkIGlu
IHRoZSBtYWluIGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNWRhNzMzNWZkYmMxZDZhYjlhY2E2NTA5OTg5NjVkMTllMmRlYjUxOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1j
b250ZXh0LWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJJbml0aWFsIFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzIik7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJObyBkdXBsaWNhdGUgY29u
dGV4dHMgd2hlbiBlbmFibGluZyBSdW50aW1lIGFnZW50IiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJUZXN0IHRoYXQgUnVudGltZS5lbmFibGUgd2lsbCBzZW5kIGV4ZWN1dGlvbkNvbnRleHRDcmVh
dGVkIGV2ZW50cyBvbmx5IGZvciBleGlzdG5nIG1haW4gd29ybGQgY29udGV4dHMiLAorICAgICAg
ICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGNvbnRleHRJZE1hcCA9IG5ldyBTdGFi
bGVJZE1hcDsKKyAgICAgICAgICAgIGxldCBmcmFtZUlkTWFwID0gbmV3IFN0YWJsZUlkTWFwOwor
ICAgICAgICAgICAgbGV0IGNvbnRleHRDb3VudCA9IDA7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmFkZEV2ZW50TGlzdGVuZXIoIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0
ZWQiLCAobWVzc2FnZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCB7aWQsIGlzUGFn
ZUNvbnRleHQsIGZyYW1lSWR9ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY29udGV4dDsKKyAgICAg
ICAgICAgICAgICBQcm90b2NvbFRlc3QuYWRkUmVzdWx0KGBFeGVjdXRpb24gY29udGV4dCBjcmVh
dGVkOiBpZD0ke2NvbnRleHRJZE1hcC5zdGFibGVJZChpZCl9IGZyYW1lSWQ9JHtmcmFtZUlkTWFw
LnN0YWJsZUlkKGZyYW1lSWQpfSBpc1BhZ2VDb250ZXh0PSR7aXNQYWdlQ29udGV4dH1gKQorICAg
ICAgICAgICAgICAgICsrY29udGV4dENvdW50OworICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wu
YXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAiUGFnZS5lbmFibGUi
CisgICAgICAgICAgICAgICAgfSksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wu
YXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAiUnVudGltZS5lbmFi
bGUiCisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmV4cGVjdEVxdWFsKGNvbnRleHRDb3VudCwgMiwgIlNob3VsZCBoYXZlIDIgY29u
dGV4dHMgKGZvciBtYWluIHdvcmxkIGluIHRoZSBtYWluIGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUp
IikKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBpZD0ic3ViZnJhbWUi
IHNyYz0icmVzb3VyY2VzL2NoYW5nZS1leGVjdXRpb24tY29udGV4dC1pZGVudGlmaWVyLXN1YmZy
YW1lLmh0bWwiIG9ubG9hZD0icnVuVGVzdCgpIj48L2lmcmFtZT4KKzxwPlRlc3QgdGhhdCBleGFj
dGx5IG9uZSBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50IGlzIGZpcmVkIGZv
ciBlYWNoIGV4aXN0aW5nIGNvbnRleHQgd2hlbiBSdW50aW1lLmVuYWJsZSBpcyBjYWxsZWQuPC9w
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384858</attachid>
            <date>2019-12-04 15:46:53 -0800</date>
            <delta_ts>2019-12-05 10:43:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191204154653.patch</filename>
            <type>text/plain</type>
            <size>15624</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZhZGQzYWMxY2QxYTVj
ZmQ4OThlNjI0Njk5NTgxNmIzZThlNTRlOC4uNzg5OTNjMjdlZDg4NTFkZDhlZDU3MGFiYWYwNDY1
ODA1N2RmZWFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbik6CisKIDIw
MTktMTItMDQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAg
ICAgIE5vbi1jYWxsYWJsZSAiaGFuZGxlRXZlbnQiIHByb3BlcnR5IGlzIHNpbGVudGx5IGlnbm9y
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc4ZGNlNmE0NzVhMTA5ZTc4YjkzMDI4OGRk
MjdkZDk3YzEyOTQxZDQuLmJmNjgyNDNlZGYxZDBlNTc3OWQzNTA1MThlODlhMjRlNmRiN2ExNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTA0ICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBj
b250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIG9ic29sZXRlIEZJWE1FLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMv
RXhlY3V0aW9uQ29udGV4dExpc3QuanM6CisgICAgICAgIChXSS5FeGVjdXRpb25Db250ZXh0TGlz
dC5wcm90b3R5cGUuYWRkKToKKwogMjAxOS0xMi0wNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBpbnNwZWN0b3Ig
dG8gcGF1c2UgcHJvdmlzaW9uYWwgcGFnZSBsb2FkIGFuZCByZXN0b3JlIGl0cyBzdGF0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcAppbmRleCBjYjZlZDlmNmM4NGQyNWVhOTI3MmQxZTNlYTRmMTU1YjZkZWNkNTU0Li4yNmRm
YjI2MmIxOGYyNjk0NTZiYmIxMGVkMGEwZGZhODRlZDAyZThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMTIx
LDcgKzEyMSw3IEBAIHN0YXRpYyBGcmFtZSogZnJhbWVGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRDbGVhcldpbmRvd09iamVjdEluV29ybGRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKIHsKLSAgICBpZiAoJndvcmxkICE9ICZtYWluVGhyZWFkTm9ybWFsV29ybGQoKSkK
KyAgICBpZiAoIXdvcmxkLmlzTm9ybWFsKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChh
dXRvKiBwYWdlRGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2Vy
QWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFn
ZS9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
cGFnZS9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCA4YzRhMTA0ZGEwNDExYTU5ZWVlYzE2YmIz
MGYyZTg4MmNlZDZlMTcxLi5iMDFiM2IwOTBhYjY3NTUwN2JjZTgzZTQzMTZjODlhYzJjNWM3YTM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC03MCwxNCArNzAsMTUgQEAgUGFnZVJ1bnRpbWVBZ2Vu
dDo6flBhZ2VSdW50aW1lQWdlbnQoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2Vu
dDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKLSAgICBib29sIGVuYWJsZWQg
PSBtX2luc3RydW1lbnRpbmdBZ2VudHMucGFnZVJ1bnRpbWVBZ2VudCgpID09IHRoaXM7CisgICAg
aWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpcykKKyAg
ICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JT
dHJpbmcpOworICAgIC8vIFJlcG9ydCBpbml0aWFsIGNvbnRleHRzIGJlZm9yZSBlbmFibGluZyBp
bnN0cnVtZW50YXRpb24gYXMgdGhlIHJlcG9ydGluZworICAgIC8vIGNhbiBmb3JjZSBjcmVhdGlv
biBvZiBzY3JpcHQgc3RhdGUgd2hpY2ggY291bGQgcmVzdWx0IGluIGR1cGxpY2F0ZSBub3RpZmlj
YXRpb25zLgorICAgIHJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbigpOwogCisgICAgSW5z
cGVjdG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JTdHJpbmcpOwogICAgIG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5zZXRQYWdlUnVudGltZUFnZW50KHRoaXMpOwotCi0gICAgaWYgKCFlbmFibGVk
KQotICAgICAgICByZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKIH0KIAogdm9pZCBQ
YWdlUnVudGltZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTE0
Miw4ICsxNDMsMTAgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250
ZXh0Q3JlYXRpb24oKQogICAgICAgICBmcmFtZS0+c2NyaXB0KCkuY29sbGVjdElzb2xhdGVkQ29u
dGV4dHMoaXNvbGF0ZWRDb250ZXh0cyk7CiAgICAgICAgIGlmIChpc29sYXRlZENvbnRleHRzLmlz
RW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmb3IgKGF1dG8mIGNvbnRl
eHQgOiBpc29sYXRlZENvbnRleHRzKQotICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQo
ZnJhbWVJZCwgY29udGV4dC5maXJzdCwgY29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAg
Zm9yIChhdXRvJiBjb250ZXh0IDogaXNvbGF0ZWRDb250ZXh0cykgeworICAgICAgICAgICAgaWYg
KHNjcmlwdFN0YXRlICE9IGNvbnRleHQuZmlyc3QpCisgICAgICAgICAgICAgICAgbm90aWZ5Q29u
dGV4dENyZWF0ZWQoZnJhbWVJZCwgY29udGV4dC5maXJzdCwgY29udGV4dC5zZWNvbmQsIGZhbHNl
KTsKKyAgICAgICAgfQogICAgICAgICBpc29sYXRlZENvbnRleHRzLmNsZWFyKCk7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxz
L0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzCmluZGV4IGIyYjlhYTA1Y2E5MmQy
YjRmYzQ5MmI0ZGRiZDNkZGY4NDg1MzBjNDMuLjdhYjI1ZWQ4YmQ0MTg4MmY5MTViZGY1MDdjMmY5
M2NhZTI1YjZjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanMKQEAgLTQ1
LDEyICs0NSw2IEBAIFdJLkV4ZWN1dGlvbkNvbnRleHRMaXN0ID0gY2xhc3MgRXhlY3V0aW9uQ29u
dGV4dExpc3QKIAogICAgIGFkZChjb250ZXh0KQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IFRo
ZSBiYWNrZW5kIHNlbmRzIGR1cGxpY2F0ZSBwYWdlIGNvbnRleHQgZXhlY3V0aW9uIGNvbnRleHRz
IHdpdGggdGhlIHNhbWUgaWQuIFdoeT8KLSAgICAgICAgaWYgKGNvbnRleHQuaXNQYWdlQ29udGV4
dCAmJiB0aGlzLl9wYWdlRXhlY3V0aW9uQ29udGV4dCkgewotICAgICAgICAgICAgY29uc29sZS5h
c3NlcnQoY29udGV4dC5pZCA9PT0gdGhpcy5fcGFnZUV4ZWN1dGlvbkNvbnRleHQuaWQpOwotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KICAgICAgICAgdGhpcy5fY29udGV4
dHMucHVzaChjb250ZXh0KTsKIAogICAgICAgICBpZiAoY29udGV4dC5pc1BhZ2VDb250ZXh0KSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZTZhZmY5MzZmNjJmNmM4ZGI1OGZhZGY3MThjZWIxMGI2ZDI5NzFiNi4uYzNlYjg4
MzhlNGM1ZjYyOGI2MTlkOTY3ZmU1MWVhZmEzZmZiYWEyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDE5LTEyLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAo
bm9uIGV4aXN0ZW50KSBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG9ubHkgZXhpc3RpbmcgY29udGV4dHMgYXJlIHJlcG9y
dGVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1p
ZC1tYXAuanM6IEFkZGVkLgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53
aW5kb3cuU3RhYmxlSWRNYXApOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXpl
ci53aW5kb3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLmdldCBsYXN0QXNzaWduZWRJZCk6CisgICAg
ICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLndpbmRvdy5TdGFibGVJZE1hcC5wcm90
b3R5cGUuc3RhYmxlSWQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcik6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQt
Y2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUv
ZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLmh0bWw6IEFkZGVkLgor
CiAyMDE5LTEyLTA0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KIAog
ICAgICAgICBOb24tY2FsbGFibGUgImhhbmRsZUV2ZW50IiBwcm9wZXJ0eSBpcyBzaWxlbnRseSBp
Z25vcmVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvc3RhYmxlLWlkLW1hcC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNDZjMDY3MTllOWYxYmY1
Nzk3OWMyNTMyYTQ2M2JjYWJkZjhhNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcwpAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIo
KCkgPT4geworICAgIHdpbmRvdy5TdGFibGVJZE1hcCA9IGNsYXNzIFN0YWJsZUlkTWFwIHsKKyAg
ICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLl9sYXN0QXNz
aWduZWRJZCA9IDA7CisgICAgICAgICAgICB0aGlzLl9wcm90b2NvbFRvU3RhYmxlSWQgPSBuZXcg
TWFwOworICAgICAgICB9CisKKyAgICAgICAgZ2V0IGxhc3RBc3NpZ25lZElkKCkgeyByZXR1cm4g
dGhpcy5fbGFzdEFzc2lnbmVkSWQ7IH0KKworICAgICAgICBzdGFibGVJZChwcm90b2NvbElkKQor
ICAgICAgICB7CisgICAgICAgICAgICBsZXQgaWQgPSB0aGlzLl9wcm90b2NvbFRvU3RhYmxlSWQu
Z2V0KHByb3RvY29sSWQpOworICAgICAgICAgICAgaWYgKCFpZCkgeworICAgICAgICAgICAgICAg
IGlkID0gKyt0aGlzLl9sYXN0QXNzaWduZWRJZDsKKyAgICAgICAgICAgICAgICB0aGlzLl9wcm90
b2NvbFRvU3RhYmxlSWQuc2V0KHByb3RvY29sSWQsIGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorICAgIH0KK30pOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2Fu
Y2Vscy1wcmV2aW91cy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbAppbmRl
eCBjOTZiMDIzYjMwOWM2YzhjMWJlMDM1ZTliNDIwYzk3NmNkYWI5ZmMzLi40ZjJkNDFkMDExNzM2
YTU3ODJiZTZhYWJlMzg0YTY4ZWU3MDYxZDRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3Vz
LWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQv
cHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbApAQCAtMywzNCArMywy
NCBAQAogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvc3RhYmxlLWlkLW1hcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVz
dCgpCiB7Ci0gICAgbGV0IGxhc3RBc3NpZ25lZElkID0gMDsKLSAgICBsZXQgdGFyZ2V0VG9JZCA9
IG5ldyBNYXA7Ci0gICAgZnVuY3Rpb24gc3RhYmxlVGFyZ2V0SWQodGFyZ2V0SWQpCi0gICAgewot
ICAgICAgICBsZXQgaWQgPSB0YXJnZXRUb0lkLmdldCh0YXJnZXRJZCk7Ci0gICAgICAgIGlmICgh
aWQpIHsKLSAgICAgICAgICAgIGlkID0gKytsYXN0QXNzaWduZWRJZDsKLSAgICAgICAgICAgIHRh
cmdldFRvSWQuc2V0KHRhcmdldElkLCBpZCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGlk
OwotICAgIH0KLQogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiVGFyZ2V0LlBTT04iKTsKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFt
ZTogIlByb3Zpc2lvbmFsUGFnZVBhdXNlZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sg
dGhhdCBuZXcgcHJvdmlzaW9uYWwgcGFnZSBjYW4gYmUgcGF1c2VkIGJlZm9yZSBuYXZpZ2F0aW9u
LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhgQ3VycmVudCB0YXJnZXQgaXMgJHtzdGFibGVUYXJnZXRJZChXSS5tYWluVGFy
Z2V0LmlkZW50aWZpZXIpfS5gKTsKKyAgICAgICAgICAgIGxldCB0YXJnZXRJZE1hcCA9IG5ldyBT
dGFibGVJZE1hcDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50IHRhcmdl
dCBpcyAke3RhcmdldElkTWFwLnN0YWJsZUlkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmllcil9LmAp
OwogICAgICAgICAgICAgY29uc3QgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9pbnNwZWN0
b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWwiOwog
ICAgICAgICAgICAgbGV0IG5hdmlnYXRlZFR3aWNlID0gZmFsc2U7CiAKICAgICAgICAgICAgIFdJ
LnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRh
cmdldEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0ID0gZXZl
bnQuZGF0YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gc3RhYmxlVGFy
Z2V0SWQodGFyZ2V0LmlkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGxldCB0YXJnZXRJZCA9
IHRhcmdldElkTWFwLnN0YWJsZUlkKHRhcmdldC5pZGVudGlmaWVyKTsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZlIFRhcmdldEFkZGVkIGV2ZW50IGZv
ciB0YXJnZXQgJHt0YXJnZXRJZH0uYCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUcnVlKHRhcmdldC5pc1Byb3Zpc2lvbmFsLCBgVGFyZ2V0ICR7dGFyZ2V0SWR9IHNob3Vs
ZCBiZSBwcm92aXNpb25hbC5gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRydWUodGFyZ2V0LmlzUGF1c2VkLCBgVGFyZ2V0ICR7dGFyZ2V0SWR9IHNob3VsZCBiZSBwYXVz
ZWQgb24gc3RhcnQuYCk7CkBAIC00NSwxOCArMzUsMTggQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAg
ICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5h
Z2VyLkV2ZW50LkRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0LCAoZXZlbnQpID0+IHsKICAgICAg
ICAgICAgICAgICBsZXQge3ByZXZpb3VzVGFyZ2V0SWQsIHRhcmdldH0gPSBldmVudC5kYXRhOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgRGlkQ29t
bWl0UHJvdmlzaW9uYWxUYXJnZXQgZXZlbnQgJHtzdGFibGVUYXJnZXRJZChwcmV2aW91c1Rhcmdl
dElkKX0gPT4gJHtzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRpZmllcil9LmApOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgRGlkQ29tbWl0UHJv
dmlzaW9uYWxUYXJnZXQgZXZlbnQgJHt0YXJnZXRJZE1hcC5zdGFibGVJZChwcmV2aW91c1Rhcmdl
dElkKX0gPT4gJHt0YXJnZXRJZE1hcC5zdGFibGVJZCh0YXJnZXQuaWRlbnRpZmllcil9LmApOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldFJlbW92ZWQsIChldmVudCkgPT57
Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gc3RhYmxlVGFyZ2V0SWQoZXZlbnQuZGF0
YS50YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gdGFy
Z2V0SWRNYXAuc3RhYmxlSWQoZXZlbnQuZGF0YS50YXJnZXQuaWRlbnRpZmllcik7CiAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBUYXJnZXRSZW1vdmVk
IGV2ZW50IGZvciB0YXJnZXQgJHt0YXJnZXRJZH1gKTsKICAgICAgICAgICAgIH0pOwogCiAgICAg
ICAgICAgICAvLyBXYWl0IGZvciBwYWdlIHJlbG9hZCBldmVudCB0byBhdm9pZCByYWNlIGJldHdl
ZW4gdGVzdCByZXN1bHRzIGZsdXNoaW5nIGFuZCB0aGUgdGVzdCBjb21wbGV0aW9uLgogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQu
VGVzdFBhZ2VEaWRMb2FkKQogICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobGFzdEFzc2lnbmVkSWQsIDMsIGBTaG91bGQg
aGF2ZSBzZWVuIDMgZGlmZmVyZW50IHRhcmdldHMuYCk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbCh0YXJnZXRJZE1hcC5sYXN0QXNzaWduZWRJZCwgMywgYFNob3Vs
ZCBoYXZlIHNlZW4gMyBkaWZmZXJlbnQgdGFyZ2V0cy5gKTsKICAgICAgICAgICAgIH0pCiAgICAg
ICAgICAgICAudGhlbihyZXNvbHZlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODE5NTEzYTgyYTZmM2E3NzU3MWI5MzFlYmMxMDMyNzEyNDQ0MjYy
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1
dGlvbi1jb250ZXh0LWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitUZXN0
IHRoYXQgZXhhY3RseSBvbmUgUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudCBp
cyBmaXJlZCBmb3IgZWFjaCBleGlzdGluZyBjb250ZXh0IHdoZW4gUnVudGltZS5lbmFibGUgaXMg
Y2FsbGVkLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogSW5pdGlhbCBSdW50aW1lLmV4ZWN1
dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50cworLS0gUnVubmluZyB0ZXN0IGNhc2U6IE5vIGR1cGxp
Y2F0ZSBjb250ZXh0cyB3aGVuIGVuYWJsaW5nIFJ1bnRpbWUgYWdlbnQKK0V4ZWN1dGlvbiBjb250
ZXh0IGNyZWF0ZWQ6IGlkPTEgZnJhbWVJZD0xIGlzUGFnZUNvbnRleHQ9dHJ1ZQorRXhlY3V0aW9u
IGNvbnRleHQgY3JlYXRlZDogaWQ9MiBmcmFtZUlkPTIgaXNQYWdlQ29udGV4dD10cnVlCitQQVNT
OiBTaG91bGQgaGF2ZSAyIGNvbnRleHRzIChmb3IgbWFpbiB3b3JsZCBpbiB0aGUgbWFpbiBmcmFt
ZSBhbmQgdGhlIHN1YmZyYW1lKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVk
YTczMzVmZGJjMWQ2YWI5YWNhNjUwOTk4OTY1ZDE5ZTJkZWI1MTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMu
aHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3Rh
YmxlLWlkLW1hcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiSW5pdGlhbCBS
dW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50cyIpOworCisgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiTm8gZHVwbGljYXRlIGNvbnRleHRzIHdoZW4gZW5h
YmxpbmcgUnVudGltZSBhZ2VudCIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IFJ1
bnRpbWUuZW5hYmxlIHdpbGwgc2VuZCBleGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudHMgb25s
eSBmb3IgZXhpc3RuZyBtYWluIHdvcmxkIGNvbnRleHRzIiwKKyAgICAgICAgYXN5bmMgdGVzdCgp
IHsKKyAgICAgICAgICAgIGxldCBjb250ZXh0SWRNYXAgPSBuZXcgU3RhYmxlSWRNYXA7CisgICAg
ICAgICAgICBsZXQgZnJhbWVJZE1hcCA9IG5ldyBTdGFibGVJZE1hcDsKKyAgICAgICAgICAgIGxl
dCBjb250ZXh0Q291bnQgPSAwOworCisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5hZGRF
dmVudExpc3RlbmVyKCJSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIiwgKG1lc3NhZ2VP
YmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBsZXQge2lkLCBpc1BhZ2VDb250ZXh0LCBmcmFt
ZUlkfSA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLmNvbnRleHQ7CisgICAgICAgICAgICAgICAgUHJv
dG9jb2xUZXN0LmFkZFJlc3VsdChgRXhlY3V0aW9uIGNvbnRleHQgY3JlYXRlZDogaWQ9JHtjb250
ZXh0SWRNYXAuc3RhYmxlSWQoaWQpfSBmcmFtZUlkPSR7ZnJhbWVJZE1hcC5zdGFibGVJZChmcmFt
ZUlkKX0gaXNQYWdlQ29udGV4dD0ke2lzUGFnZUNvbnRleHR9YCkKKyAgICAgICAgICAgICAgICAr
K2NvbnRleHRDb3VudDsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7
CisgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogIlBhZ2UuZW5hYmxlIgorICAgICAgICAgICAg
ICAgIH0pLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7
CisgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogIlJ1bnRpbWUuZW5hYmxlIgorICAgICAgICAg
ICAgICAgIH0pCisgICAgICAgICAgICBdKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RFcXVhbChjb250ZXh0Q291bnQsIDIsICJTaG91bGQgaGF2ZSAyIGNvbnRleHRzIChmb3IgbWFp
biB3b3JsZCBpbiB0aGUgbWFpbiBmcmFtZSBhbmQgdGhlIHN1YmZyYW1lKSIpCisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9InN1YmZyYW1lIiBzcmM9InJlc291cmNl
cy9jaGFuZ2UtZXhlY3V0aW9uLWNvbnRleHQtaWRlbnRpZmllci1zdWJmcmFtZS5odG1sIiBvbmxv
YWQ9InJ1blRlc3QoKSI+PC9pZnJhbWU+Cis8cD5UZXN0IHRoYXQgZXhhY3RseSBvbmUgUnVudGlt
ZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudCBpcyBmaXJlZCBmb3IgZWFjaCBleGlzdGlu
ZyBjb250ZXh0IHdoZW4gUnVudGltZS5lbmFibGUgaXMgY2FsbGVkLjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384920</attachid>
            <date>2019-12-05 10:43:49 -0800</date>
            <delta_ts>2019-12-11 14:40:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191205104348.patch</filename>
            <type>text/plain</type>
            <size>15696</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjUyZjhiNzA0Yzk3MWY1
NzQ5YTBmNDI3NzBlYzc1NDBiZGRkYTM5ZS4uOWFiNTQ0OWI5YmI2MWVjNTQ0NTk1NmE4ZmUzMTZj
NWM1YTYxOWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbik6CisKIDIw
MTktMTItMDUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGlu
c3BlY3Rvci9wYWdlL292ZXJyaWRlU2V0dGluZy1Nb2NrQ2FwdHVyZURldmljZXNFbmFibGVkLmh0
bWwgaXMgZmFpbGluZyBhZnRlciByZW1vdmFsIG9mIGludGVybmFscy5zZXRNb2NrTWVkaWFDYXB0
dXJlRGV2aWNlc0VuYWJsZWQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3OGRjZTZh
NDc1YTEwOWU3OGI5MzAyODhkZDI3ZGQ5N2MxMjk0MWQ0Li5iZjY4MjQzZWRmMWQwZTU3NzlkMzUw
NTE4ZTg5YTI0ZTZkYjdhMTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxOS0xMi0wNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSdW50aW1lLmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0
ZXMgKG5vbiBleGlzdGVudCkgY29udGV4dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDg1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBvYnNvbGV0ZSBGSVhNRS4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzOgorICAgICAgICAoV0ku
RXhlY3V0aW9uQ29udGV4dExpc3QucHJvdG90eXBlLmFkZCk6CisKIDIwMTktMTItMDQgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWxsb3cgaW5zcGVjdG9yIHRvIHBhdXNlIHByb3Zpc2lvbmFsIHBhZ2UgbG9hZCBhbmQgcmVz
dG9yZSBpdHMgc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggY2I2ZWQ5ZjZjODRkMjVlYTkyNzJkMWUzZWE0
ZjE1NWI2ZGVjZDU1NC4uMjZkZmIyNjJiMThmMjY5NDU2YmJiMTBlZDBhMGRmYTg0ZWQwMmU4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgRnJhbWUqIGZyYW1lRm9yU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogCiB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxk
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJh
bWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiB7Ci0gICAgaWYgKCZ3b3JsZCAhPSAmbWFpblRo
cmVhZE5vcm1hbFdvcmxkKCkpCisgICAgaWYgKCF3b3JsZC5pc05vcm1hbCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoYXV0byogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggOGM0YTEw
NGRhMDQxMWE1OWVlZWMxNmJiMzBmMmU4ODJjZWQ2ZTE3MS4uYjAxYjNiMDkwYWI2NzU1MDdiY2U4
M2U0MzE2Yzg5YWMyYzVjN2EzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtNzAsMTQgKzcwLDE1
IEBAIFBhZ2VSdW50aW1lQWdlbnQ6On5QYWdlUnVudGltZUFnZW50KCkgPSBkZWZhdWx0OwogCiB2
b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7
Ci0gICAgYm9vbCBlbmFibGVkID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VSdW50aW1lQWdl
bnQoKSA9PSB0aGlzOworICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMucGFnZVJ1bnRpbWVB
Z2VudCgpID09IHRoaXMpCisgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3RvclJ1bnRpbWVB
Z2VudDo6ZW5hYmxlKGVycm9yU3RyaW5nKTsKKyAgICAvLyBSZXBvcnQgaW5pdGlhbCBjb250ZXh0
cyBiZWZvcmUgZW5hYmxpbmcgaW5zdHJ1bWVudGF0aW9uIGFzIHRoZSByZXBvcnRpbmcKKyAgICAv
LyBjYW4gZm9yY2UgY3JlYXRpb24gb2Ygc2NyaXB0IHN0YXRlIHdoaWNoIGNvdWxkIHJlc3VsdCBp
biBkdXBsaWNhdGUgbm90aWZpY2F0aW9ucy4KKyAgICByZXBvcnRFeGVjdXRpb25Db250ZXh0Q3Jl
YXRpb24oKTsKIAorICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZW5hYmxlKGVycm9yU3RyaW5n
KTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMuc2V0UGFnZVJ1bnRpbWVBZ2VudCh0aGlzKTsK
LQotICAgIGlmICghZW5hYmxlZCkKLSAgICAgICAgcmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0
aW9uKCk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcpCkBAIC0xNDIsOCArMTQzLDEwIEBAIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6
cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCkKICAgICAgICAgZnJhbWUtPnNjcmlwdCgp
LmNvbGxlY3RJc29sYXRlZENvbnRleHRzKGlzb2xhdGVkQ29udGV4dHMpOwogICAgICAgICBpZiAo
aXNvbGF0ZWRDb250ZXh0cy5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgZm9yIChhdXRvJiBjb250ZXh0IDogaXNvbGF0ZWRDb250ZXh0cykKLSAgICAgICAgICAgIG5v
dGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGNvbnRleHQuZmlyc3QsIGNvbnRleHQuc2Vjb25k
LCBmYWxzZSk7CisgICAgICAgIGZvciAoYXV0byYgY29udGV4dCA6IGlzb2xhdGVkQ29udGV4dHMp
IHsKKyAgICAgICAgICAgIGlmIChzY3JpcHRTdGF0ZSAhPSBjb250ZXh0LmZpcnN0KQorICAgICAg
ICAgICAgICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGNvbnRleHQuZmlyc3QsIGNv
bnRleHQuc2Vjb25kLCBmYWxzZSk7CisgICAgICAgIH0KICAgICAgICAgaXNvbGF0ZWRDb250ZXh0
cy5jbGVhcigpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcwpp
bmRleCBiMmI5YWEwNWNhOTJkMmI0ZmM0OTJiNGRkYmQzZGRmODQ4NTMwYzQzLi43YWIyNWVkOGJk
NDE4ODJmOTE1YmRmNTA3YzJmOTNjYWUyNWI2YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNv
bnRleHRMaXN0LmpzCkBAIC00NSwxMiArNDUsNiBAQCBXSS5FeGVjdXRpb25Db250ZXh0TGlzdCA9
IGNsYXNzIEV4ZWN1dGlvbkNvbnRleHRMaXN0CiAKICAgICBhZGQoY29udGV4dCkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBUaGUgYmFja2VuZCBzZW5kcyBkdXBsaWNhdGUgcGFnZSBjb250ZXh0
IGV4ZWN1dGlvbiBjb250ZXh0cyB3aXRoIHRoZSBzYW1lIGlkLiBXaHk/Ci0gICAgICAgIGlmIChj
b250ZXh0LmlzUGFnZUNvbnRleHQgJiYgdGhpcy5fcGFnZUV4ZWN1dGlvbkNvbnRleHQpIHsKLSAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbnRleHQuaWQgPT09IHRoaXMuX3BhZ2VFeGVjdXRp
b25Db250ZXh0LmlkKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCiAg
ICAgICAgIHRoaXMuX2NvbnRleHRzLnB1c2goY29udGV4dCk7CiAKICAgICAgICAgaWYgKGNvbnRl
eHQuaXNQYWdlQ29udGV4dCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBiMTFiN2RlYmViODI2ZmQ1NzhmNTc4MzljMjQ3
ODdhMzFlMDQ0ZWYuLjc4ZTBjNjUyMjg2NjcyNjM2NjZhYmY4YmQ2YmU4MWRiYmM2MzJmZDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0xMi0wNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSdW50aW1lLmVuYWJsZSBy
ZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkgY29udGV4dHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBvbmx5IGV4aXN0aW5n
IGNvbnRleHRzIGFyZSByZXBvcnRlZC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzOiBBZGRlZC4KKyAgICAgICAgKFRlc3RQYWdlLnJl
Z2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwKToKKyAgICAgICAgKFRlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwLnByb3RvdHlwZS5nZXQgbGFz
dEFzc2lnbmVkSWQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53aW5k
b3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLnN0YWJsZUlkKToKKyAgICAgICAgKFRlc3RQYWdlLnJl
Z2lzdGVySW5pdGlhbGl6ZXIpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3Rhcmdl
dC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sOgorICAgICAgICAq
IGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2
ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0wNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgaW5zcGVjdG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLU1vY2tD
YXB0dXJlRGV2aWNlc0VuYWJsZWQuaHRtbCBpcyBmYWlsaW5nIGFmdGVyIHJlbW92YWwgb2YgaW50
ZXJuYWxzLnNldE1vY2tNZWRpYUNhcHR1cmVEZXZpY2VzRW5hYmxlZCBBUEkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFw
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1p
ZC1tYXAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM0NmMwNjcxOWU5ZjFiZjU3OTc5YzI1MzJhNDYzYmNhYmRm
OGE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1pY3Jvc29mdCBD
b3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgd2luZG93
LlN0YWJsZUlkTWFwID0gY2xhc3MgU3RhYmxlSWRNYXAgeworICAgICAgICBjb25zdHJ1Y3Rvcigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuX2xhc3RBc3NpZ25lZElkID0gMDsKKyAgICAg
ICAgICAgIHRoaXMuX3Byb3RvY29sVG9TdGFibGVJZCA9IG5ldyBNYXA7CisgICAgICAgIH0KKwor
ICAgICAgICBnZXQgbGFzdEFzc2lnbmVkSWQoKSB7IHJldHVybiB0aGlzLl9sYXN0QXNzaWduZWRJ
ZDsgfQorCisgICAgICAgIHN0YWJsZUlkKHByb3RvY29sSWQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGxldCBpZCA9IHRoaXMuX3Byb3RvY29sVG9TdGFibGVJZC5nZXQocHJvdG9jb2xJZCk7Cisg
ICAgICAgICAgICBpZiAoIWlkKSB7CisgICAgICAgICAgICAgICAgaWQgPSArK3RoaXMuX2xhc3RB
c3NpZ25lZElkOworICAgICAgICAgICAgICAgIHRoaXMuX3Byb3RvY29sVG9TdGFibGVJZC5zZXQo
cHJvdG9jb2xJZCwgaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlkOwor
ICAgICAgICB9CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25h
bC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCmluZGV4IGM5NmIwMjNiMzA5YzZjOGMx
YmUwMzVlOWI0MjBjOTc2Y2RhYjlmYzMuLjRmMmQ0MWQwMTE3MzZhNTc4MmJlNmFhYmUzODRhNjhl
ZTcwNjFkNGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Rh
cmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNh
bmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCkBAIC0zLDM0ICszLDI0IEBACiA8aGVhZD4KIDxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zdGFibGUtaWQtbWFw
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBsZXQgbGFz
dEFzc2lnbmVkSWQgPSAwOwotICAgIGxldCB0YXJnZXRUb0lkID0gbmV3IE1hcDsKLSAgICBmdW5j
dGlvbiBzdGFibGVUYXJnZXRJZCh0YXJnZXRJZCkKLSAgICB7Ci0gICAgICAgIGxldCBpZCA9IHRh
cmdldFRvSWQuZ2V0KHRhcmdldElkKTsKLSAgICAgICAgaWYgKCFpZCkgewotICAgICAgICAgICAg
aWQgPSArK2xhc3RBc3NpZ25lZElkOwotICAgICAgICAgICAgdGFyZ2V0VG9JZC5zZXQodGFyZ2V0
SWQsIGlkKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gaWQ7Ci0gICAgfQotCiAgICAgbGV0
IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJUYXJnZXQuUFNPTiIpOwog
CiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiUHJvdmlzaW9uYWxQYWdl
UGF1c2VkIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG5ldyBwcm92aXNpb25h
bCBwYWdlIGNhbiBiZSBwYXVzZWQgYmVmb3JlIG5hdmlnYXRpb24uIiwKICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50
IHRhcmdldCBpcyAke3N0YWJsZVRhcmdldElkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmllcil9LmAp
OworICAgICAgICAgICAgbGV0IHRhcmdldElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYEN1cnJlbnQgdGFyZ2V0IGlzICR7dGFyZ2V0SWRNYXAu
c3RhYmxlSWQoV0kubWFpblRhcmdldC5pZGVudGlmaWVyKX0uYCk7CiAgICAgICAgICAgICBjb25z
dCB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9u
YWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbCI7CiAgICAgICAgICAgICBsZXQgbmF2
aWdhdGVkVHdpY2UgPSBmYWxzZTsKIAogICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0QWRkZWQsIChldmVudCkg
PT4gewogICAgICAgICAgICAgICAgIGxldCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsKLSAg
ICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSBzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRp
Zmllcik7CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gdGFyZ2V0SWRNYXAuc3RhYmxl
SWQodGFyZ2V0LmlkZW50aWZpZXIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFz
cyhgU2hvdWxkIHJlY2VpdmUgVGFyZ2V0QWRkZWQgZXZlbnQgZm9yIHRhcmdldCAke3RhcmdldElk
fS5gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRydWUodGFyZ2V0Lmlz
UHJvdmlzaW9uYWwsIGBUYXJnZXQgJHt0YXJnZXRJZH0gc2hvdWxkIGJlIHByb3Zpc2lvbmFsLmAp
OwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VHJ1ZSh0YXJnZXQuaXNQYXVz
ZWQsIGBUYXJnZXQgJHt0YXJnZXRJZH0gc2hvdWxkIGJlIHBhdXNlZCBvbiBzdGFydC5gKTsKQEAg
LTQ1LDE4ICszNSwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgV0kudGFyZ2V0
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuRGlkQ29tbWl0
UHJvdmlzaW9uYWxUYXJnZXQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgIGxldCB7cHJl
dmlvdXNUYXJnZXRJZCwgdGFyZ2V0fSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdl
dCBldmVudCAke3N0YWJsZVRhcmdldElkKHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAke3N0YWJsZVRh
cmdldElkKHRhcmdldC5pZGVudGlmaWVyKX0uYCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBldmVu
dCAke3RhcmdldElkTWFwLnN0YWJsZUlkKHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAke3RhcmdldElk
TWFwLnN0YWJsZUlkKHRhcmdldC5pZGVudGlmaWVyKX0uYCk7CiAgICAgICAgICAgICB9KTsKIAog
ICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1h
bmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwgKGV2ZW50KSA9PnsKLSAgICAgICAgICAgICAgICBs
ZXQgdGFyZ2V0SWQgPSBzdGFibGVUYXJnZXRJZChldmVudC5kYXRhLnRhcmdldC5pZGVudGlmaWVy
KTsKKyAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSB0YXJnZXRJZE1hcC5zdGFibGVJZChl
dmVudC5kYXRhLnRhcmdldC5pZGVudGlmaWVyKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnBhc3MoYFNob3VsZCByZWNlaXZlIFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdldCAk
e3RhcmdldElkfWApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIC8vIFdhaXQgZm9y
IHBhZ2UgcmVsb2FkIGV2ZW50IHRvIGF2b2lkIHJhY2UgYmV0d2VlbiB0ZXN0IHJlc3VsdHMgZmx1
c2hpbmcgYW5kIHRoZSB0ZXN0IGNvbXBsZXRpb24uCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmF3YWl0RXZlbnQoRnJvbnRlbmRUZXN0SGFybmVzcy5FdmVudC5UZXN0UGFnZURpZExvYWQpCiAg
ICAgICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChsYXN0QXNzaWduZWRJZCwgMywgYFNob3VsZCBoYXZlIHNlZW4gMyBkaWZmZXJl
bnQgdGFyZ2V0cy5gKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHRhcmdldElkTWFwLmxhc3RBc3NpZ25lZElkLCAzLCBgU2hvdWxkIGhhdmUgc2VlbiAzIGRpZmZl
cmVudCB0YXJnZXRzLmApOwogICAgICAgICAgICAgfSkKICAgICAgICAgICAgIC50aGVuKHJlc29s
dmUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRp
b24tY29udGV4dC1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1
bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MzA4MzdlY2YwOTBmOGRjYzEzMWMxMGIwYjA0NGVjYjUyMmE5NzFmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK1Rlc3QgdGhhdCBleGFjdGx5IG9uZSBS
dW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50IGlzIGZpcmVkIGZvciBlYWNoIGV4
aXN0aW5nIGNvbnRleHQgd2hlbiBSdW50aW1lLmVuYWJsZSBpcyBjYWxsZWQuCisKKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLk9uRW5hYmxl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZC5P
bkVuYWJsZS5Ob0R1cGxpY2F0ZXMKK0V4ZWN1dGlvbiBjb250ZXh0IGNyZWF0ZWQ6IGlkPTEgZnJh
bWVJZD0xIGlzUGFnZUNvbnRleHQ9dHJ1ZQorRXhlY3V0aW9uIGNvbnRleHQgY3JlYXRlZDogaWQ9
MiBmcmFtZUlkPTIgaXNQYWdlQ29udGV4dD10cnVlCitQQVNTOiBTaG91bGQgaGF2ZSAyIGNvbnRl
eHRzIChmb3IgbWFpbiB3b3JsZCBpbiB0aGUgbWFpbiBmcmFtZSBhbmQgdGhlIHN1YmZyYW1lKQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb24tY29u
dGV4dC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlv
bi1jb250ZXh0LWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4NTBiMDY0OGJhMzFlOGU0OTkwOTAz
OGM2YjZhYjhhZmU5ODlmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMuaHRtbApAQCAtMCwwICsxLDQyIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90
b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRl
ZC5PbkVuYWJsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
UnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZC5PbkVuYWJsZS5Ob0R1cGxpY2F0ZXMiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBSdW50aW1lLmVuYWJsZSB3aWxsIHNlbmQg
ZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzIG9ubHkgZm9yIGV4aXN0bmcgbWFpbiB3b3Js
ZCBjb250ZXh0cyIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgY29u
dGV4dElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgbGV0IGZyYW1lSWRNYXAg
PSBuZXcgU3RhYmxlSWRNYXA7CisgICAgICAgICAgICBsZXQgY29udGV4dENvdW50ID0gMDsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYWRkRXZlbnRMaXN0ZW5lcigiUnVudGltZS5l
eGVjdXRpb25Db250ZXh0Q3JlYXRlZCIsIChtZXNzYWdlT2JqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgbGV0IHtpZCwgaXNQYWdlQ29udGV4dCwgZnJhbWVJZH0gPSBtZXNzYWdlT2JqZWN0LnBh
cmFtcy5jb250ZXh0OworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5hZGRSZXN1bHQoYEV4
ZWN1dGlvbiBjb250ZXh0IGNyZWF0ZWQ6IGlkPSR7Y29udGV4dElkTWFwLnN0YWJsZUlkKGlkKX0g
ZnJhbWVJZD0ke2ZyYW1lSWRNYXAuc3RhYmxlSWQoZnJhbWVJZCl9IGlzUGFnZUNvbnRleHQ9JHtp
c1BhZ2VDb250ZXh0fWApCisgICAgICAgICAgICAgICAgKytjb250ZXh0Q291bnQ7CisgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7bWV0aG9kOiAiUGFnZS5lbmFibGUi
fSksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHttZXRo
b2Q6ICJSdW50aW1lLmVuYWJsZSJ9KQorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIFBy
b3RvY29sVGVzdC5leHBlY3RFcXVhbChjb250ZXh0Q291bnQsIDIsICJTaG91bGQgaGF2ZSAyIGNv
bnRleHRzIChmb3IgbWFpbiB3b3JsZCBpbiB0aGUgbWFpbiBmcmFtZSBhbmQgdGhlIHN1YmZyYW1l
KSIpCisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlz
aCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9InN1YmZyYW1l
IiBzcmM9InJlc291cmNlcy9jaGFuZ2UtZXhlY3V0aW9uLWNvbnRleHQtaWRlbnRpZmllci1zdWJm
cmFtZS5odG1sIiBvbmxvYWQ9InJ1blRlc3QoKSI+PC9pZnJhbWU+Cis8cD5UZXN0IHRoYXQgZXhh
Y3RseSBvbmUgUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudCBpcyBmaXJlZCBm
b3IgZWFjaCBleGlzdGluZyBjb250ZXh0IHdoZW4gUnVudGltZS5lbmFibGUgaXMgY2FsbGVkLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385442</attachid>
            <date>2019-12-11 14:40:14 -0800</date>
            <delta_ts>2019-12-11 14:58:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191211144013.patch</filename>
            <type>text/plain</type>
            <size>15892</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhZWU0ODUzYjAwNGJl
OTYyYzcwZjdjNjQ1OThkYzUwNDI1YTQ1NC4uODg2ODUwZjkxZDgyNjdjMWUzNWYyNDI0MjkwNWY3
YjJjYTZmZWFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbik6CisKIDIw
MTktMTItMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQmlu
ZGluZ3NdIENyb3NzLW9yaWdpbiBjaGVja3MgaGFwcGVuIHRvbyBsYXRlIGZvciBvdmVybG9hZGVk
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRlMmUxZDFiNjJmNGI0OWE1YmQw
ODZkNzczNWFjNWE2OWU0NjlhYzUuLmY2ZWQwZjc3ZDI4NzBmYWUwMjBlMTYyMGJiNWZjMjE5ZTU3
YTY5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtNTEyLDYgKzUxMiwxOCBAQAogICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTTWFuYWdlci5qczoKICAgICAgICAg
KFdJLkNTU01hbmFnZXIuZGlzcGxheU5hbWVGb3JQc2V1ZG9JZCk6CiAKKzIwMTktMTItMDQgIFl1
cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUnVudGltZS5lbmFibGUgcmVwb3J0cyBkdXBsaWNhdGVzIChub24gZXhpc3RlbnQpIGNv
bnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ4NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgb2Jzb2xldGUgRklYTUUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9F
eGVjdXRpb25Db250ZXh0TGlzdC5qczoKKyAgICAgICAgKFdJLkV4ZWN1dGlvbkNvbnRleHRMaXN0
LnByb3RvdHlwZS5hZGQpOgorCiAyMDE5LTEyLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IGluc3BlY3RvciB0
byBwYXVzZSBwcm92aXNpb25hbCBwYWdlIGxvYWQgYW5kIHJlc3RvcmUgaXRzIHN0YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IDRmMThiNThjNmNkMDFlMGI2OWE4OTUzYWQwOWE3MzljMzUyMDQ5NmEuLjgwOGQx
ZmY4Y2YyMGI5YzQyNDIzZjI5YTZkMGMzNWRlMjBiZTM5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0xMjEs
NyArMTIxLDcgQEAgc3RhdGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBET01XcmFwcGVyV29ybGQm
IHdvcmxkKQogewotICAgIGlmICgmd29ybGQgIT0gJm1haW5UaHJlYWROb3JtYWxXb3JsZCgpKQor
ICAgIGlmICghd29ybGQuaXNOb3JtYWwoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGF1
dG8qIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJB
Z2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGI0YjlkNWNkOWIxY2UyMjRiNWIxMzA4ZmE2
NTdjYWU0MDliNjNhM2UuLjRhNmNkYmI4OGRjYzc4YjMyMGU1ZjEwZTBjNWEwNWFiY2QyYWFhNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVu
dGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTcwLDE0ICs3MCwxOCBAQCBQYWdlUnVudGltZUFnZW50
Ojp+UGFnZVJ1bnRpbWVBZ2VudCgpID0gZGVmYXVsdDsKIAogdm9pZCBQYWdlUnVudGltZUFnZW50
OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewotICAgIGJvb2wgZW5hYmxlZCA9
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpczsKKyAgICBp
ZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VSdW50aW1lQWdlbnQoKSA9PSB0aGlzKQorICAg
ICAgICByZXR1cm47CiAKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmVuYWJsZShlcnJvclN0
cmluZyk7CisgICAgaWYgKCFlcnJvclN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
IAotICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlUnVudGltZUFnZW50KHRoaXMpOwor
ICAgIC8vIFJlcG9ydCBpbml0aWFsIGNvbnRleHRzIGJlZm9yZSBlbmFibGluZyBpbnN0cnVtZW50
YXRpb24gYXMgdGhlIHJlcG9ydGluZworICAgIC8vIGNhbiBmb3JjZSBjcmVhdGlvbiBvZiBzY3Jp
cHQgc3RhdGUgd2hpY2ggY291bGQgcmVzdWx0IGluIGR1cGxpY2F0ZSBub3RpZmljYXRpb25zLgor
ICAgIHJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbigpOwogCi0gICAgaWYgKCFlbmFibGVk
KQotICAgICAgICByZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKKyAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuc2V0UGFnZVJ1bnRpbWVBZ2VudCh0aGlzKTsKIH0KIAogdm9pZCBQYWdl
UnVudGltZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTE0OCw4
ICsxNTIsMTAgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0
Q3JlYXRpb24oKQogICAgICAgICBmcmFtZS0+c2NyaXB0KCkuY29sbGVjdElzb2xhdGVkQ29udGV4
dHMoaXNvbGF0ZWRDb250ZXh0cyk7CiAgICAgICAgIGlmIChpc29sYXRlZENvbnRleHRzLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmb3IgKGF1dG8mIGNvbnRleHQg
OiBpc29sYXRlZENvbnRleHRzKQotICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJh
bWVJZCwgY29udGV4dC5maXJzdCwgY29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAgZm9y
IChhdXRvJiBbZ2xvYmFsT2JqZWN0LCBzZWN1cml0eU9yaWdpbl0gOiBpc29sYXRlZENvbnRleHRz
KSB7CisgICAgICAgICAgICBpZiAoc2NyaXB0U3RhdGUgIT0gZ2xvYmFsT2JqZWN0KQorICAgICAg
ICAgICAgICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGdsb2JhbE9iamVjdCwgc2Vj
dXJpdHlPcmlnaW4sIGZhbHNlKTsKKyAgICAgICAgfQogICAgICAgICBpc29sYXRlZENvbnRleHRz
LmNsZWFyKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzCmlu
ZGV4IGIyYjlhYTA1Y2E5MmQyYjRmYzQ5MmI0ZGRiZDNkZGY4NDg1MzBjNDMuLmU2MmYzZDM4NGQ4
YzgxMzcxMGQ5Y2JjNzU0NTgyNzI3MjlkYjJhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29u
dGV4dExpc3QuanMKQEAgLTQ1LDEyICs0NSw3IEBAIFdJLkV4ZWN1dGlvbkNvbnRleHRMaXN0ID0g
Y2xhc3MgRXhlY3V0aW9uQ29udGV4dExpc3QKIAogICAgIGFkZChjb250ZXh0KQogICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IFRoZSBiYWNrZW5kIHNlbmRzIGR1cGxpY2F0ZSBwYWdlIGNvbnRleHQg
ZXhlY3V0aW9uIGNvbnRleHRzIHdpdGggdGhlIHNhbWUgaWQuIFdoeT8KLSAgICAgICAgaWYgKGNv
bnRleHQuaXNQYWdlQ29udGV4dCAmJiB0aGlzLl9wYWdlRXhlY3V0aW9uQ29udGV4dCkgewotICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGV4dC5pZCA9PT0gdGhpcy5fcGFnZUV4ZWN1dGlv
bkNvbnRleHQuaWQpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fY29udGV4dHMuZXZlcnkoKGV4aXN0aW5nQ29udGV4
dCkgPT4gZXhpc3RpbmdDb250ZXh0LmlkICE9PSBjb250ZXh0LmlkKSwgIlVuZXhwZWN0ZWQgZHVw
bGljYXRlIGNvbnRleHQgaWQiLCB0aGlzLCBjb250ZXh0KTsKICAgICAgICAgdGhpcy5fY29udGV4
dHMucHVzaChjb250ZXh0KTsKIAogICAgICAgICBpZiAoY29udGV4dC5pc1BhZ2VDb250ZXh0KSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZjQzMzY3NTgwNTI4YWYwNjU2ZGE0NjVhNmUxYWJmNGQ1YjE1MGQwNi4uYmY1Mjk1
MDljMmI3YTQ5Zjc0MDRkZjk1OTUyMDg3N2M4YmQ3Y2IxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDE5LTEyLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAo
bm9uIGV4aXN0ZW50KSBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG9ubHkgZXhpc3RpbmcgY29udGV4dHMgYXJlIHJlcG9y
dGVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1p
ZC1tYXAuanM6IEFkZGVkLgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53
aW5kb3cuU3RhYmxlSWRNYXApOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXpl
ci53aW5kb3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLmdldCBsYXN0QXNzaWduZWRJZCk6CisgICAg
ICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLndpbmRvdy5TdGFibGVJZE1hcC5wcm90
b3R5cGUuc3RhYmxlSWQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcik6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQt
Y2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUv
ZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLmh0bWw6IEFkZGVkLgor
CiAyMDE5LTEyLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
W0JpbmRpbmdzXSBDcm9zcy1vcmlnaW4gY2hlY2tzIGhhcHBlbiB0b28gbGF0ZSBmb3Igb3Zlcmxv
YWRlZCBtZXRob2RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNDZjMDY3MTll
OWYxYmY1Nzk3OWMyNTMyYTQ2M2JjYWJkZjhhNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcwpAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE1pY3Jvc29mdCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlh
bGl6ZXIoKCkgPT4geworICAgIHdpbmRvdy5TdGFibGVJZE1hcCA9IGNsYXNzIFN0YWJsZUlkTWFw
IHsKKyAgICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLl9s
YXN0QXNzaWduZWRJZCA9IDA7CisgICAgICAgICAgICB0aGlzLl9wcm90b2NvbFRvU3RhYmxlSWQg
PSBuZXcgTWFwOworICAgICAgICB9CisKKyAgICAgICAgZ2V0IGxhc3RBc3NpZ25lZElkKCkgeyBy
ZXR1cm4gdGhpcy5fbGFzdEFzc2lnbmVkSWQ7IH0KKworICAgICAgICBzdGFibGVJZChwcm90b2Nv
bElkKQorICAgICAgICB7CisgICAgICAgICAgICBsZXQgaWQgPSB0aGlzLl9wcm90b2NvbFRvU3Rh
YmxlSWQuZ2V0KHByb3RvY29sSWQpOworICAgICAgICAgICAgaWYgKCFpZCkgeworICAgICAgICAg
ICAgICAgIGlkID0gKyt0aGlzLl9sYXN0QXNzaWduZWRJZDsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9wcm90b2NvbFRvU3RhYmxlSWQuc2V0KHByb3RvY29sSWQsIGlkKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorICAgIH0KK30pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxv
YWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRt
bAppbmRleCBjOTZiMDIzYjMwOWM2YzhjMWJlMDM1ZTliNDIwYzk3NmNkYWI5ZmMzLi40ZjJkNDFk
MDExNzM2YTU3ODJiZTZhYWJlMzg0YTY4ZWU3MDYxZDRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXBy
ZXZpb3VzLWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90
YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbApAQCAtMywz
NCArMywyNCBAQAogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rp
b24gdGVzdCgpCiB7Ci0gICAgbGV0IGxhc3RBc3NpZ25lZElkID0gMDsKLSAgICBsZXQgdGFyZ2V0
VG9JZCA9IG5ldyBNYXA7Ci0gICAgZnVuY3Rpb24gc3RhYmxlVGFyZ2V0SWQodGFyZ2V0SWQpCi0g
ICAgewotICAgICAgICBsZXQgaWQgPSB0YXJnZXRUb0lkLmdldCh0YXJnZXRJZCk7Ci0gICAgICAg
IGlmICghaWQpIHsKLSAgICAgICAgICAgIGlkID0gKytsYXN0QXNzaWduZWRJZDsKLSAgICAgICAg
ICAgIHRhcmdldFRvSWQuc2V0KHRhcmdldElkLCBpZCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIGlkOwotICAgIH0KLQogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiVGFyZ2V0LlBTT04iKTsKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAg
ICAgbmFtZTogIlByb3Zpc2lvbmFsUGFnZVBhdXNlZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAi
Q2hlY2sgdGhhdCBuZXcgcHJvdmlzaW9uYWwgcGFnZSBjYW4gYmUgcGF1c2VkIGJlZm9yZSBuYXZp
Z2F0aW9uLiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhgQ3VycmVudCB0YXJnZXQgaXMgJHtzdGFibGVUYXJnZXRJZChXSS5t
YWluVGFyZ2V0LmlkZW50aWZpZXIpfS5gKTsKKyAgICAgICAgICAgIGxldCB0YXJnZXRJZE1hcCA9
IG5ldyBTdGFibGVJZE1hcDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50
IHRhcmdldCBpcyAke3RhcmdldElkTWFwLnN0YWJsZUlkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmll
cil9LmApOwogICAgICAgICAgICAgY29uc3QgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9p
bnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0
bWwiOwogICAgICAgICAgICAgbGV0IG5hdmlnYXRlZFR3aWNlID0gZmFsc2U7CiAKICAgICAgICAg
ICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2
ZW50LlRhcmdldEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0
ID0gZXZlbnQuZGF0YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gc3Rh
YmxlVGFyZ2V0SWQodGFyZ2V0LmlkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGxldCB0YXJn
ZXRJZCA9IHRhcmdldElkTWFwLnN0YWJsZUlkKHRhcmdldC5pZGVudGlmaWVyKTsKICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZlIFRhcmdldEFkZGVkIGV2
ZW50IGZvciB0YXJnZXQgJHt0YXJnZXRJZH0uYCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUcnVlKHRhcmdldC5pc1Byb3Zpc2lvbmFsLCBgVGFyZ2V0ICR7dGFyZ2V0SWR9
IHNob3VsZCBiZSBwcm92aXNpb25hbC5gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRydWUodGFyZ2V0LmlzUGF1c2VkLCBgVGFyZ2V0ICR7dGFyZ2V0SWR9IHNob3VsZCBi
ZSBwYXVzZWQgb24gc3RhcnQuYCk7CkBAIC00NSwxOCArMzUsMTggQEAgZnVuY3Rpb24gdGVzdCgp
CiAKICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJn
ZXRNYW5hZ2VyLkV2ZW50LkRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0LCAoZXZlbnQpID0+IHsK
ICAgICAgICAgICAgICAgICBsZXQge3ByZXZpb3VzVGFyZ2V0SWQsIHRhcmdldH0gPSBldmVudC5k
YXRhOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUg
RGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQgZXZlbnQgJHtzdGFibGVUYXJnZXRJZChwcmV2aW91
c1RhcmdldElkKX0gPT4gJHtzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRpZmllcil9LmApOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgRGlkQ29t
bWl0UHJvdmlzaW9uYWxUYXJnZXQgZXZlbnQgJHt0YXJnZXRJZE1hcC5zdGFibGVJZChwcmV2aW91
c1RhcmdldElkKX0gPT4gJHt0YXJnZXRJZE1hcC5zdGFibGVJZCh0YXJnZXQuaWRlbnRpZmllcil9
LmApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRk
RXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldFJlbW92ZWQsIChldmVu
dCkgPT57Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gc3RhYmxlVGFyZ2V0SWQoZXZl
bnQuZGF0YS50YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldElk
ID0gdGFyZ2V0SWRNYXAuc3RhYmxlSWQoZXZlbnQuZGF0YS50YXJnZXQuaWRlbnRpZmllcik7CiAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBUYXJnZXRS
ZW1vdmVkIGV2ZW50IGZvciB0YXJnZXQgJHt0YXJnZXRJZH1gKTsKICAgICAgICAgICAgIH0pOwog
CiAgICAgICAgICAgICAvLyBXYWl0IGZvciBwYWdlIHJlbG9hZCBldmVudCB0byBhdm9pZCByYWNl
IGJldHdlZW4gdGVzdCByZXN1bHRzIGZsdXNoaW5nIGFuZCB0aGUgdGVzdCBjb21wbGV0aW9uLgog
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3Mu
RXZlbnQuVGVzdFBhZ2VEaWRMb2FkKQogICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobGFzdEFzc2lnbmVkSWQsIDMsIGBT
aG91bGQgaGF2ZSBzZWVuIDMgZGlmZmVyZW50IHRhcmdldHMuYCk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbCh0YXJnZXRJZE1hcC5sYXN0QXNzaWduZWRJZCwgMywg
YFNob3VsZCBoYXZlIHNlZW4gMyBkaWZmZXJlbnQgdGFyZ2V0cy5gKTsKICAgICAgICAgICAgIH0p
CiAgICAgICAgICAgICAudGhlbihyZXNvbHZlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMwODM3ZWNmMDkwZjhkY2MxMzFjMTBiMGIwNDRlY2I1
MjJhOTcxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1l
L2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
CitUZXN0IHRoYXQgZXhhY3RseSBvbmUgUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCBl
dmVudCBpcyBmaXJlZCBmb3IgZWFjaCBleGlzdGluZyBjb250ZXh0IHdoZW4gUnVudGltZS5lbmFi
bGUgaXMgY2FsbGVkLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUnVudGltZS5leGVjdXRp
b25Db250ZXh0Q3JlYXRlZC5PbkVuYWJsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJ1bnRpbWUu
ZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQuT25FbmFibGUuTm9EdXBsaWNhdGVzCitFeGVjdXRpb24g
Y29udGV4dCBjcmVhdGVkOiBpZD0xIGZyYW1lSWQ9MSBpc1BhZ2VDb250ZXh0PXRydWUKK0V4ZWN1
dGlvbiBjb250ZXh0IGNyZWF0ZWQ6IGlkPTIgZnJhbWVJZD0yIGlzUGFnZUNvbnRleHQ9dHJ1ZQor
UEFTUzogU2hvdWxkIGhhdmUgMiBjb250ZXh0cyAoZm9yIG1haW4gd29ybGQgaW4gdGhlIG1haW4g
ZnJhbWUgYW5kIHRoZSBzdWJmcmFtZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ODUwYjA2NDhiYTMxZThlNDk5MDkwMzhjNmI2YWI4YWZlOTg5ZmY1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZl
bnRzLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3N0YWJsZS1pZC1tYXAuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgbGV0IHN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJ1bnRp
bWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQuT25FbmFibGUiKTsKKworICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQu
T25FbmFibGUuTm9EdXBsaWNhdGVzIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQg
UnVudGltZS5lbmFibGUgd2lsbCBzZW5kIGV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50cyBv
bmx5IGZvciBleGlzdG5nIG1haW4gd29ybGQgY29udGV4dHMiLAorICAgICAgICBhc3luYyB0ZXN0
KCkgeworICAgICAgICAgICAgbGV0IGNvbnRleHRJZE1hcCA9IG5ldyBTdGFibGVJZE1hcDsKKyAg
ICAgICAgICAgIGxldCBmcmFtZUlkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAg
bGV0IGNvbnRleHRDb3VudCA9IDA7CisKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmFk
ZEV2ZW50TGlzdGVuZXIoIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQiLCAobWVzc2Fn
ZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCB7aWQsIGlzUGFnZUNvbnRleHQsIGZy
YW1lSWR9ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY29udGV4dDsKKyAgICAgICAgICAgICAgICBQ
cm90b2NvbFRlc3QuYWRkUmVzdWx0KGBFeGVjdXRpb24gY29udGV4dCBjcmVhdGVkOiBpZD0ke2Nv
bnRleHRJZE1hcC5zdGFibGVJZChpZCl9IGZyYW1lSWQ9JHtmcmFtZUlkTWFwLnN0YWJsZUlkKGZy
YW1lSWQpfSBpc1BhZ2VDb250ZXh0PSR7aXNQYWdlQ29udGV4dH1gKQorICAgICAgICAgICAgICAg
ICsrY29udGV4dENvdW50OworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IFBy
b21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1h
bmQoe21ldGhvZDogIlBhZ2UuZW5hYmxlIn0pLAorICAgICAgICAgICAgICAgIEluc3BlY3RvclBy
b3RvY29sLmF3YWl0Q29tbWFuZCh7bWV0aG9kOiAiUnVudGltZS5lbmFibGUifSkKKyAgICAgICAg
ICAgIF0pOworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwoY29udGV4dENv
dW50LCAyLCAiU2hvdWxkIGhhdmUgMiBjb250ZXh0cyAoZm9yIG1haW4gd29ybGQgaW4gdGhlIG1h
aW4gZnJhbWUgYW5kIHRoZSBzdWJmcmFtZSkiKQorICAgICAgICB9CisgICAgfSk7CisKKyAgICBz
dWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aWZyYW1lIGlkPSJzdWJmcmFtZSIgc3JjPSJyZXNvdXJjZXMvY2hhbmdlLWV4ZWN1dGlv
bi1jb250ZXh0LWlkZW50aWZpZXItc3ViZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPjwv
aWZyYW1lPgorPHA+VGVzdCB0aGF0IGV4YWN0bHkgb25lIFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4
dENyZWF0ZWQgZXZlbnQgaXMgZmlyZWQgZm9yIGVhY2ggZXhpc3RpbmcgY29udGV4dCB3aGVuIFJ1
bnRpbWUuZW5hYmxlIGlzIGNhbGxlZC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385445</attachid>
            <date>2019-12-11 14:58:39 -0800</date>
            <delta_ts>2019-12-12 10:33:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191211145838.patch</filename>
            <type>text/plain</type>
            <size>15982</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDFhZWU0ODUzYjAwNGJl
OTYyYzcwZjdjNjQ1OThkYzUwNDI1YTQ1NC4uODg2ODUwZjkxZDgyNjdjMWUzNWYyNDI0MjkwNWY3
YjJjYTZmZWFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbik6CisKIDIw
MTktMTItMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQmlu
ZGluZ3NdIENyb3NzLW9yaWdpbiBjaGVja3MgaGFwcGVuIHRvbyBsYXRlIGZvciBvdmVybG9hZGVk
IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRlMmUxZDFiNjJmNGI0OWE1YmQw
ODZkNzczNWFjNWE2OWU0NjlhYzUuLmY2ZWQwZjc3ZDI4NzBmYWUwMjBlMTYyMGJiNWZjMjE5ZTU3
YTY5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtNTEyLDYgKzUxMiwxOCBAQAogICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ1NTTWFuYWdlci5qczoKICAgICAgICAg
KFdJLkNTU01hbmFnZXIuZGlzcGxheU5hbWVGb3JQc2V1ZG9JZCk6CiAKKzIwMTktMTItMDQgIFl1
cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUnVudGltZS5lbmFibGUgcmVwb3J0cyBkdXBsaWNhdGVzIChub24gZXhpc3RlbnQpIGNv
bnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQ4NTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgb2Jzb2xldGUgRklYTUUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9F
eGVjdXRpb25Db250ZXh0TGlzdC5qczoKKyAgICAgICAgKFdJLkV4ZWN1dGlvbkNvbnRleHRMaXN0
LnByb3RvdHlwZS5hZGQpOgorCiAyMDE5LTEyLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IGluc3BlY3RvciB0
byBwYXVzZSBwcm92aXNpb25hbCBwYWdlIGxvYWQgYW5kIHJlc3RvcmUgaXRzIHN0YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCmluZGV4IDRmMThiNThjNmNkMDFlMGI2OWE4OTUzYWQwOWE3MzljMzUyMDQ5NmEuLjgwOGQx
ZmY4Y2YyMGI5YzQyNDIzZjI5YTZkMGMzNWRlMjBiZTM5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0xMjEs
NyArMTIxLDcgQEAgc3RhdGljIEZyYW1lKiBmcmFtZUZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUmIGZyYW1lLCBET01XcmFwcGVyV29ybGQm
IHdvcmxkKQogewotICAgIGlmICgmd29ybGQgIT0gJm1haW5UaHJlYWROb3JtYWxXb3JsZCgpKQor
ICAgIGlmICghd29ybGQuaXNOb3JtYWwoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGF1
dG8qIHBhZ2VEZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlRGVidWdnZXJB
Z2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdl
L1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGI0YjlkNWNkOWIxY2UyMjRiNWIxMzA4ZmE2
NTdjYWU0MDliNjNhM2UuLjRhNmNkYmI4OGRjYzc4YjMyMGU1ZjEwZTBjNWEwNWFiY2QyYWFhNmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVu
dGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2Uv
UGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTcwLDE0ICs3MCwxOCBAQCBQYWdlUnVudGltZUFnZW50
Ojp+UGFnZVJ1bnRpbWVBZ2VudCgpID0gZGVmYXVsdDsKIAogdm9pZCBQYWdlUnVudGltZUFnZW50
OjplbmFibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQogewotICAgIGJvb2wgZW5hYmxlZCA9
IG1faW5zdHJ1bWVudGluZ0FnZW50cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpczsKKyAgICBp
ZiAobV9pbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VSdW50aW1lQWdlbnQoKSA9PSB0aGlzKQorICAg
ICAgICByZXR1cm47CiAKICAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmVuYWJsZShlcnJvclN0
cmluZyk7CisgICAgaWYgKCFlcnJvclN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
IAotICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlUnVudGltZUFnZW50KHRoaXMpOwor
ICAgIC8vIFJlcG9ydCBpbml0aWFsIGNvbnRleHRzIGJlZm9yZSBlbmFibGluZyBpbnN0cnVtZW50
YXRpb24gYXMgdGhlIHJlcG9ydGluZworICAgIC8vIGNhbiBmb3JjZSBjcmVhdGlvbiBvZiBzY3Jp
cHQgc3RhdGUgd2hpY2ggY291bGQgcmVzdWx0IGluIGR1cGxpY2F0ZSBub3RpZmljYXRpb25zLgor
ICAgIHJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbigpOwogCi0gICAgaWYgKCFlbmFibGVk
KQotICAgICAgICByZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKKyAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuc2V0UGFnZVJ1bnRpbWVBZ2VudCh0aGlzKTsKIH0KIAogdm9pZCBQYWdl
UnVudGltZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTE0OCw4
ICsxNTIsMTAgQEAgdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0
Q3JlYXRpb24oKQogICAgICAgICBmcmFtZS0+c2NyaXB0KCkuY29sbGVjdElzb2xhdGVkQ29udGV4
dHMoaXNvbGF0ZWRDb250ZXh0cyk7CiAgICAgICAgIGlmIChpc29sYXRlZENvbnRleHRzLmlzRW1w
dHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmb3IgKGF1dG8mIGNvbnRleHQg
OiBpc29sYXRlZENvbnRleHRzKQotICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJh
bWVJZCwgY29udGV4dC5maXJzdCwgY29udGV4dC5zZWNvbmQsIGZhbHNlKTsKKyAgICAgICAgZm9y
IChhdXRvJiBbZ2xvYmFsT2JqZWN0LCBzZWN1cml0eU9yaWdpbl0gOiBpc29sYXRlZENvbnRleHRz
KSB7CisgICAgICAgICAgICBpZiAoc2NyaXB0U3RhdGUgIT0gZ2xvYmFsT2JqZWN0KQorICAgICAg
ICAgICAgICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGdsb2JhbE9iamVjdCwgc2Vj
dXJpdHlPcmlnaW4sIGZhbHNlKTsKKyAgICAgICAgfQogICAgICAgICBpc29sYXRlZENvbnRleHRz
LmNsZWFyKCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzCmlu
ZGV4IGIyYjlhYTA1Y2E5MmQyYjRmYzQ5MmI0ZGRiZDNkZGY4NDg1MzBjNDMuLmU2MmYzZDM4NGQ4
YzgxMzcxMGQ5Y2JjNzU0NTgyNzI3MjlkYjJhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29u
dGV4dExpc3QuanMKQEAgLTQ1LDEyICs0NSw3IEBAIFdJLkV4ZWN1dGlvbkNvbnRleHRMaXN0ID0g
Y2xhc3MgRXhlY3V0aW9uQ29udGV4dExpc3QKIAogICAgIGFkZChjb250ZXh0KQogICAgIHsKLSAg
ICAgICAgLy8gRklYTUU6IFRoZSBiYWNrZW5kIHNlbmRzIGR1cGxpY2F0ZSBwYWdlIGNvbnRleHQg
ZXhlY3V0aW9uIGNvbnRleHRzIHdpdGggdGhlIHNhbWUgaWQuIFdoeT8KLSAgICAgICAgaWYgKGNv
bnRleHQuaXNQYWdlQ29udGV4dCAmJiB0aGlzLl9wYWdlRXhlY3V0aW9uQ29udGV4dCkgewotICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoY29udGV4dC5pZCA9PT0gdGhpcy5fcGFnZUV4ZWN1dGlv
bkNvbnRleHQuaWQpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fY29udGV4dHMuZXZlcnkoKGV4aXN0aW5nQ29udGV4
dCkgPT4gZXhpc3RpbmdDb250ZXh0LmlkICE9PSBjb250ZXh0LmlkKSwgIlVuZXhwZWN0ZWQgZHVw
bGljYXRlIGNvbnRleHQgaWQiLCB0aGlzLCBjb250ZXh0KTsKICAgICAgICAgdGhpcy5fY29udGV4
dHMucHVzaChjb250ZXh0KTsKIAogICAgICAgICBpZiAoY29udGV4dC5pc1BhZ2VDb250ZXh0KSB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggZjQzMzY3NTgwNTI4YWYwNjU2ZGE0NjVhNmUxYWJmNGQ1YjE1MGQwNi4uYmY1Mjk1
MDljMmI3YTQ5Zjc0MDRkZjk1OTUyMDg3N2M4YmQ3Y2IxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDE5LTEyLTA0ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAo
bm9uIGV4aXN0ZW50KSBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA0ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdCB0aGF0IG9ubHkgZXhpc3RpbmcgY29udGV4dHMgYXJlIHJlcG9y
dGVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1p
ZC1tYXAuanM6IEFkZGVkLgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53
aW5kb3cuU3RhYmxlSWRNYXApOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXpl
ci53aW5kb3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLmdldCBsYXN0QXNzaWduZWRJZCk6CisgICAg
ICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLndpbmRvdy5TdGFibGVJZE1hcC5wcm90
b3R5cGUuc3RhYmxlSWQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcik6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQt
Y2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUv
ZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uLWNvbnRleHQtZXZlbnRzLmh0bWw6IEFkZGVkLgor
CiAyMDE5LTEyLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
W0JpbmRpbmdzXSBDcm9zcy1vcmlnaW4gY2hlY2tzIGhhcHBlbiB0b28gbGF0ZSBmb3Igb3Zlcmxv
YWRlZCBtZXRob2RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3ZjhiZTVjYTUy
ZDgyZmQwZmIzNTk4N2U2ZDI2MzI2NmQ5ZGEwMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcwpAQCAt
MCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE1pY3Jvc29mdCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworIFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlh
bGl6ZXIoKCkgPT4geworICAgIHdpbmRvdy5TdGFibGVJZE1hcCA9IGNsYXNzIFN0YWJsZUlkTWFw
IHsKKyAgICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLl9s
YXN0QXNzaWduZWRJZCA9IDA7CisgICAgICAgICAgICB0aGlzLl9pZE1hcCA9IG5ldyBNYXA7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBQdWJsaWMKKworICAgICAgICBnZXQgc2l6ZSgpIHsgcmV0
dXJuIHRoaXMuX2lkTWFwLnNpemU7IH0KKworICAgICAgICBnZXQodW5zdGFibGVJZCkKKyAgICAg
ICAgeworICAgICAgICAgICAgbGV0IGlkID0gdGhpcy5faWRNYXAuZ2V0KHVuc3RhYmxlSWQpOwor
ICAgICAgICAgICAgaWYgKCFpZCkgeworICAgICAgICAgICAgICAgIGlkID0gdGhpcy5zaXplICsg
MTsKKyAgICAgICAgICAgICAgICB0aGlzLl9pZE1hcC5zZXQodW5zdGFibGVJZCwgaWQpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlkOworICAgICAgICB9CisgICAgfQorfSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJv
dmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlv
dXMtbG9hZC5odG1sCmluZGV4IGM5NmIwMjNiMzA5YzZjOGMxYmUwMzVlOWI0MjBjOTc2Y2RhYjlm
YzMuLjI2NjI2MjIwZTRmNGY5ZjQ0YTFiMTFmNWNkYzE2YTIyNTMyZmNhNjAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2Fk
LWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5o
dG1sCkBAIC0zLDM0ICszLDI0IEBACiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBsZXQgbGFzdEFzc2lnbmVkSWQgPSAwOwotICAg
IGxldCB0YXJnZXRUb0lkID0gbmV3IE1hcDsKLSAgICBmdW5jdGlvbiBzdGFibGVUYXJnZXRJZCh0
YXJnZXRJZCkKLSAgICB7Ci0gICAgICAgIGxldCBpZCA9IHRhcmdldFRvSWQuZ2V0KHRhcmdldElk
KTsKLSAgICAgICAgaWYgKCFpZCkgewotICAgICAgICAgICAgaWQgPSArK2xhc3RBc3NpZ25lZElk
OwotICAgICAgICAgICAgdGFyZ2V0VG9JZC5zZXQodGFyZ2V0SWQsIGlkKTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gaWQ7Ci0gICAgfQotCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVBc3luY1N1aXRlKCJUYXJnZXQuUFNPTiIpOwogCiAgICAgc3VpdGUuYWRkVGVzdENh
c2UoewogICAgICAgICBuYW1lOiAiUHJvdmlzaW9uYWxQYWdlUGF1c2VkIiwKICAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IG5ldyBwcm92aXNpb25hbCBwYWdlIGNhbiBiZSBwYXVzZWQg
YmVmb3JlIG5hdmlnYXRpb24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50IHRhcmdldCBpcyAke3N0YWJsZVRh
cmdldElkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmllcil9LmApOworICAgICAgICAgICAgbGV0IHRh
cmdldElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coYEN1cnJlbnQgdGFyZ2V0IGlzICR7dGFyZ2V0SWRNYXAuZ2V0KFdJLm1haW5UYXJnZXQuaWRl
bnRpZmllcil9LmApOwogICAgICAgICAgICAgY29uc3QgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1s
b2FkLmh0bWwiOwogICAgICAgICAgICAgbGV0IG5hdmlnYXRlZFR3aWNlID0gZmFsc2U7CiAKICAg
ICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRNYW5h
Z2VyLkV2ZW50LlRhcmdldEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBsZXQg
dGFyZ2V0ID0gZXZlbnQuZGF0YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdldElk
ID0gc3RhYmxlVGFyZ2V0SWQodGFyZ2V0LmlkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGxl
dCB0YXJnZXRJZCA9IHRhcmdldElkTWFwLmdldCh0YXJnZXQuaWRlbnRpZmllcik7CiAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBUYXJnZXRBZGRlZCBl
dmVudCBmb3IgdGFyZ2V0ICR7dGFyZ2V0SWR9LmApOwogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VHJ1ZSh0YXJnZXQuaXNQcm92aXNpb25hbCwgYFRhcmdldCAke3RhcmdldElk
fSBzaG91bGQgYmUgcHJvdmlzaW9uYWwuYCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUcnVlKHRhcmdldC5pc1BhdXNlZCwgYFRhcmdldCAke3RhcmdldElkfSBzaG91bGQg
YmUgcGF1c2VkIG9uIHN0YXJ0LmApOwpAQCAtNDUsMTggKzM1LDE4IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAgICAgICAgICAgICBXSS50YXJnZXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGFy
Z2V0TWFuYWdlci5FdmVudC5EaWRDb21taXRQcm92aXNpb25hbFRhcmdldCwgKGV2ZW50KSA9PiB7
CiAgICAgICAgICAgICAgICAgbGV0IHtwcmV2aW91c1RhcmdldElkLCB0YXJnZXR9ID0gZXZlbnQu
ZGF0YTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZl
IERpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0IGV2ZW50ICR7c3RhYmxlVGFyZ2V0SWQocHJldmlv
dXNUYXJnZXRJZCl9ID0+ICR7c3RhYmxlVGFyZ2V0SWQodGFyZ2V0LmlkZW50aWZpZXIpfS5gKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZlIERpZENv
bW1pdFByb3Zpc2lvbmFsVGFyZ2V0IGV2ZW50ICR7dGFyZ2V0SWRNYXAuZ2V0KHByZXZpb3VzVGFy
Z2V0SWQpfSA9PiAke3RhcmdldElkTWFwLmdldCh0YXJnZXQuaWRlbnRpZmllcil9LmApOwogICAg
ICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldFJlbW92ZWQsIChldmVudCkgPT57Ci0g
ICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gc3RhYmxlVGFyZ2V0SWQoZXZlbnQuZGF0YS50
YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gdGFyZ2V0
SWRNYXAuZ2V0KGV2ZW50LmRhdGEudGFyZ2V0LmlkZW50aWZpZXIpOwogICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgVGFyZ2V0UmVtb3ZlZCBldmVudCBm
b3IgdGFyZ2V0ICR7dGFyZ2V0SWR9YCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAg
Ly8gV2FpdCBmb3IgcGFnZSByZWxvYWQgZXZlbnQgdG8gYXZvaWQgcmFjZSBiZXR3ZWVuIHRlc3Qg
cmVzdWx0cyBmbHVzaGluZyBhbmQgdGhlIHRlc3QgY29tcGxldGlvbi4KICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXdhaXRFdmVudChGcm9udGVuZFRlc3RIYXJuZXNzLkV2ZW50LlRlc3RQYWdl
RGlkTG9hZCkKICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGxhc3RBc3NpZ25lZElkLCAzLCBgU2hvdWxkIGhhdmUgc2Vl
biAzIGRpZmZlcmVudCB0YXJnZXRzLmApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwodGFyZ2V0SWRNYXAuc2l6ZSwgMywgYFNob3VsZCBoYXZlIHNlZW4gMyBkaWZm
ZXJlbnQgdGFyZ2V0cy5gKTsKICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAudGhlbihyZXNv
bHZlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0
aW9uLWNvbnRleHQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9y
dW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODExMjRlMzdkMTdhMjYyYjQ2YWIyOTdiZGViZjEyYzg3ZTMzODcyNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbi1jb250ZXh0LWV2ZW50
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitUZXN0IHRoYXQgZXhhY3RseSBvbmUg
UnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudCBpcyBmaXJlZCBmb3IgZWFjaCBl
eGlzdGluZyBjb250ZXh0IHdoZW4gUnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZC5PbkVuYWJs
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQu
T25FbmFibGUuTm9EdXBsaWNhdGVzCitFeGVjdXRpb24gY29udGV4dCBjcmVhdGVkOiBpZD0xIGZy
YW1lSWQ9MSBpc1BhZ2VDb250ZXh0PXRydWUKK0V4ZWN1dGlvbiBjb250ZXh0IGNyZWF0ZWQ6IGlk
PTIgZnJhbWVJZD0yIGlzUGFnZUNvbnRleHQ9dHJ1ZQorUEFTUzogU2hvdWxkIHJlY2VpdmUgMiBl
eGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudHMgKGZvciBtYWluIHdvcmxkIGluIHRoZSBtYWlu
IGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUpCitQQVNTOiBTaG91bGQgaGF2ZSAyIHVuaXF1ZSBjb250
ZXh0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRp
b24tY29udGV4dC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4
ZWN1dGlvbi1jb250ZXh0LWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlZTM3ZjZhYTY3MzU5MmZl
NGU4YzI1NGI5MzRhOWEwNmU5YmQ2MWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcnVudGltZS9leGVjdXRpb24tY29udGV4dC1ldmVudHMuaHRtbApAQCAtMCwwICsx
LDQyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0g
UHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENy
ZWF0ZWQuT25FbmFibGUiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQuT25FbmFibGUuTm9EdXBsaWNhdGVz
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IHRoYXQgUnVudGltZS5lbmFibGUgd2lsbCBz
ZW5kIGV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50cyBvbmx5IGZvciBleGlzdG5nIG1haW4g
d29ybGQgY29udGV4dHMiLAorICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0
IGNvbnRleHRJZE1hcCA9IG5ldyBTdGFibGVJZE1hcDsKKyAgICAgICAgICAgIGxldCBmcmFtZUlk
TWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgbGV0IGNvbnRleHRDb3VudCA9IDA7
CisKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmFkZEV2ZW50TGlzdGVuZXIoIlJ1bnRp
bWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQiLCAobWVzc2FnZU9iamVjdCkgPT4geworICAgICAg
ICAgICAgICAgIGxldCB7aWQsIGlzUGFnZUNvbnRleHQsIGZyYW1lSWR9ID0gbWVzc2FnZU9iamVj
dC5wYXJhbXMuY29udGV4dDsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuYWRkUmVzdWx0
KGBFeGVjdXRpb24gY29udGV4dCBjcmVhdGVkOiBpZD0ke2NvbnRleHRJZE1hcC5nZXQoaWQpfSBm
cmFtZUlkPSR7ZnJhbWVJZE1hcC5nZXQoZnJhbWVJZCl9IGlzUGFnZUNvbnRleHQ9JHtpc1BhZ2VD
b250ZXh0fWApCisgICAgICAgICAgICAgICAgKytjb250ZXh0Q291bnQ7CisgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoWworICAgICAgICAgICAgICAgIElu
c3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7bWV0aG9kOiAiUGFnZS5lbmFibGUifSksCisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRDb21tYW5kKHttZXRob2Q6ICJS
dW50aW1lLmVuYWJsZSJ9KSwKKyAgICAgICAgICAgIF0pOworCisgICAgICAgICAgICBQcm90b2Nv
bFRlc3QuZXhwZWN0RXF1YWwoY29udGV4dENvdW50LCAyLCAiU2hvdWxkIHJlY2VpdmUgMiBleGVj
dXRpb25Db250ZXh0Q3JlYXRlZCBldmVudHMgKGZvciBtYWluIHdvcmxkIGluIHRoZSBtYWluIGZy
YW1lIGFuZCB0aGUgc3ViZnJhbWUpIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0
RXF1YWwoY29udGV4dElkTWFwLnNpemUsIDIsICJTaG91bGQgaGF2ZSAyIHVuaXF1ZSBjb250ZXh0
cyIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIGlkPSJzdWJmcmFt
ZSIgc3JjPSJyZXNvdXJjZXMvY2hhbmdlLWV4ZWN1dGlvbi1jb250ZXh0LWlkZW50aWZpZXItc3Vi
ZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgorPHA+VGVzdCB0aGF0IGV4
YWN0bHkgb25lIFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnQgaXMgZmlyZWQg
Zm9yIGVhY2ggZXhpc3RpbmcgY29udGV4dCB3aGVuIFJ1bnRpbWUuZW5hYmxlIGlzIGNhbGxlZC48
L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385511</attachid>
            <date>2019-12-12 10:33:46 -0800</date>
            <delta_ts>2019-12-12 10:36:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191212103345.patch</filename>
            <type>text/plain</type>
            <size>17285</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA2YmY5ZjY0M2VhMDQ4
NDM4ZDBjNmE3ZjVjN2FjMmVjODIwM2YxMy4uOWYyNGIwNDgxMWYwMjJjNTRmNzdjYjQyY2M3Mjc3
YTY0Mjg5M2I5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLmh0bWwKKworICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VSdW50aW1lQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24pOgorCiAyMDE5LTEyLTEy
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBG
aXggZmFzdC90ZXh0L3doaXRlc3BhY2Uvc2ltcGxlLWxpbmUtbGF5b3V0LXRhYi1wb3NpdGlvbi5o
dG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBkNGUxZDVhNDM5NWJmMmFiYjdkYmM3OWUw
ZTliOTczYmYwMzljOTkxLi4yNzg1ZjhmMWYxMGY4ZTYwMGE2OGM3OGIyM2VlNTE5ZWMxODQzNTg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0xMiAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBSdW50aW1lLmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkg
Y29udGV4dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzc2VydCB0aGF0IGFsbCBjb250ZXh0cyBhZGRlZCB0byB0aGUgbGlzdCBhcmUgdW5pcXVlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanM6
CisgICAgICAgIChXSS5FeGVjdXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuYWRkKToKKwogMjAx
OS0xMi0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjUxMjI3KTogVW5jYXVnaHQgRXhjZXB0aW9uOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGFyZ2V0LkRPTUFnZW50LnNldElu
c3BlY3RNb2RlRW5hYmxlZCcpCkBAIC02NzgsNiArNjkwLDE4IEBACiAgICAgICAgICogVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9DU1NNYW5hZ2VyLmpzOgogICAgICAgICAoV0kuQ1NTTWFuYWdl
ci5kaXNwbGF5TmFtZUZvclBzZXVkb0lkKToKIAorMjAxOS0xMi0wNCAgWXVyeSBTZW1pa2hhdHNr
eSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSdW50aW1l
LmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkgY29udGV4dHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBvYnNvbGV0
ZSBGSVhNRS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRl
eHRMaXN0LmpzOgorICAgICAgICAoV0kuRXhlY3V0aW9uQ29udGV4dExpc3QucHJvdG90eXBlLmFk
ZCk6CisKIDIwMTktMTItMDQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgaW5zcGVjdG9yIHRvIHBhdXNlIHByb3Zp
c2lvbmFsIHBhZ2UgbG9hZCBhbmQgcmVzdG9yZSBpdHMgc3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcApp
bmRleCBiNGI5ZDVjZDliMWNlMjI0YjViMTMwOGZhNjU3Y2FlNDA5YjYzYTNlLi40YTZjZGJiODhk
Y2M3OGIzMjBlNWYxMGUwYzVhMDVhYmNkMmFhYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC03
MCwxNCArNzAsMTggQEAgUGFnZVJ1bnRpbWVBZ2VudDo6flBhZ2VSdW50aW1lQWdlbnQoKSA9IGRl
ZmF1bHQ7CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJiBlcnJv
clN0cmluZykKIHsKLSAgICBib29sIGVuYWJsZWQgPSBtX2luc3RydW1lbnRpbmdBZ2VudHMucGFn
ZVJ1bnRpbWVBZ2VudCgpID09IHRoaXM7CisgICAgaWYgKG1faW5zdHJ1bWVudGluZ0FnZW50cy5w
YWdlUnVudGltZUFnZW50KCkgPT0gdGhpcykKKyAgICAgICAgcmV0dXJuOwogCiAgICAgSW5zcGVj
dG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JTdHJpbmcpOworICAgIGlmICghZXJyb3JTdHJp
bmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuc2V0UGFnZVJ1bnRpbWVBZ2VudCh0aGlzKTsKKyAgICAvLyBSZXBvcnQgaW5pdGlhbCBjb250
ZXh0cyBiZWZvcmUgZW5hYmxpbmcgaW5zdHJ1bWVudGF0aW9uIGFzIHRoZSByZXBvcnRpbmcKKyAg
ICAvLyBjYW4gZm9yY2UgY3JlYXRpb24gb2Ygc2NyaXB0IHN0YXRlIHdoaWNoIGNvdWxkIHJlc3Vs
dCBpbiBkdXBsaWNhdGUgbm90aWZpY2F0aW9ucy4KKyAgICByZXBvcnRFeGVjdXRpb25Db250ZXh0
Q3JlYXRpb24oKTsKIAotICAgIGlmICghZW5hYmxlZCkKLSAgICAgICAgcmVwb3J0RXhlY3V0aW9u
Q29udGV4dENyZWF0aW9uKCk7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldFBhZ2VSdW50
aW1lQWdlbnQodGhpcyk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZGlzYWJsZShFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcpCkBAIC0xNDgsOCArMTUyLDEwIEBAIHZvaWQgUGFnZVJ1bnRp
bWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCkKICAgICAgICAgZnJhbWUt
PnNjcmlwdCgpLmNvbGxlY3RJc29sYXRlZENvbnRleHRzKGlzb2xhdGVkQ29udGV4dHMpOwogICAg
ICAgICBpZiAoaXNvbGF0ZWRDb250ZXh0cy5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgZm9yIChhdXRvJiBjb250ZXh0IDogaXNvbGF0ZWRDb250ZXh0cykKLSAgICAg
ICAgICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGNvbnRleHQuZmlyc3QsIGNvbnRl
eHQuc2Vjb25kLCBmYWxzZSk7CisgICAgICAgIGZvciAoYXV0byYgW2dsb2JhbE9iamVjdCwgc2Vj
dXJpdHlPcmlnaW5dIDogaXNvbGF0ZWRDb250ZXh0cykgeworICAgICAgICAgICAgaWYgKHNjcmlw
dFN0YXRlICE9IGdsb2JhbE9iamVjdCkKKyAgICAgICAgICAgICAgICBub3RpZnlDb250ZXh0Q3Jl
YXRlZChmcmFtZUlkLCBnbG9iYWxPYmplY3QsIHNlY3VyaXR5T3JpZ2luLCBmYWxzZSk7CisgICAg
ICAgIH0KICAgICAgICAgaXNvbGF0ZWRDb250ZXh0cy5jbGVhcigpOwogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9FeGVjdXRp
b25Db250ZXh0TGlzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcwppbmRleCBiMmI5YWEwNWNhOTJkMmI0ZmM0OTJi
NGRkYmQzZGRmODQ4NTMwYzQzLi5lNjJmM2QzODRkOGM4MTM3MTBkOWNiYzc1NDU4MjcyNzI5ZGIy
YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2Rl
bHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0LmpzCkBAIC00NSwxMiArNDUs
NyBAQCBXSS5FeGVjdXRpb25Db250ZXh0TGlzdCA9IGNsYXNzIEV4ZWN1dGlvbkNvbnRleHRMaXN0
CiAKICAgICBhZGQoY29udGV4dCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgYmFja2Vu
ZCBzZW5kcyBkdXBsaWNhdGUgcGFnZSBjb250ZXh0IGV4ZWN1dGlvbiBjb250ZXh0cyB3aXRoIHRo
ZSBzYW1lIGlkLiBXaHk/Ci0gICAgICAgIGlmIChjb250ZXh0LmlzUGFnZUNvbnRleHQgJiYgdGhp
cy5fcGFnZUV4ZWN1dGlvbkNvbnRleHQpIHsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNv
bnRleHQuaWQgPT09IHRoaXMuX3BhZ2VFeGVjdXRpb25Db250ZXh0LmlkKTsKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMu
X2NvbnRleHRzLmV2ZXJ5KChleGlzdGluZ0NvbnRleHQpID0+IGV4aXN0aW5nQ29udGV4dC5pZCAh
PT0gY29udGV4dC5pZCksICJVbmV4cGVjdGVkIGR1cGxpY2F0ZSBjb250ZXh0IGlkIiwgdGhpcywg
Y29udGV4dCk7CiAgICAgICAgIHRoaXMuX2NvbnRleHRzLnB1c2goY29udGV4dCk7CiAKICAgICAg
ICAgaWYgKGNvbnRleHQuaXNQYWdlQ29udGV4dCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwYzg0NDA0MGI1NzEzZTVh
OGM3ZGRmNGNkZTE2ZWJiNDU1MzBjOGYuLjFkYjRmZmViM2M1NTcxMGUwZDM3YTQwZmQ3YjZlMWZj
N2MwMGY2NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOS0xMi0wNCAgWXVyeSBTZW1pa2hh
dHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBSdW50
aW1lLmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkgY29udGV4dHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDg1OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBv
bmx5IGV4aXN0aW5nIGNvbnRleHRzIGFyZSByZXBvcnRlZC4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzOiBBZGRlZC4KKyAgICAgICAg
KFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwKToKKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFwLnByb3Rv
dHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLndp
bmRvdy5TdGFibGVJZE1hcC5wcm90b3R5cGUuZ2V0IGxldCk6CisgICAgICAgIChUZXN0UGFnZS5y
ZWdpc3RlckluaXRpYWxpemVyKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci90YXJn
ZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbDoKKyAgICAgICAg
KiBpbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbkNv
bnRleHRDcmVhdGVkLW9uRW5hYmxlLmh0bWw6IEFkZGVkLgorCiAyMDE5LTEyLTEyICBGdWppaSBI
aXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
dGVzdCBnYXJkZW5pbmcgZm9yIFdpbkNhaXJvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRjN2QwMTg0MTNjMTQyZmM1ZGUzMjA3ZDdkYmFhMjVjOTQ4MjZlZWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvc3RhYmxl
LWlkLW1hcC5qcwpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IE1p
Y3Jvc29mdCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworIFRlc3RQYWdl
LnJlZ2lzdGVySW5pdGlhbGl6ZXIoKCkgPT4geworICAgIHdpbmRvdy5TdGFibGVJZE1hcCA9IGNs
YXNzIFN0YWJsZUlkTWFwIHsKKyAgICAgICAgY29uc3RydWN0b3IoKQorICAgICAgICB7CisgICAg
ICAgICAgICB0aGlzLl9sYXN0QXNzaWduZWRJZCA9IDA7CisgICAgICAgICAgICB0aGlzLl9pZE1h
cCA9IG5ldyBNYXA7CisgICAgICAgIH0KKworICAgICAgICAvLyBQdWJsaWMKKworICAgICAgICBn
ZXQgc2l6ZSgpIHsgcmV0dXJuIHRoaXMuX2lkTWFwLnNpemU7IH0KKworICAgICAgICBnZXQodW5z
dGFibGVJZCkKKyAgICAgICAgeworICAgICAgICAgICAgbGV0IGlkID0gdGhpcy5faWRNYXAuZ2V0
KHVuc3RhYmxlSWQpOworICAgICAgICAgICAgaWYgKGlkID09PSB1bmRlZmluZWQpIHsKKyAgICAg
ICAgICAgICAgICBpZCA9IHRoaXMuc2l6ZTsKKyAgICAgICAgICAgICAgICB0aGlzLl9pZE1hcC5z
ZXQodW5zdGFibGVJZCwgaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlk
OworICAgICAgICB9CisgICAgfQorfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxv
YWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0
L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLWV4cGVjdGVkLnR4dAppbmRl
eCBkZDA3YjVhMDRkN2Y4M2I5YzU3MGMyYmY2OTE4ZGY0MjU2ZGY3ODBlLi40YWYwN2EwY2Y0MzA3
MWQyNTgzYjNlMmIxNTMzM2Y5OTk3YjUyNTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3Vz
LWxvYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC1leHBlY3RlZC50
eHQKQEAgLTMsMTUgKzMsMTUgQEAgVGVzdCB0aGF0IHR3byBjb25zZXF1dGl2ZSBjcm9zcyBkb21h
aW4gbmF2aWdhdGlvbiByZXF1ZXN0cyB3aWxsIHJlc3VsdCBpbiB0d28gcHIKIAogPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBUYXJnZXQuUFNPTgogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFByb3Zpc2lv
bmFsUGFnZVBhdXNlZAotQ3VycmVudCB0YXJnZXQgaXMgMS4KK0N1cnJlbnQgdGFyZ2V0IGlzIDAu
CitQQVNTOiBTaG91bGQgcmVjZWl2ZSBUYXJnZXRBZGRlZCBldmVudCBmb3IgdGFyZ2V0IDEuCitQ
QVNTOiBUYXJnZXQgMSBzaG91bGQgYmUgcHJvdmlzaW9uYWwuCitQQVNTOiBUYXJnZXQgMSBzaG91
bGQgYmUgcGF1c2VkIG9uIHN0YXJ0LgorUEFTUzogU2hvdWxkIHJlY2VpdmUgVGFyZ2V0UmVtb3Zl
ZCBldmVudCBmb3IgdGFyZ2V0IDEKIFBBU1M6IFNob3VsZCByZWNlaXZlIFRhcmdldEFkZGVkIGV2
ZW50IGZvciB0YXJnZXQgMi4KIFBBU1M6IFRhcmdldCAyIHNob3VsZCBiZSBwcm92aXNpb25hbC4K
IFBBU1M6IFRhcmdldCAyIHNob3VsZCBiZSBwYXVzZWQgb24gc3RhcnQuCi1QQVNTOiBTaG91bGQg
cmVjZWl2ZSBUYXJnZXRSZW1vdmVkIGV2ZW50IGZvciB0YXJnZXQgMgotUEFTUzogU2hvdWxkIHJl
Y2VpdmUgVGFyZ2V0QWRkZWQgZXZlbnQgZm9yIHRhcmdldCAzLgotUEFTUzogVGFyZ2V0IDMgc2hv
dWxkIGJlIHByb3Zpc2lvbmFsLgotUEFTUzogVGFyZ2V0IDMgc2hvdWxkIGJlIHBhdXNlZCBvbiBz
dGFydC4KLVBBU1M6IFNob3VsZCByZWNlaXZlIFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdl
dCAxCi1QQVNTOiBTaG91bGQgcmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBldmVu
dCAxID0+IDMuCitQQVNTOiBTaG91bGQgcmVjZWl2ZSBUYXJnZXRSZW1vdmVkIGV2ZW50IGZvciB0
YXJnZXQgMAorUEFTUzogU2hvdWxkIHJlY2VpdmUgRGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQg
ZXZlbnQgMCA9PiAyLgogUEFTUzogU2hvdWxkIGhhdmUgc2VlbiAzIGRpZmZlcmVudCB0YXJnZXRz
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQv
cHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJl
dmlvdXMtbG9hZC5odG1sCmluZGV4IGM5NmIwMjNiMzA5YzZjOGMxYmUwMzVlOWI0MjBjOTc2Y2Rh
YjlmYzMuLjI2NjI2MjIwZTRmNGY5ZjQ0YTFiMTFmNWNkYzE2YTIyNTMyZmNhNjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1s
b2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9h
ZC5odG1sCkBAIC0zLDM0ICszLDI0IEBACiA8aGVhZD4KIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
IDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBsZXQgbGFzdEFzc2lnbmVkSWQgPSAwOwot
ICAgIGxldCB0YXJnZXRUb0lkID0gbmV3IE1hcDsKLSAgICBmdW5jdGlvbiBzdGFibGVUYXJnZXRJ
ZCh0YXJnZXRJZCkKLSAgICB7Ci0gICAgICAgIGxldCBpZCA9IHRhcmdldFRvSWQuZ2V0KHRhcmdl
dElkKTsKLSAgICAgICAgaWYgKCFpZCkgewotICAgICAgICAgICAgaWQgPSArK2xhc3RBc3NpZ25l
ZElkOwotICAgICAgICAgICAgdGFyZ2V0VG9JZC5zZXQodGFyZ2V0SWQsIGlkKTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4gaWQ7Ci0gICAgfQotCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJUYXJnZXQuUFNPTiIpOwogCiAgICAgc3VpdGUuYWRkVGVz
dENhc2UoewogICAgICAgICBuYW1lOiAiUHJvdmlzaW9uYWxQYWdlUGF1c2VkIiwKICAgICAgICAg
ZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IG5ldyBwcm92aXNpb25hbCBwYWdlIGNhbiBiZSBwYXVz
ZWQgYmVmb3JlIG5hdmlnYXRpb24uIiwKICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50IHRhcmdldCBpcyAke3N0YWJs
ZVRhcmdldElkKFdJLm1haW5UYXJnZXQuaWRlbnRpZmllcil9LmApOworICAgICAgICAgICAgbGV0
IHRhcmdldElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coYEN1cnJlbnQgdGFyZ2V0IGlzICR7dGFyZ2V0SWRNYXAuZ2V0KFdJLm1haW5UYXJnZXQu
aWRlbnRpZmllcil9LmApOwogICAgICAgICAgICAgY29uc3QgdXJsID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91
cy1sb2FkLmh0bWwiOwogICAgICAgICAgICAgbGV0IG5hdmlnYXRlZFR3aWNlID0gZmFsc2U7CiAK
ICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5UYXJnZXRN
YW5hZ2VyLkV2ZW50LlRhcmdldEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBs
ZXQgdGFyZ2V0ID0gZXZlbnQuZGF0YS50YXJnZXQ7Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdl
dElkID0gc3RhYmxlVGFyZ2V0SWQodGFyZ2V0LmlkZW50aWZpZXIpOworICAgICAgICAgICAgICAg
IGxldCB0YXJnZXRJZCA9IHRhcmdldElkTWFwLmdldCh0YXJnZXQuaWRlbnRpZmllcik7CiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBUYXJnZXRBZGRl
ZCBldmVudCBmb3IgdGFyZ2V0ICR7dGFyZ2V0SWR9LmApOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VHJ1ZSh0YXJnZXQuaXNQcm92aXNpb25hbCwgYFRhcmdldCAke3Rhcmdl
dElkfSBzaG91bGQgYmUgcHJvdmlzaW9uYWwuYCk7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUcnVlKHRhcmdldC5pc1BhdXNlZCwgYFRhcmdldCAke3RhcmdldElkfSBzaG91
bGQgYmUgcGF1c2VkIG9uIHN0YXJ0LmApOwpAQCAtNDUsMTggKzM1LDE4IEBAIGZ1bmN0aW9uIHRl
c3QoKQogCiAgICAgICAgICAgICBXSS50YXJnZXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
VGFyZ2V0TWFuYWdlci5FdmVudC5EaWRDb21taXRQcm92aXNpb25hbFRhcmdldCwgKGV2ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgbGV0IHtwcmV2aW91c1RhcmdldElkLCB0YXJnZXR9ID0gZXZl
bnQuZGF0YTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNl
aXZlIERpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0IGV2ZW50ICR7c3RhYmxlVGFyZ2V0SWQocHJl
dmlvdXNUYXJnZXRJZCl9ID0+ICR7c3RhYmxlVGFyZ2V0SWQodGFyZ2V0LmlkZW50aWZpZXIpfS5g
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZlIERp
ZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0IGV2ZW50ICR7dGFyZ2V0SWRNYXAuZ2V0KHByZXZpb3Vz
VGFyZ2V0SWQpfSA9PiAke3RhcmdldElkTWFwLmdldCh0YXJnZXQuaWRlbnRpZmllcil9LmApOwog
ICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRM
aXN0ZW5lcihXSS5UYXJnZXRNYW5hZ2VyLkV2ZW50LlRhcmdldFJlbW92ZWQsIChldmVudCkgPT57
Ci0gICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gc3RhYmxlVGFyZ2V0SWQoZXZlbnQuZGF0
YS50YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgbGV0IHRhcmdldElkID0gdGFy
Z2V0SWRNYXAuZ2V0KGV2ZW50LmRhdGEudGFyZ2V0LmlkZW50aWZpZXIpOwogICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgVGFyZ2V0UmVtb3ZlZCBldmVu
dCBmb3IgdGFyZ2V0ICR7dGFyZ2V0SWR9YCk7CiAgICAgICAgICAgICB9KTsKIAogICAgICAgICAg
ICAgLy8gV2FpdCBmb3IgcGFnZSByZWxvYWQgZXZlbnQgdG8gYXZvaWQgcmFjZSBiZXR3ZWVuIHRl
c3QgcmVzdWx0cyBmbHVzaGluZyBhbmQgdGhlIHRlc3QgY29tcGxldGlvbi4KICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudChGcm9udGVuZFRlc3RIYXJuZXNzLkV2ZW50LlRlc3RQ
YWdlRGlkTG9hZCkKICAgICAgICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKGxhc3RBc3NpZ25lZElkLCAzLCBgU2hvdWxkIGhhdmUg
c2VlbiAzIGRpZmZlcmVudCB0YXJnZXRzLmApOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwodGFyZ2V0SWRNYXAuc2l6ZSwgMywgYFNob3VsZCBoYXZlIHNlZW4gMyBk
aWZmZXJlbnQgdGFyZ2V0cy5gKTsKICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAudGhlbihy
ZXNvbHZlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhl
Y3V0aW9uQ29udGV4dENyZWF0ZWQtb25FbmFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQtb25FbmFibGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRmYzE2ODRhNGEzNWFiYjU2MTRiZWFhZWJiN2E4NTM4M2JiYzI2
ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVj
dXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBA
QAorCitUZXN0IHRoYXQgZXhhY3RseSBvbmUgUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRl
ZCBldmVudCBpcyBmaXJlZCBmb3IgZWFjaCBleGlzdGluZyBjb250ZXh0IHdoZW4gUnVudGltZS5l
bmFibGUgaXMgY2FsbGVkLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUnVudGltZS5leGVj
dXRpb25Db250ZXh0Q3JlYXRlZC5PbkVuYWJsZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJ1bnRp
bWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQuT25FbmFibGUuTm9EdXBsaWNhdGVzCitFeGVjdXRp
b24gY29udGV4dCBjcmVhdGVkOiBpZD0wIGZyYW1lSWQ9MCBpc1BhZ2VDb250ZXh0PXRydWUKK0V4
ZWN1dGlvbiBjb250ZXh0IGNyZWF0ZWQ6IGlkPTEgZnJhbWVJZD0xIGlzUGFnZUNvbnRleHQ9dHJ1
ZQorUEFTUzogU2hvdWxkIHJlY2VpdmUgMiBleGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudHMg
KGZvciBtYWluIHdvcmxkIGluIHRoZSBtYWluIGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUpLgorUEFT
UzogU2hvdWxkIGhhdmUgMiB1bmlxdWUgY29udGV4dHMuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb25Db250ZXh0Q3JlYXRl
ZC1vbkVuYWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNWM5M2RlNzQ1ZTdjMzUxM2JmNzFkYTk2MTFm
YTdlZTE4NWNjNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVu
dGltZS9leGVjdXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS5odG1sCkBAIC0wLDAgKzEsNDIg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90
b2NvbFRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRl
ZC5PbkVuYWJsZSIpOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
UnVudGltZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZC5PbkVuYWJsZS5Ob0R1cGxpY2F0ZXMiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgdGhhdCBSdW50aW1lLmVuYWJsZSB3aWxsIHNlbmQg
ZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzIG9ubHkgZm9yIGV4aXN0bmcgbWFpbiB3b3Js
ZCBjb250ZXh0cyIsCisgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICBsZXQgY29u
dGV4dElkTWFwID0gbmV3IFN0YWJsZUlkTWFwOworICAgICAgICAgICAgbGV0IGZyYW1lSWRNYXAg
PSBuZXcgU3RhYmxlSWRNYXA7CisgICAgICAgICAgICBsZXQgY29udGV4dENvdW50ID0gMDsKKwor
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYWRkRXZlbnRMaXN0ZW5lcigiUnVudGltZS5l
eGVjdXRpb25Db250ZXh0Q3JlYXRlZCIsIChtZXNzYWdlT2JqZWN0KSA9PiB7CisgICAgICAgICAg
ICAgICAgbGV0IHtpZCwgaXNQYWdlQ29udGV4dCwgZnJhbWVJZH0gPSBtZXNzYWdlT2JqZWN0LnBh
cmFtcy5jb250ZXh0OworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coYEV4ZWN1dGlv
biBjb250ZXh0IGNyZWF0ZWQ6IGlkPSR7Y29udGV4dElkTWFwLmdldChpZCl9IGZyYW1lSWQ9JHtm
cmFtZUlkTWFwLmdldChmcmFtZUlkKX0gaXNQYWdlQ29udGV4dD0ke2lzUGFnZUNvbnRleHR9YCkK
KyAgICAgICAgICAgICAgICArK2NvbnRleHRDb3VudDsKKyAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJv
dG9jb2wuYXdhaXRDb21tYW5kKHttZXRob2Q6ICJQYWdlLmVuYWJsZSJ9KSwKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdENvbW1hbmQoe21ldGhvZDogIlJ1bnRpbWUuZW5h
YmxlIn0pLAorICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RFcXVhbChjb250ZXh0Q291bnQsIDIsICJTaG91bGQgcmVjZWl2ZSAyIGV4ZWN1dGlvbkNvbnRl
eHRDcmVhdGVkIGV2ZW50cyAoZm9yIG1haW4gd29ybGQgaW4gdGhlIG1haW4gZnJhbWUgYW5kIHRo
ZSBzdWJmcmFtZSkuIik7CisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwoY29u
dGV4dElkTWFwLnNpemUsIDIsICJTaG91bGQgaGF2ZSAyIHVuaXF1ZSBjb250ZXh0cy4iKTsKKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBpZD0ic3ViZnJhbWUiIHNyYz0i
cmVzb3VyY2VzL2NoYW5nZS1leGVjdXRpb24tY29udGV4dC1pZGVudGlmaWVyLXN1YmZyYW1lLmh0
bWwiIG9ubG9hZD0icnVuVGVzdCgpIj48L2lmcmFtZT4KKzxwPlRlc3QgdGhhdCBleGFjdGx5IG9u
ZSBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50IGlzIGZpcmVkIGZvciBlYWNo
IGV4aXN0aW5nIGNvbnRleHQgd2hlbiBSdW50aW1lLmVuYWJsZSBpcyBjYWxsZWQuPC9wPgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385512</attachid>
            <date>2019-12-12 10:36:26 -0800</date>
            <delta_ts>2019-12-18 13:29:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204859-20191212103626.patch</filename>
            <type>text/plain</type>
            <size>16638</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA2YmY5ZjY0M2VhMDQ4
NDM4ZDBjNmE3ZjVjN2FjMmVjODIwM2YxMy4uOWYyNGIwNDgxMWYwMjJjNTRmNzdjYjQyY2M3Mjc3
YTY0Mjg5M2I5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG8g
bm90IHJlcG9ydCBtYWluIHdvcmxkIGNvbnRleHQgYXMgbm9uLW1haW4gd29ybGQgb25lIHdoZW4g
UnVudGltZS5lbmFibGUgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLmh0bWwKKworICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VSdW50aW1lQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlUnVu
dGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24pOgorCiAyMDE5LTEyLTEy
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBG
aXggZmFzdC90ZXh0L3doaXRlc3BhY2Uvc2ltcGxlLWxpbmUtbGF5b3V0LXRhYi1wb3NpdGlvbi5o
dG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBkNGUxZDVhNDM5NWJmMmFiYjdkYmM3OWUw
ZTliOTczYmYwMzljOTkxLi4yMjU4YjZhOTg3Yjg1ZjFkYzFlZjk3NjVmNDRiMGY5YTIyZWJhNTJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0xMiAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBSdW50aW1lLmVuYWJsZSByZXBvcnRzIGR1cGxpY2F0ZXMgKG5vbiBleGlzdGVudCkg
Y29udGV4dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDg1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFzc2VydCB0aGF0IGFsbCBjb250ZXh0cyBhZGRlZCB0byB0aGUgbGlzdCBhcmUgdW5pcXVlLgor
CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanM6
CisgICAgICAgIChXSS5FeGVjdXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuYWRkKToKKwogMjAx
OS0xMi0xMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUkVHUkVTU0lPTihyMjUxMjI3KTogVW5jYXVnaHQgRXhjZXB0aW9uOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGFyZ2V0LkRPTUFnZW50LnNldElu
c3BlY3RNb2RlRW5hYmxlZCcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggYjRiOWQ1Y2Q5YjFjZTIy
NGI1YjEzMDhmYTY1N2NhZTQwOWI2M2EzZS4uNGE2Y2RiYjg4ZGNjNzhiMzIwZTVmMTBlMGM1YTA1
YWJjZDJhYWE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvcGFnZS9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtNzAsMTQgKzcwLDE4IEBAIFBhZ2VS
dW50aW1lQWdlbnQ6On5QYWdlUnVudGltZUFnZW50KCkgPSBkZWZhdWx0OwogCiB2b2lkIFBhZ2VS
dW50aW1lQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiB7Ci0gICAgYm9v
bCBlbmFibGVkID0gbV9pbnN0cnVtZW50aW5nQWdlbnRzLnBhZ2VSdW50aW1lQWdlbnQoKSA9PSB0
aGlzOworICAgIGlmIChtX2luc3RydW1lbnRpbmdBZ2VudHMucGFnZVJ1bnRpbWVBZ2VudCgpID09
IHRoaXMpCisgICAgICAgIHJldHVybjsKIAogICAgIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6ZW5h
YmxlKGVycm9yU3RyaW5nKTsKKyAgICBpZiAoIWVycm9yU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLnNldFBhZ2VSdW50aW1lQWdl
bnQodGhpcyk7CisgICAgLy8gUmVwb3J0IGluaXRpYWwgY29udGV4dHMgYmVmb3JlIGVuYWJsaW5n
IGluc3RydW1lbnRhdGlvbiBhcyB0aGUgcmVwb3J0aW5nCisgICAgLy8gY2FuIGZvcmNlIGNyZWF0
aW9uIG9mIHNjcmlwdCBzdGF0ZSB3aGljaCBjb3VsZCByZXN1bHQgaW4gZHVwbGljYXRlIG5vdGlm
aWNhdGlvbnMuCisgICAgcmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCk7CiAKLSAgICBp
ZiAoIWVuYWJsZWQpCi0gICAgICAgIHJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbigpOwor
ICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy5zZXRQYWdlUnVudGltZUFnZW50KHRoaXMpOwogfQog
CiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
KQpAQCAtMTQ4LDggKzE1MiwxMCBAQCB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1
dGlvbkNvbnRleHRDcmVhdGlvbigpCiAgICAgICAgIGZyYW1lLT5zY3JpcHQoKS5jb2xsZWN0SXNv
bGF0ZWRDb250ZXh0cyhpc29sYXRlZENvbnRleHRzKTsKICAgICAgICAgaWYgKGlzb2xhdGVkQ29u
dGV4dHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGZvciAoYXV0
byYgY29udGV4dCA6IGlzb2xhdGVkQ29udGV4dHMpCi0gICAgICAgICAgICBub3RpZnlDb250ZXh0
Q3JlYXRlZChmcmFtZUlkLCBjb250ZXh0LmZpcnN0LCBjb250ZXh0LnNlY29uZCwgZmFsc2UpOwor
ICAgICAgICBmb3IgKGF1dG8mIFtnbG9iYWxPYmplY3QsIHNlY3VyaXR5T3JpZ2luXSA6IGlzb2xh
dGVkQ29udGV4dHMpIHsKKyAgICAgICAgICAgIGlmIChzY3JpcHRTdGF0ZSAhPSBnbG9iYWxPYmpl
Y3QpCisgICAgICAgICAgICAgICAgbm90aWZ5Q29udGV4dENyZWF0ZWQoZnJhbWVJZCwgZ2xvYmFs
T2JqZWN0LCBzZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICB9CiAgICAgICAgIGlzb2xh
dGVkQ29udGV4dHMuY2xlYXIoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4
dExpc3QuanMKaW5kZXggYjJiOWFhMDVjYTkyZDJiNGZjNDkyYjRkZGJkM2RkZjg0ODUzMGM0My4u
ZTYyZjNkMzg0ZDhjODEzNzEwZDljYmM3NTQ1ODI3MjcyOWRiMmFjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRM
aXN0LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9F
eGVjdXRpb25Db250ZXh0TGlzdC5qcwpAQCAtNDUsMTIgKzQ1LDcgQEAgV0kuRXhlY3V0aW9uQ29u
dGV4dExpc3QgPSBjbGFzcyBFeGVjdXRpb25Db250ZXh0TGlzdAogCiAgICAgYWRkKGNvbnRleHQp
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogVGhlIGJhY2tlbmQgc2VuZHMgZHVwbGljYXRlIHBh
Z2UgY29udGV4dCBleGVjdXRpb24gY29udGV4dHMgd2l0aCB0aGUgc2FtZSBpZC4gV2h5PwotICAg
ICAgICBpZiAoY29udGV4dC5pc1BhZ2VDb250ZXh0ICYmIHRoaXMuX3BhZ2VFeGVjdXRpb25Db250
ZXh0KSB7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChjb250ZXh0LmlkID09PSB0aGlzLl9w
YWdlRXhlY3V0aW9uQ29udGV4dC5pZCk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIH0KLQorICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9jb250ZXh0cy5ldmVyeSgoZXhp
c3RpbmdDb250ZXh0KSA9PiBleGlzdGluZ0NvbnRleHQuaWQgIT09IGNvbnRleHQuaWQpLCAiVW5l
eHBlY3RlZCBkdXBsaWNhdGUgY29udGV4dCBpZCIsIHRoaXMsIGNvbnRleHQpOwogICAgICAgICB0
aGlzLl9jb250ZXh0cy5wdXNoKGNvbnRleHQpOwogCiAgICAgICAgIGlmIChjb250ZXh0LmlzUGFn
ZUNvbnRleHQpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA2MGM4NDQwNDBiNTcxM2U1YThjN2RkZjRjZGUxNmViYjQ1NTMw
YzhmLi4xZGI0ZmZlYjNjNTU3MTBlMGQzN2E0MGZkN2I2ZTFmYzdjMDBmNjYzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTktMTItMDQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUnVudGltZS5lbmFibGUgcmVwb3J0cyBk
dXBsaWNhdGVzIChub24gZXhpc3RlbnQpIGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4NTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoYXQgb25seSBleGlzdGluZyBjb250ZXh0
cyBhcmUgcmVwb3J0ZWQuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvc3RhYmxlLWlkLW1hcC5qczogQWRkZWQuCisgICAgICAgIChUZXN0UGFnZS5yZWdpc3Rlcklu
aXRpYWxpemVyLndpbmRvdy5TdGFibGVJZE1hcCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3Rl
ckluaXRpYWxpemVyLndpbmRvdy5TdGFibGVJZE1hcC5wcm90b3R5cGUuZ2V0IHNpemUpOgorICAg
ICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci53aW5kb3cuU3RhYmxlSWRNYXAucHJv
dG90eXBlLmdldCBsZXQpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcik6
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQt
Y2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUv
ZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQtb25FbmFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvcnVudGltZS9leGVjdXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJs
ZS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0xMiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nIGZvciBX
aW5DYWlybwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL3N0YWJsZS1pZC1tYXAuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzdkMDE4NDEzYzE0MmZj
NWRlMzIwN2Q3ZGJhYTI1Yzk0ODI2ZWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1pZC1tYXAuanMKQEAgLTAsMCAr
MSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBNaWNyb3NvZnQgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgTWljcm9zb2Z0IENvcnBvcmF0aW9uIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyBUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
KCgpID0+IHsKKyAgICB3aW5kb3cuU3RhYmxlSWRNYXAgPSBjbGFzcyBTdGFibGVJZE1hcCB7Cisg
ICAgICAgIGNvbnN0cnVjdG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5fbGFzdEFz
c2lnbmVkSWQgPSAwOworICAgICAgICAgICAgdGhpcy5faWRNYXAgPSBuZXcgTWFwOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gUHVibGljCisKKyAgICAgICAgZ2V0IHNpemUoKSB7IHJldHVybiB0
aGlzLl9pZE1hcC5zaXplOyB9CisKKyAgICAgICAgZ2V0KHVuc3RhYmxlSWQpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGxldCBpZCA9IHRoaXMuX2lkTWFwLmdldCh1bnN0YWJsZUlkKTsKKyAgICAg
ICAgICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgaWQgPSB0aGlz
LnNpemU7CisgICAgICAgICAgICAgICAgdGhpcy5faWRNYXAuc2V0KHVuc3RhYmxlSWQsIGlkKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBpZDsKKyAgICAgICAgfQorICAgIH0K
K30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0
L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNh
bmNlbHMtcHJldmlvdXMtbG9hZC1leHBlY3RlZC50eHQKaW5kZXggZGQwN2I1YTA0ZDdmODNiOWM1
NzBjMmJmNjkxOGRmNDI1NmRmNzgwZS4uNGFmMDdhMGNmNDMwNzFkMjU4M2IzZTJiMTUzMzNmOTk5
N2I1MjU4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFy
Z2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwt
bG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0zLDE1ICszLDE1IEBA
IFRlc3QgdGhhdCB0d28gY29uc2VxdXRpdmUgY3Jvc3MgZG9tYWluIG5hdmlnYXRpb24gcmVxdWVz
dHMgd2lsbCByZXN1bHQgaW4gdHdvIHByCiAKID09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogVGFyZ2V0
LlBTT04KIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBQcm92aXNpb25hbFBhZ2VQYXVzZWQKLUN1cnJl
bnQgdGFyZ2V0IGlzIDEuCitDdXJyZW50IHRhcmdldCBpcyAwLgorUEFTUzogU2hvdWxkIHJlY2Vp
dmUgVGFyZ2V0QWRkZWQgZXZlbnQgZm9yIHRhcmdldCAxLgorUEFTUzogVGFyZ2V0IDEgc2hvdWxk
IGJlIHByb3Zpc2lvbmFsLgorUEFTUzogVGFyZ2V0IDEgc2hvdWxkIGJlIHBhdXNlZCBvbiBzdGFy
dC4KK1BBU1M6IFNob3VsZCByZWNlaXZlIFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdldCAx
CiBQQVNTOiBTaG91bGQgcmVjZWl2ZSBUYXJnZXRBZGRlZCBldmVudCBmb3IgdGFyZ2V0IDIuCiBQ
QVNTOiBUYXJnZXQgMiBzaG91bGQgYmUgcHJvdmlzaW9uYWwuCiBQQVNTOiBUYXJnZXQgMiBzaG91
bGQgYmUgcGF1c2VkIG9uIHN0YXJ0LgotUEFTUzogU2hvdWxkIHJlY2VpdmUgVGFyZ2V0UmVtb3Zl
ZCBldmVudCBmb3IgdGFyZ2V0IDIKLVBBU1M6IFNob3VsZCByZWNlaXZlIFRhcmdldEFkZGVkIGV2
ZW50IGZvciB0YXJnZXQgMy4KLVBBU1M6IFRhcmdldCAzIHNob3VsZCBiZSBwcm92aXNpb25hbC4K
LVBBU1M6IFRhcmdldCAzIHNob3VsZCBiZSBwYXVzZWQgb24gc3RhcnQuCi1QQVNTOiBTaG91bGQg
cmVjZWl2ZSBUYXJnZXRSZW1vdmVkIGV2ZW50IGZvciB0YXJnZXQgMQotUEFTUzogU2hvdWxkIHJl
Y2VpdmUgRGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQgZXZlbnQgMSA9PiAzLgorUEFTUzogU2hv
dWxkIHJlY2VpdmUgVGFyZ2V0UmVtb3ZlZCBldmVudCBmb3IgdGFyZ2V0IDAKK1BBU1M6IFNob3Vs
ZCByZWNlaXZlIERpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0IGV2ZW50IDAgPT4gMi4KIFBBU1M6
IFNob3VsZCBoYXZlIHNlZW4gMyBkaWZmZXJlbnQgdGFyZ2V0cy4KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2Fu
Y2Vscy1wcmV2aW91cy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbAppbmRl
eCBjOTZiMDIzYjMwOWM2YzhjMWJlMDM1ZTliNDIwYzk3NmNkYWI5ZmMzLi4yNjYyNjIyMGU0ZjRm
OWY0NGExYjExZjVjZGMxNmEyMjUzMmZjYTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3Vz
LWxvYWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQv
cHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQuaHRtbApAQCAtMywzNCArMywy
NCBAQAogPGhlYWQ+CiA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvc3RhYmxlLWlkLW1hcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVz
dCgpCiB7Ci0gICAgbGV0IGxhc3RBc3NpZ25lZElkID0gMDsKLSAgICBsZXQgdGFyZ2V0VG9JZCA9
IG5ldyBNYXA7Ci0gICAgZnVuY3Rpb24gc3RhYmxlVGFyZ2V0SWQodGFyZ2V0SWQpCi0gICAgewot
ICAgICAgICBsZXQgaWQgPSB0YXJnZXRUb0lkLmdldCh0YXJnZXRJZCk7Ci0gICAgICAgIGlmICgh
aWQpIHsKLSAgICAgICAgICAgIGlkID0gKytsYXN0QXNzaWduZWRJZDsKLSAgICAgICAgICAgIHRh
cmdldFRvSWQuc2V0KHRhcmdldElkLCBpZCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGlk
OwotICAgIH0KLQogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiVGFyZ2V0LlBTT04iKTsKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFt
ZTogIlByb3Zpc2lvbmFsUGFnZVBhdXNlZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sg
dGhhdCBuZXcgcHJvdmlzaW9uYWwgcGFnZSBjYW4gYmUgcGF1c2VkIGJlZm9yZSBuYXZpZ2F0aW9u
LiIsCiAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhgQ3VycmVudCB0YXJnZXQgaXMgJHtzdGFibGVUYXJnZXRJZChXSS5tYWluVGFy
Z2V0LmlkZW50aWZpZXIpfS5gKTsKKyAgICAgICAgICAgIGxldCB0YXJnZXRJZE1hcCA9IG5ldyBT
dGFibGVJZE1hcDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGBDdXJyZW50IHRhcmdl
dCBpcyAke3RhcmdldElkTWFwLmdldChXSS5tYWluVGFyZ2V0LmlkZW50aWZpZXIpfS5gKTsKICAg
ICAgICAgICAgIGNvbnN0IHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVjdG9yL3Rh
cmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sIjsKICAgICAg
ICAgICAgIGxldCBuYXZpZ2F0ZWRUd2ljZSA9IGZhbHNlOwogCiAgICAgICAgICAgICBXSS50YXJn
ZXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGFyZ2V0TWFuYWdlci5FdmVudC5UYXJnZXRB
ZGRlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHRhcmdldCA9IGV2ZW50LmRh
dGEudGFyZ2V0OwotICAgICAgICAgICAgICAgIGxldCB0YXJnZXRJZCA9IHN0YWJsZVRhcmdldElk
KHRhcmdldC5pZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSB0YXJn
ZXRJZE1hcC5nZXQodGFyZ2V0LmlkZW50aWZpZXIpOwogICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgVGFyZ2V0QWRkZWQgZXZlbnQgZm9yIHRhcmdldCAk
e3RhcmdldElkfS5gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRydWUo
dGFyZ2V0LmlzUHJvdmlzaW9uYWwsIGBUYXJnZXQgJHt0YXJnZXRJZH0gc2hvdWxkIGJlIHByb3Zp
c2lvbmFsLmApOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VHJ1ZSh0YXJn
ZXQuaXNQYXVzZWQsIGBUYXJnZXQgJHt0YXJnZXRJZH0gc2hvdWxkIGJlIHBhdXNlZCBvbiBzdGFy
dC5gKTsKQEAgLTQ1LDE4ICszNSwxOCBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAg
V0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQu
RGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAg
IGxldCB7cHJldmlvdXNUYXJnZXRJZCwgdGFyZ2V0fSA9IGV2ZW50LmRhdGE7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBEaWRDb21taXRQcm92aXNp
b25hbFRhcmdldCBldmVudCAke3N0YWJsZVRhcmdldElkKHByZXZpb3VzVGFyZ2V0SWQpfSA9PiAk
e3N0YWJsZVRhcmdldElkKHRhcmdldC5pZGVudGlmaWVyKX0uYCk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRh
cmdldCBldmVudCAke3RhcmdldElkTWFwLmdldChwcmV2aW91c1RhcmdldElkKX0gPT4gJHt0YXJn
ZXRJZE1hcC5nZXQodGFyZ2V0LmlkZW50aWZpZXIpfS5gKTsKICAgICAgICAgICAgIH0pOwogCiAg
ICAgICAgICAgICBXSS50YXJnZXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0kuVGFyZ2V0TWFu
YWdlci5FdmVudC5UYXJnZXRSZW1vdmVkLCAoZXZlbnQpID0+ewotICAgICAgICAgICAgICAgIGxl
dCB0YXJnZXRJZCA9IHN0YWJsZVRhcmdldElkKGV2ZW50LmRhdGEudGFyZ2V0LmlkZW50aWZpZXIp
OworICAgICAgICAgICAgICAgIGxldCB0YXJnZXRJZCA9IHRhcmdldElkTWFwLmdldChldmVudC5k
YXRhLnRhcmdldC5pZGVudGlmaWVyKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBh
c3MoYFNob3VsZCByZWNlaXZlIFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdldCAke3Rhcmdl
dElkfWApOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAgICAgIC8vIFdhaXQgZm9yIHBhZ2Ug
cmVsb2FkIGV2ZW50IHRvIGF2b2lkIHJhY2UgYmV0d2VlbiB0ZXN0IHJlc3VsdHMgZmx1c2hpbmcg
YW5kIHRoZSB0ZXN0IGNvbXBsZXRpb24uCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0
RXZlbnQoRnJvbnRlbmRUZXN0SGFybmVzcy5FdmVudC5UZXN0UGFnZURpZExvYWQpCiAgICAgICAg
ICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChsYXN0QXNzaWduZWRJZCwgMywgYFNob3VsZCBoYXZlIHNlZW4gMyBkaWZmZXJlbnQgdGFy
Z2V0cy5gKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHRhcmdl
dElkTWFwLnNpemUsIDMsIGBTaG91bGQgaGF2ZSBzZWVuIDMgZGlmZmVyZW50IHRhcmdldHMuYCk7
CiAgICAgICAgICAgICB9KQogICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVk
LW9uRW5hYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4
ZWN1dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
ZmMxNjg0YTRhMzVhYmI1NjE0YmVhYWViYjdhODUzODNiYmMyNmUyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQt
b25FbmFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKKworVGVzdCB0aGF0IGV4YWN0
bHkgb25lIFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnQgaXMgZmlyZWQgZm9y
IGVhY2ggZXhpc3RpbmcgY29udGV4dCB3aGVuIFJ1bnRpbWUuZW5hYmxlIGlzIGNhbGxlZC4KKwor
Cis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQu
T25FbmFibGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRD
cmVhdGVkLk9uRW5hYmxlLk5vRHVwbGljYXRlcworRXhlY3V0aW9uIGNvbnRleHQgY3JlYXRlZDog
aWQ9MCBmcmFtZUlkPTAgaXNQYWdlQ29udGV4dD10cnVlCitFeGVjdXRpb24gY29udGV4dCBjcmVh
dGVkOiBpZD0xIGZyYW1lSWQ9MSBpc1BhZ2VDb250ZXh0PXRydWUKK1BBU1M6IFNob3VsZCByZWNl
aXZlIDIgZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnRzIChmb3IgbWFpbiB3b3JsZCBpbiB0
aGUgbWFpbiBmcmFtZSBhbmQgdGhlIHN1YmZyYW1lKS4KK1BBU1M6IFNob3VsZCBoYXZlIDIgdW5p
cXVlIGNvbnRleHRzLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGlt
ZS9leGVjdXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQtb25FbmFibGUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iYTVjOTNkZTc0NWU3YzM1MTNiZjcxZGE5NjExZmE3ZWUxODVjYzY0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uQ29udGV4
dENyZWF0ZWQtb25FbmFibGUuaHRtbApAQCAtMCwwICsxLDQyIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2Nv
bC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvc3RhYmxlLWlkLW1hcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gUHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQuT25FbmFibGUiKTsKKworICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJ1bnRpbWUuZXhlY3V0aW9uQ29u
dGV4dENyZWF0ZWQuT25FbmFibGUuTm9EdXBsaWNhdGVzIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJUZXN0IHRoYXQgUnVudGltZS5lbmFibGUgd2lsbCBzZW5kIGV4ZWN1dGlvbkNvbnRleHRDcmVh
dGVkIGV2ZW50cyBvbmx5IGZvciBleGlzdG5nIG1haW4gd29ybGQgY29udGV4dHMiLAorICAgICAg
ICBhc3luYyB0ZXN0KCkgeworICAgICAgICAgICAgbGV0IGNvbnRleHRJZE1hcCA9IG5ldyBTdGFi
bGVJZE1hcDsKKyAgICAgICAgICAgIGxldCBmcmFtZUlkTWFwID0gbmV3IFN0YWJsZUlkTWFwOwor
ICAgICAgICAgICAgbGV0IGNvbnRleHRDb3VudCA9IDA7CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clByb3RvY29sLmFkZEV2ZW50TGlzdGVuZXIoIlJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0
ZWQiLCAobWVzc2FnZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIGxldCB7aWQsIGlzUGFn
ZUNvbnRleHQsIGZyYW1lSWR9ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY29udGV4dDsKKyAgICAg
ICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKGBFeGVjdXRpb24gY29udGV4dCBjcmVhdGVkOiBp
ZD0ke2NvbnRleHRJZE1hcC5nZXQoaWQpfSBmcmFtZUlkPSR7ZnJhbWVJZE1hcC5nZXQoZnJhbWVJ
ZCl9IGlzUGFnZUNvbnRleHQ9JHtpc1BhZ2VDb250ZXh0fWApCisgICAgICAgICAgICAgICAgKytj
b250ZXh0Q291bnQ7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgYXdhaXQgUHJvbWlz
ZS5hbGwoWworICAgICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7
bWV0aG9kOiAiUGFnZS5lbmFibGUifSksCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9j
b2wuYXdhaXRDb21tYW5kKHttZXRob2Q6ICJSdW50aW1lLmVuYWJsZSJ9KSwKKyAgICAgICAgICAg
IF0pOworCisgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0RXF1YWwoY29udGV4dENvdW50
LCAyLCAiU2hvdWxkIHJlY2VpdmUgMiBleGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudHMgKGZv
ciBtYWluIHdvcmxkIGluIHRoZSBtYWluIGZyYW1lIGFuZCB0aGUgc3ViZnJhbWUpLiIpOworICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdEVxdWFsKGNvbnRleHRJZE1hcC5zaXplLCAyLCAi
U2hvdWxkIGhhdmUgMiB1bmlxdWUgY29udGV4dHMuIik7CisgICAgICAgIH0KKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgaWQ9InN1YmZyYW1lIiBzcmM9InJlc291cmNlcy9jaGFuZ2UtZXhl
Y3V0aW9uLWNvbnRleHQtaWRlbnRpZmllci1zdWJmcmFtZS5odG1sIiBvbmxvYWQ9InJ1blRlc3Qo
KSI+PC9pZnJhbWU+Cis8cD5UZXN0IHRoYXQgZXhhY3RseSBvbmUgUnVudGltZS5leGVjdXRpb25D
b250ZXh0Q3JlYXRlZCBldmVudCBpcyBmaXJlZCBmb3IgZWFjaCBleGlzdGluZyBjb250ZXh0IHdo
ZW4gUnVudGltZS5lbmFibGUgaXMgY2FsbGVkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386001</attachid>
            <date>2019-12-18 13:29:01 -0800</date>
            <delta_ts>2019-12-18 14:05:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204859-20191218132901.patch</filename>
            <type>text/plain</type>
            <size>16429</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWFmMjE2NTcyZWI0YTIw
Mzk2M2RhNGQ2OTgyZjMxMzJkM2M4ZGEzNS4uZmJjZTE2YWRiZGUyZTIyOWU0ZGFhYTgwMjI0ODUz
ZTBlZDNlMGYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTA0ICBZdXJ5
IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFJ1bnRpbWUuZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250
ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIERvIG5v
dCByZXBvcnQgbWFpbiB3b3JsZCBjb250ZXh0IGFzIG5vbi1tYWluIHdvcmxkIG9uZSB3aGVuIFJ1
bnRpbWUuZW5hYmxlIGlzIGNhbGxlZC4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvcnVudGlt
ZS9leGVjdXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS5odG1sCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlUnVudGltZUFnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRp
bWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKToKKwogMjAxOS0xMi0xOCAg
eW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdGVjdCBTZXJ2
aWNlV29ya2VyOjpwb3N0TWVzc2FnZSBmcm9tIGEgbnVsbCBleGVjU3RhdGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
Q2hhbmdlTG9nCmluZGV4IDU4OTFmZWJmOWYwMGM4NWQ5ZTE2NjVmYTI1MWU4OGI2OTk4OWU1ODcu
LmFlYjY0ZTVmMzgzNTk0ZGRhYmJlYTlkNDA4MGNlZDBhMTZjMTM4YWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTEyICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJ1bnRpbWUu
ZW5hYmxlIHJlcG9ydHMgZHVwbGljYXRlcyAobm9uIGV4aXN0ZW50KSBjb250ZXh0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0ODU5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFzc2VydCB0aGF0IGFsbCBj
b250ZXh0cyBhZGRlZCB0byB0aGUgbGlzdCBhcmUgdW5pcXVlLgorCisgICAgICAgICogVXNlcklu
dGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanM6CisgICAgICAgIChXSS5FeGVj
dXRpb25Db250ZXh0TGlzdC5wcm90b3R5cGUuYWRkKToKKwogMjAxOS0xMi0xOCAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRWxlbWVu
dHM6IHJlbW92ZSB0aGUgIlNob3cvSGlkZSBTaGFkb3cgRE9NIiBuYXZpZ2F0aW9uIGl0ZW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVudGlt
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlUnVu
dGltZUFnZW50LmNwcAppbmRleCBiNGI5ZDVjZDliMWNlMjI0YjViMTMwOGZhNjU3Y2FlNDA5YjYz
YTNlLi44NjRjZTNjZmUxMzk5NDY0MjQ5NWYyZDdkZmJkY2M5YTRjYWQ5ZjI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFnZVJ1bnRpbWVBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1BhZ2VSdW50aW1l
QWdlbnQuY3BwCkBAIC03MCwxNCArNzAsMTggQEAgUGFnZVJ1bnRpbWVBZ2VudDo6flBhZ2VSdW50
aW1lQWdlbnQoKSA9IGRlZmF1bHQ7CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6ZW5hYmxlKEVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZykKIHsKLSAgICBib29sIGVuYWJsZWQgPSBtX2luc3RydW1l
bnRpbmdBZ2VudHMucGFnZVJ1bnRpbWVBZ2VudCgpID09IHRoaXM7CisgICAgaWYgKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5wYWdlUnVudGltZUFnZW50KCkgPT0gdGhpcykKKyAgICAgICAgcmV0dXJu
OwogCiAgICAgSW5zcGVjdG9yUnVudGltZUFnZW50OjplbmFibGUoZXJyb3JTdHJpbmcpOworICAg
IGlmICghZXJyb3JTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBtX2lu
c3RydW1lbnRpbmdBZ2VudHMuc2V0UGFnZVJ1bnRpbWVBZ2VudCh0aGlzKTsKKyAgICAvLyBSZXBv
cnQgaW5pdGlhbCBjb250ZXh0cyBiZWZvcmUgZW5hYmxpbmcgaW5zdHJ1bWVudGF0aW9uIGFzIHRo
ZSByZXBvcnRpbmcKKyAgICAvLyBjYW4gZm9yY2UgY3JlYXRpb24gb2Ygc2NyaXB0IHN0YXRlIHdo
aWNoIGNvdWxkIHJlc3VsdCBpbiBkdXBsaWNhdGUgbm90aWZpY2F0aW9ucy4KKyAgICByZXBvcnRF
eGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKTsKIAotICAgIGlmICghZW5hYmxlZCkKLSAgICAgICAg
cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCk7CisgICAgbV9pbnN0cnVtZW50aW5nQWdl
bnRzLnNldFBhZ2VSdW50aW1lQWdlbnQodGhpcyk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2Vu
dDo6ZGlzYWJsZShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCkBAIC0xNDgsOCArMTUyLDEwIEBA
IHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCkK
ICAgICAgICAgZnJhbWUtPnNjcmlwdCgpLmNvbGxlY3RJc29sYXRlZENvbnRleHRzKGlzb2xhdGVk
Q29udGV4dHMpOwogICAgICAgICBpZiAoaXNvbGF0ZWRDb250ZXh0cy5pc0VtcHR5KCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZm9yIChhdXRvJiBjb250ZXh0IDogaXNvbGF0ZWRD
b250ZXh0cykKLSAgICAgICAgICAgIG5vdGlmeUNvbnRleHRDcmVhdGVkKGZyYW1lSWQsIGNvbnRl
eHQuZmlyc3QsIGNvbnRleHQuc2Vjb25kLCBmYWxzZSk7CisgICAgICAgIGZvciAoYXV0byYgW2ds
b2JhbE9iamVjdCwgc2VjdXJpdHlPcmlnaW5dIDogaXNvbGF0ZWRDb250ZXh0cykgeworICAgICAg
ICAgICAgaWYgKGdsb2JhbE9iamVjdCAhPSBzY3JpcHRTdGF0ZSkKKyAgICAgICAgICAgICAgICBu
b3RpZnlDb250ZXh0Q3JlYXRlZChmcmFtZUlkLCBnbG9iYWxPYmplY3QsIHNlY3VyaXR5T3JpZ2lu
LCBmYWxzZSk7CisgICAgICAgIH0KICAgICAgICAgaXNvbGF0ZWRDb250ZXh0cy5jbGVhcigpOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9FeGVjdXRpb25Db250ZXh0TGlzdC5qcwppbmRleCBiMmI5YWEw
NWNhOTJkMmI0ZmM0OTJiNGRkYmQzZGRmODQ4NTMwYzQzLi42M2Q5NTczM2Q3YjBiMDc5MTVjZWIw
ZTMzYjQxMmIyZDFhZDgyNGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvRXhlY3V0aW9uQ29udGV4dExpc3QuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0V4ZWN1dGlvbkNvbnRleHRMaXN0Lmpz
CkBAIC00NSw3ICs0NSw4IEBAIFdJLkV4ZWN1dGlvbkNvbnRleHRMaXN0ID0gY2xhc3MgRXhlY3V0
aW9uQ29udGV4dExpc3QKIAogICAgIGFkZChjb250ZXh0KQogICAgIHsKLSAgICAgICAgLy8gRklY
TUU6IFRoZSBiYWNrZW5kIHNlbmRzIGR1cGxpY2F0ZSBwYWdlIGNvbnRleHQgZXhlY3V0aW9uIGNv
bnRleHRzIHdpdGggdGhlIHNhbWUgaWQuIFdoeT8KKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAo
aU9TIDEzLjApOiBPbGRlciBpT1MgcmVsZWFzZXMgd2lsbCBzZW5kIGR1cGxpY2F0ZXMuCisgICAg
ICAgIC8vIE5ld2VyIHJlbGVhc2VzIHdpbGwgbm90IGFuZCB0aGlzIGNoZWNrIHNob3VsZCBiZSBy
ZW1vdmVkIGV2ZW50dWFsbHkuCiAgICAgICAgIGlmIChjb250ZXh0LmlzUGFnZUNvbnRleHQgJiYg
dGhpcy5fcGFnZUV4ZWN1dGlvbkNvbnRleHQpIHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KGNvbnRleHQuaWQgPT09IHRoaXMuX3BhZ2VFeGVjdXRpb25Db250ZXh0LmlkKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZjdlODQxMGViNjJlMjE0ZTM2ZTM0OGExZGRkMDEw
ZmQ2ODM5MzU3Li43YmU1M2EwMzk5Yzk2MGExNGVkN2YyNTE4ZjU5MmVhMGViNjUwM2ZkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMTItMDQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUnVudGltZS5lbmFibGUgcmVw
b3J0cyBkdXBsaWNhdGVzIChub24gZXhpc3RlbnQpIGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ4NTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgVGVzdCB0aGF0IG9ubHkgZXhpc3RpbmcgY29u
dGV4dHMgYXJlIHJlcG9ydGVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL3N0YWJsZS1pZC1tYXAuanM6IEFkZGVkLgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0
ZXJJbml0aWFsaXplci53aW5kb3cuU3RhYmxlSWRNYXApOgorICAgICAgICAoVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplci53aW5kb3cuU3RhYmxlSWRNYXAucHJvdG90eXBlLmdldCBzaXplKToK
KyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIud2luZG93LlN0YWJsZUlkTWFw
LnByb3RvdHlwZS5nZXQgbGV0KToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6
ZXIpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1s
b2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQtb25F
bmFibGUuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMTggIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBBdWRpbyBDYXB0dXJlIGluIEdQ
VVByb2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9zdGFibGUtaWQtbWFwLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL3N0YWJsZS1pZC1tYXAuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAwNzI4OTZkM2VkNGIw
OTU4OTU2YTQxZTJhYmY1ZjZlMTk3ODM0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9zdGFibGUtaWQtbWFwLmpzCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgTWljcm9zb2Z0IENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisgVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXpl
cigoKSA9PiB7CisgICAgd2luZG93LlN0YWJsZUlkTWFwID0gY2xhc3MgU3RhYmxlSWRNYXAgewor
ICAgICAgICBjb25zdHJ1Y3RvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuX2lkTWFw
ID0gbmV3IE1hcDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFB1YmxpYworCisgICAgICAgIGdl
dCBzaXplKCkgeyByZXR1cm4gdGhpcy5faWRNYXAuc2l6ZTsgfQorCisgICAgICAgIGdldCh1bnN0
YWJsZUlkKQorICAgICAgICB7CisgICAgICAgICAgICBsZXQgaWQgPSB0aGlzLl9pZE1hcC5nZXQo
dW5zdGFibGVJZCk7CisgICAgICAgICAgICBpZiAoaWQgPT09IHVuZGVmaW5lZCkgeworICAgICAg
ICAgICAgICAgIGlkID0gdGhpcy5zaXplOworICAgICAgICAgICAgICAgIHRoaXMuX2lkTWFwLnNl
dCh1bnN0YWJsZUlkLCBpZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gaWQ7
CisgICAgICAgIH0KKyAgICB9Cit9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9h
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci90YXJnZXQv
cHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3VzLWxvYWQtZXhwZWN0ZWQudHh0CmluZGV4
IGRkMDdiNWEwNGQ3ZjgzYjljNTcwYzJiZjY5MThkZjQyNTZkZjc4MGUuLjRhZjA3YTBjZjQzMDcx
ZDI1ODNiM2UyYjE1MzMzZjk5OTdiNTI1ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3RhcmdldC9wcm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMt
bG9hZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
dGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLWV4cGVjdGVkLnR4
dApAQCAtMywxNSArMywxNSBAQCBUZXN0IHRoYXQgdHdvIGNvbnNlcXV0aXZlIGNyb3NzIGRvbWFp
biBuYXZpZ2F0aW9uIHJlcXVlc3RzIHdpbGwgcmVzdWx0IGluIHR3byBwcgogCiA9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IFRhcmdldC5QU09OCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogUHJvdmlzaW9u
YWxQYWdlUGF1c2VkCi1DdXJyZW50IHRhcmdldCBpcyAxLgorQ3VycmVudCB0YXJnZXQgaXMgMC4K
K1BBU1M6IFNob3VsZCByZWNlaXZlIFRhcmdldEFkZGVkIGV2ZW50IGZvciB0YXJnZXQgMS4KK1BB
U1M6IFRhcmdldCAxIHNob3VsZCBiZSBwcm92aXNpb25hbC4KK1BBU1M6IFRhcmdldCAxIHNob3Vs
ZCBiZSBwYXVzZWQgb24gc3RhcnQuCitQQVNTOiBTaG91bGQgcmVjZWl2ZSBUYXJnZXRSZW1vdmVk
IGV2ZW50IGZvciB0YXJnZXQgMQogUEFTUzogU2hvdWxkIHJlY2VpdmUgVGFyZ2V0QWRkZWQgZXZl
bnQgZm9yIHRhcmdldCAyLgogUEFTUzogVGFyZ2V0IDIgc2hvdWxkIGJlIHByb3Zpc2lvbmFsLgog
UEFTUzogVGFyZ2V0IDIgc2hvdWxkIGJlIHBhdXNlZCBvbiBzdGFydC4KLVBBU1M6IFNob3VsZCBy
ZWNlaXZlIFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRhcmdldCAyCi1QQVNTOiBTaG91bGQgcmVj
ZWl2ZSBUYXJnZXRBZGRlZCBldmVudCBmb3IgdGFyZ2V0IDMuCi1QQVNTOiBUYXJnZXQgMyBzaG91
bGQgYmUgcHJvdmlzaW9uYWwuCi1QQVNTOiBUYXJnZXQgMyBzaG91bGQgYmUgcGF1c2VkIG9uIHN0
YXJ0LgotUEFTUzogU2hvdWxkIHJlY2VpdmUgVGFyZ2V0UmVtb3ZlZCBldmVudCBmb3IgdGFyZ2V0
IDEKLVBBU1M6IFNob3VsZCByZWNlaXZlIERpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0IGV2ZW50
IDEgPT4gMy4KK1BBU1M6IFNob3VsZCByZWNlaXZlIFRhcmdldFJlbW92ZWQgZXZlbnQgZm9yIHRh
cmdldCAwCitQQVNTOiBTaG91bGQgcmVjZWl2ZSBEaWRDb21taXRQcm92aXNpb25hbFRhcmdldCBl
dmVudCAwID0+IDIuCiBQQVNTOiBTaG91bGQgaGF2ZSBzZWVuIDMgZGlmZmVyZW50IHRhcmdldHMu
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3RhcmdldC9w
cm92aXNpb25hbC1sb2FkLWNhbmNlbHMtcHJldmlvdXMtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2
aW91cy1sb2FkLmh0bWwKaW5kZXggYzk2YjAyM2IzMDljNmM4YzFiZTAzNWU5YjQyMGM5NzZjZGFi
OWZjMy4uMjY2MjYyMjBlNGY0ZjlmNDRhMWIxMWY1Y2RjMTZhMjI1MzJmY2E2MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxv
YWQtY2FuY2Vscy1wcmV2aW91cy1sb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvdGFyZ2V0L3Byb3Zpc2lvbmFsLWxvYWQtY2FuY2Vscy1wcmV2aW91cy1sb2Fk
Lmh0bWwKQEAgLTMsMzQgKzMsMjQgQEAKIDxoZWFkPgogPG1ldGEgY2hhcnNldD0idXRmLTgiPgog
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3N0YWJsZS1pZC1tYXAuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGxldCBsYXN0QXNzaWduZWRJZCA9IDA7Ci0g
ICAgbGV0IHRhcmdldFRvSWQgPSBuZXcgTWFwOwotICAgIGZ1bmN0aW9uIHN0YWJsZVRhcmdldElk
KHRhcmdldElkKQotICAgIHsKLSAgICAgICAgbGV0IGlkID0gdGFyZ2V0VG9JZC5nZXQodGFyZ2V0
SWQpOwotICAgICAgICBpZiAoIWlkKSB7Ci0gICAgICAgICAgICBpZCA9ICsrbGFzdEFzc2lnbmVk
SWQ7Ci0gICAgICAgICAgICB0YXJnZXRUb0lkLnNldCh0YXJnZXRJZCwgaWQpOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBpZDsKLSAgICB9Ci0KICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlRhcmdldC5QU09OIik7CiAKICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJQcm92aXNpb25hbFBhZ2VQYXVzZWQiLAogICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgbmV3IHByb3Zpc2lvbmFsIHBhZ2UgY2FuIGJlIHBhdXNl
ZCBiZWZvcmUgbmF2aWdhdGlvbi4iLAogICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coYEN1cnJlbnQgdGFyZ2V0IGlzICR7c3RhYmxl
VGFyZ2V0SWQoV0kubWFpblRhcmdldC5pZGVudGlmaWVyKX0uYCk7CisgICAgICAgICAgICBsZXQg
dGFyZ2V0SWRNYXAgPSBuZXcgU3RhYmxlSWRNYXA7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZyhgQ3VycmVudCB0YXJnZXQgaXMgJHt0YXJnZXRJZE1hcC5nZXQoV0kubWFpblRhcmdldC5p
ZGVudGlmaWVyKX0uYCk7CiAgICAgICAgICAgICBjb25zdCB1cmwgPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL2luc3BlY3Rvci90YXJnZXQvcHJvdmlzaW9uYWwtbG9hZC1jYW5jZWxzLXByZXZpb3Vz
LWxvYWQuaHRtbCI7CiAgICAgICAgICAgICBsZXQgbmF2aWdhdGVkVHdpY2UgPSBmYWxzZTsKIAog
ICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdJLlRhcmdldE1h
bmFnZXIuRXZlbnQuVGFyZ2V0QWRkZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgIGxl
dCB0YXJnZXQgPSBldmVudC5kYXRhLnRhcmdldDsKLSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0
SWQgPSBzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAg
bGV0IHRhcmdldElkID0gdGFyZ2V0SWRNYXAuZ2V0KHRhcmdldC5pZGVudGlmaWVyKTsKICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoYFNob3VsZCByZWNlaXZlIFRhcmdldEFkZGVk
IGV2ZW50IGZvciB0YXJnZXQgJHt0YXJnZXRJZH0uYCk7CiAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUcnVlKHRhcmdldC5pc1Byb3Zpc2lvbmFsLCBgVGFyZ2V0ICR7dGFyZ2V0
SWR9IHNob3VsZCBiZSBwcm92aXNpb25hbC5gKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRydWUodGFyZ2V0LmlzUGF1c2VkLCBgVGFyZ2V0ICR7dGFyZ2V0SWR9IHNob3Vs
ZCBiZSBwYXVzZWQgb24gc3RhcnQuYCk7CkBAIC00NSwxOCArMzUsMTggQEAgZnVuY3Rpb24gdGVz
dCgpCiAKICAgICAgICAgICAgIFdJLnRhcmdldE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5U
YXJnZXRNYW5hZ2VyLkV2ZW50LkRpZENvbW1pdFByb3Zpc2lvbmFsVGFyZ2V0LCAoZXZlbnQpID0+
IHsKICAgICAgICAgICAgICAgICBsZXQge3ByZXZpb3VzVGFyZ2V0SWQsIHRhcmdldH0gPSBldmVu
dC5kYXRhOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2Vp
dmUgRGlkQ29tbWl0UHJvdmlzaW9uYWxUYXJnZXQgZXZlbnQgJHtzdGFibGVUYXJnZXRJZChwcmV2
aW91c1RhcmdldElkKX0gPT4gJHtzdGFibGVUYXJnZXRJZCh0YXJnZXQuaWRlbnRpZmllcil9LmAp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucGFzcyhgU2hvdWxkIHJlY2VpdmUgRGlk
Q29tbWl0UHJvdmlzaW9uYWxUYXJnZXQgZXZlbnQgJHt0YXJnZXRJZE1hcC5nZXQocHJldmlvdXNU
YXJnZXRJZCl9ID0+ICR7dGFyZ2V0SWRNYXAuZ2V0KHRhcmdldC5pZGVudGlmaWVyKX0uYCk7CiAg
ICAgICAgICAgICB9KTsKIAogICAgICAgICAgICAgV0kudGFyZ2V0TWFuYWdlci5hZGRFdmVudExp
c3RlbmVyKFdJLlRhcmdldE1hbmFnZXIuRXZlbnQuVGFyZ2V0UmVtb3ZlZCwgKGV2ZW50KSA9PnsK
LSAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSBzdGFibGVUYXJnZXRJZChldmVudC5kYXRh
LnRhcmdldC5pZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0SWQgPSB0YXJn
ZXRJZE1hcC5nZXQoZXZlbnQuZGF0YS50YXJnZXQuaWRlbnRpZmllcik7CiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5wYXNzKGBTaG91bGQgcmVjZWl2ZSBUYXJnZXRSZW1vdmVkIGV2ZW50
IGZvciB0YXJnZXQgJHt0YXJnZXRJZH1gKTsKICAgICAgICAgICAgIH0pOwogCiAgICAgICAgICAg
ICAvLyBXYWl0IGZvciBwYWdlIHJlbG9hZCBldmVudCB0byBhdm9pZCByYWNlIGJldHdlZW4gdGVz
dCByZXN1bHRzIGZsdXNoaW5nIGFuZCB0aGUgdGVzdCBjb21wbGV0aW9uLgogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KEZyb250ZW5kVGVzdEhhcm5lc3MuRXZlbnQuVGVzdFBh
Z2VEaWRMb2FkKQogICAgICAgICAgICAgLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwobGFzdEFzc2lnbmVkSWQsIDMsIGBTaG91bGQgaGF2ZSBz
ZWVuIDMgZGlmZmVyZW50IHRhcmdldHMuYCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbCh0YXJnZXRJZE1hcC5zaXplLCAzLCBgU2hvdWxkIGhhdmUgc2VlbiAzIGRp
ZmZlcmVudCB0YXJnZXRzLmApOwogICAgICAgICAgICAgfSkKICAgICAgICAgICAgIC50aGVuKHJl
c29sdmUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGltZS9leGVj
dXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcnVudGltZS9leGVjdXRpb25Db250ZXh0Q3JlYXRlZC1vbkVuYWJsZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGZjMTY4NGE0YTM1YWJiNTYxNGJlYWFlYmI3YTg1MzgzYmJjMjZl
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1
dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CisKK1Rlc3QgdGhhdCBleGFjdGx5IG9uZSBSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVk
IGV2ZW50IGlzIGZpcmVkIGZvciBlYWNoIGV4aXN0aW5nIGNvbnRleHQgd2hlbiBSdW50aW1lLmVu
YWJsZSBpcyBjYWxsZWQuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSdW50aW1lLmV4ZWN1
dGlvbkNvbnRleHRDcmVhdGVkLk9uRW5hYmxlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUnVudGlt
ZS5leGVjdXRpb25Db250ZXh0Q3JlYXRlZC5PbkVuYWJsZS5Ob0R1cGxpY2F0ZXMKK0V4ZWN1dGlv
biBjb250ZXh0IGNyZWF0ZWQ6IGlkPTAgZnJhbWVJZD0wIGlzUGFnZUNvbnRleHQ9dHJ1ZQorRXhl
Y3V0aW9uIGNvbnRleHQgY3JlYXRlZDogaWQ9MSBmcmFtZUlkPTEgaXNQYWdlQ29udGV4dD10cnVl
CitQQVNTOiBTaG91bGQgcmVjZWl2ZSAyIGV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkIGV2ZW50cyAo
Zm9yIG1haW4gd29ybGQgaW4gdGhlIG1haW4gZnJhbWUgYW5kIHRoZSBzdWJmcmFtZSkuCitQQVNT
OiBTaG91bGQgaGF2ZSAyIHVuaXF1ZSBjb250ZXh0cy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3J1bnRpbWUvZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQtb25FbmFibGUuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVk
LW9uRW5hYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE1YzkzZGU3NDVlN2MzNTEzYmY3MWRhOTYxMWZh
N2VlMTg1Y2M2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50
aW1lL2V4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLW9uRW5hYmxlLmh0bWwKQEAgLTAsMCArMSw0MiBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3N0YWJsZS1pZC1tYXAuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IFByb3Rv
Y29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSdW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVk
Lk9uRW5hYmxlIik7CisKKyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJS
dW50aW1lLmV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkLk9uRW5hYmxlLk5vRHVwbGljYXRlcyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCB0aGF0IFJ1bnRpbWUuZW5hYmxlIHdpbGwgc2VuZCBl
eGVjdXRpb25Db250ZXh0Q3JlYXRlZCBldmVudHMgb25seSBmb3IgZXhpc3RuZyBtYWluIHdvcmxk
IGNvbnRleHRzIiwKKyAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgIGxldCBjb250
ZXh0SWRNYXAgPSBuZXcgU3RhYmxlSWRNYXA7CisgICAgICAgICAgICBsZXQgZnJhbWVJZE1hcCA9
IG5ldyBTdGFibGVJZE1hcDsKKyAgICAgICAgICAgIGxldCBjb250ZXh0Q291bnQgPSAwOworCisg
ICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5hZGRFdmVudExpc3RlbmVyKCJSdW50aW1lLmV4
ZWN1dGlvbkNvbnRleHRDcmVhdGVkIiwgKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAg
ICAgICBsZXQge2lkLCBpc1BhZ2VDb250ZXh0LCBmcmFtZUlkfSA9IG1lc3NhZ2VPYmplY3QucGFy
YW1zLmNvbnRleHQ7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZyhgRXhlY3V0aW9u
IGNvbnRleHQgY3JlYXRlZDogaWQ9JHtjb250ZXh0SWRNYXAuZ2V0KGlkKX0gZnJhbWVJZD0ke2Zy
YW1lSWRNYXAuZ2V0KGZyYW1lSWQpfSBpc1BhZ2VDb250ZXh0PSR7aXNQYWdlQ29udGV4dH1gKQor
ICAgICAgICAgICAgICAgICsrY29udGV4dENvdW50OworICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JQcm90
b2NvbC5hd2FpdENvbW1hbmQoe21ldGhvZDogIlBhZ2UuZW5hYmxlIn0pLAorICAgICAgICAgICAg
ICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0Q29tbWFuZCh7bWV0aG9kOiAiUnVudGltZS5lbmFi
bGUifSksCisgICAgICAgICAgICBdKTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVj
dEVxdWFsKGNvbnRleHRDb3VudCwgMiwgIlNob3VsZCByZWNlaXZlIDIgZXhlY3V0aW9uQ29udGV4
dENyZWF0ZWQgZXZlbnRzIChmb3IgbWFpbiB3b3JsZCBpbiB0aGUgbWFpbiBmcmFtZSBhbmQgdGhl
IHN1YmZyYW1lKS4iKTsKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RFcXVhbChjb250
ZXh0SWRNYXAuc2l6ZSwgMiwgIlNob3VsZCBoYXZlIDIgdW5pcXVlIGNvbnRleHRzLiIpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIGlkPSJzdWJmcmFtZSIgc3JjPSJy
ZXNvdXJjZXMvY2hhbmdlLWV4ZWN1dGlvbi1jb250ZXh0LWlkZW50aWZpZXItc3ViZnJhbWUuaHRt
bCIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgorPHA+VGVzdCB0aGF0IGV4YWN0bHkgb25l
IFJ1bnRpbWUuZXhlY3V0aW9uQ29udGV4dENyZWF0ZWQgZXZlbnQgaXMgZmlyZWQgZm9yIGVhY2gg
ZXhpc3RpbmcgY29udGV4dCB3aGVuIFJ1bnRpbWUuZW5hYmxlIGlzIGNhbGxlZC48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>