<?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>188672</bug_id>
          
          <creation_ts>2018-08-16 13:02:36 -0700</creation_ts>
          <short_desc>Web Inspector: Provide $event in the console when paused on an event listener</short_desc>
          <delta_ts>2020-04-30 10:21:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=183118</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=210794</see_also>
          <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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1450821</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-16 13:02:36 -0700</bug_when>
    <thetext>* SUMMARY
When pausing on events, it&apos;s possible that the registered event listener might not have a parameter for the `event` object.

* TEST
    &lt;script&gt;
    document.body.addEventListnener(&quot;click&quot;, () =&gt; {
        debugger;
    });
    &lt;/script&gt;

* STEPS TO REPRODUCE
1. Inspect test page
2. Add event breakpoint for &quot;click&quot;
3. Click anywhere within the page to pause
  =&gt; should be able to access the `event` value via `$event` even though there was no named parameter for it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450854</commentid>
    <comment_count>1</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2018-08-16 13:43:54 -0700</bug_when>
    <thetext>Sounds like a good idea.

    $event = &quot;foo&quot;;
    document.body.addEventListnener(&quot;click&quot;, () =&gt; {
        debugger;
    });

`$event` is defined, we should preserve it. E.g. show &quot;foo&quot; and not the click event object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450865</commentid>
    <comment_count>2</comment_count>
      <attachid>347302</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-16 13:59:52 -0700</bug_when>
    <thetext>Created attachment 347302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450866</commentid>
    <comment_count>3</comment_count>
      <attachid>347302</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-16 14:04:13 -0700</bug_when>
    <thetext>Comment on attachment 347302
Patch

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

&gt; Source/JavaScriptCore/inspector/InjectedScriptSource.js:1396
&gt; +    this.$event = injectedScript._eventValue;

Given that events are a DOM concept, I don&apos;t think BasicCommandLineAPI will end up needing it. Since this is primarily for JSContext inspection (though it might make sense with ITMLKit inspection).

&gt; Source/WebCore/inspector/CommandLineAPIModuleSource.js:50
&gt; +    this.$event = injectedScript._eventValue;

I wonder if we can just make this something like:

    this.__defineGetter__(&quot;$event&quot;, () =&gt; inspectedWindow.event);

Is $event ever different from `window.event`? Yes it is possible for the page to have redefined the DOMWindow.prototype.event getter, so this isn&apos;t necessarily perfect but I don&apos;t think we need to be too concerned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450867</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-08-16 14:07:31 -0700</bug_when>
    <thetext>(In reply to Nikita Vasilyev from comment #1)
&gt; Sounds like a good idea.
&gt; 
&gt;     $event = &quot;foo&quot;;
&gt;     document.body.addEventListnener(&quot;click&quot;, () =&gt; {
&gt;         debugger;
&gt;     });
&gt; 
&gt; `$event` is defined, we should preserve it. E.g. show &quot;foo&quot; and not the
&gt; click event object.

Yes, this should be the normal behavior of the CommandLineAPI. The CommandLineAPI functions (keys, values, $0, $n, $exception, $event, etc) are in the background, so if the page has defined their own thing with an equivalent identifier, the page&apos;s thing should win out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450936</commentid>
    <comment_count>5</comment_count>
      <attachid>347302</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-08-16 16:20:23 -0700</bug_when>
    <thetext>Comment on attachment 347302
Patch

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

&gt;&gt; Source/WebCore/inspector/CommandLineAPIModuleSource.js:50
&gt;&gt; +    this.$event = injectedScript._eventValue;
&gt; 
&gt; I wonder if we can just make this something like:
&gt; 
&gt;     this.__defineGetter__(&quot;$event&quot;, () =&gt; inspectedWindow.event);
&gt; 
&gt; Is $event ever different from `window.event`? Yes it is possible for the page to have redefined the DOMWindow.prototype.event getter, so this isn&apos;t necessarily perfect but I don&apos;t think we need to be too concerned.

I just tried this, and since `window.event` is defined, I&apos;m not even sure that we need this.  Typing just `event` will give you the same result as `$event`.  I think we should hold off on this until we have a better reason for differentiating between `$event` and `event`/`window.event`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518087</commentid>
    <comment_count>6</comment_count>
      <attachid>347302</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-18 19:13:25 -0700</bug_when>
    <thetext>Comment on attachment 347302
Patch

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

&gt;&gt;&gt; Source/WebCore/inspector/CommandLineAPIModuleSource.js:50
&gt;&gt;&gt; +    this.$event = injectedScript._eventValue;
&gt;&gt; 
&gt;&gt; I wonder if we can just make this something like:
&gt;&gt; 
&gt;&gt;     this.__defineGetter__(&quot;$event&quot;, () =&gt; inspectedWindow.event);
&gt;&gt; 
&gt;&gt; Is $event ever different from `window.event`? Yes it is possible for the page to have redefined the DOMWindow.prototype.event getter, so this isn&apos;t necessarily perfect but I don&apos;t think we need to be too concerned.
&gt; 
&gt; I just tried this, and since `window.event` is defined, I&apos;m not even sure that we need this.  Typing just `event` will give you the same result as `$event`.  I think we should hold off on this until we have a better reason for differentiating between `$event` and `event`/`window.event`.

Considering that `window.event` is non-standard, and is more likely to be overridden by the page&apos;s JavaScript than `$event`, I think we should consider adding this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518094</commentid>
    <comment_count>7</comment_count>
      <attachid>365110</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-18 19:22:31 -0700</bug_when>
    <thetext>Created attachment 365110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518445</commentid>
    <comment_count>8</comment_count>
      <attachid>365110</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 12:31:36 -0700</bug_when>
    <thetext>Comment on attachment 365110
Patch

Clearing flags on attachment: 365110

Committed r243161: &lt;https://trac.webkit.org/changeset/243161&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518446</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-19 12:31:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518448</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-19 12:32:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/49030174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518942</commentid>
    <comment_count>11</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-20 09:52:58 -0700</bug_when>
    <thetext>The changes in https://trac.webkit.org/changeset/243161/webkit

has broken inspector/timeline/line-column.html

history:
http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=inspector%2Ftimeline%2Fline-column.html

I confirmed the test was working with the fix in 243155 and then broke in 243161 again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1519138</commentid>
    <comment_count>12</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-20 13:31:58 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #11)
&gt; The changes in https://trac.webkit.org/changeset/243161/webkit
&gt; 
&gt; has broken inspector/timeline/line-column.html
&gt; 
&gt; history:
&gt; http://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=inspector%2Ftimeline%2Fline-column.html
&gt; 
&gt; I confirmed the test was working with the fix in 243155 and then broke in
&gt; 243161 again.
Fixed test in followup &lt;https://trac.webkit.org/changeset/243234/webkit&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347302</attachid>
            <date>2018-08-16 13:59:52 -0700</date>
            <delta_ts>2019-03-18 19:22:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>188672.diff</filename>
            <type>text/plain</type>
            <size>17399</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUyZjU0MTU3OTkxLi5lYmQ0NWM4NTRlMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTgtMDgtMTYgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFBy
b3ZpZGUgJGV2ZW50IGluIHRoZSBjb25zb2xlIHdoZW4gcGF1c2VkIG9uIGFuIGV2ZW50IGxpc3Rl
bmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg2
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGlu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0OjpzZXRFdmVudFZh
bHVlKTogQWRkZWQuCisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0OjpjbGVhckV2
ZW50VmFsdWUpOiBBZGRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1h
bmFnZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjbGVhckV2ZW50VmFs
dWUpOiBBZGRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5q
czoKKyAgICAgICAgKFdJLkluamVjdGVkU2NyaXB0LnByb3RvdHlwZS5zZXRFdmVudFZhbHVlKTog
QWRkZWQuCisgICAgICAgIChXSS5JbmplY3RlZFNjcmlwdC5wcm90b3R5cGUuY2xlYXJFdmVudFZh
bHVlKTogQWRkZWQuCisgICAgICAgIChCYXNpY0NvbW1hbmRMaW5lQVBJKToKKwogMjAxOC0wOC0x
NiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogYWxsb3cgYnJlYWtwb2ludHMgdG8gYmUgc2V0IGZvciBzcGVjaWZpYyBldmVudCBsaXN0
ZW5lcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdC5jcHAKaW5kZXggMmM5YTRiMmY0YzMuLmY0YmUyZjZhMjY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcApAQCAtMzIxLDYg
KzMyMSwyMSBAQCBSZWZQdHI8UHJvdG9jb2w6OlJ1bnRpbWU6Ok9iamVjdFByZXZpZXc+IEluamVj
dGVkU2NyaXB0OjpwcmV2aWV3VmFsdWUoSlNDOjpKU1ZhbAogICAgIHJldHVybiBCaW5kaW5nVHJh
aXRzPFByb3RvY29sOjpSdW50aW1lOjpPYmplY3RQcmV2aWV3Pjo6cnVudGltZUNhc3QocmVzdWx0
T2JqZWN0KTsKIH0KIAordm9pZCBJbmplY3RlZFNjcmlwdDo6c2V0RXZlbnRWYWx1ZShKU0M6OkpT
VmFsdWUgdmFsdWUpCit7CisgICAgQVNTRVJUKCFoYXNOb1ZhbHVlKCkpOworICAgIERlcHJlY2F0
ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAi
c2V0RXZlbnRWYWx1ZSJfcywgaW5zcGVjdG9yRW52aXJvbm1lbnQoKS0+ZnVuY3Rpb25DYWxsSGFu
ZGxlcigpKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudCh2YWx1ZSk7CisgICAgbWFrZUNh
bGwoZnVuY3Rpb24pOworfQorCit2b2lkIEluamVjdGVkU2NyaXB0OjpjbGVhckV2ZW50VmFsdWUo
KQoreworICAgIEFTU0VSVCghaGFzTm9WYWx1ZSgpKTsKKyAgICBEZXByZWNhdGVkOjpTY3JpcHRG
dW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgImNsZWFyRXZlbnRW
YWx1ZSJfcywgaW5zcGVjdG9yRW52aXJvbm1lbnQoKS0+ZnVuY3Rpb25DYWxsSGFuZGxlcigpKTsK
KyAgICBtYWtlQ2FsbChmdW5jdGlvbik7Cit9CisKIHZvaWQgSW5qZWN0ZWRTY3JpcHQ6OnNldEV4
Y2VwdGlvblZhbHVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBBU1NFUlQoIWhhc05vVmFs
dWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0LmgKaW5kZXggNmQzMmI5N2NiZmUuLjEzZGMzMTBkZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC02OCw2ICs2OCw5IEBA
IHB1YmxpYzoKICAgICBSZWZQdHI8UHJvdG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4gd3Jh
cFRhYmxlKEpTQzo6SlNWYWx1ZSB0YWJsZSwgSlNDOjpKU1ZhbHVlIGNvbHVtbnMpIGNvbnN0Owog
ICAgIFJlZlB0cjxQcm90b2NvbDo6UnVudGltZTo6T2JqZWN0UHJldmlldz4gcHJldmlld1ZhbHVl
KEpTQzo6SlNWYWx1ZSkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEV2ZW50VmFsdWUoSlNDOjpKU1Zh
bHVlKTsKKyAgICB2b2lkIGNsZWFyRXZlbnRWYWx1ZSgpOworCiAgICAgdm9pZCBzZXRFeGNlcHRp
b25WYWx1ZShKU0M6OkpTVmFsdWUpOwogICAgIHZvaWQgY2xlYXJFeGNlcHRpb25WYWx1ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0TWFuYWdlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0TWFuYWdlci5jcHAKaW5kZXggYjRjNmMxOGU0MzMuLmU1MGY3YjQyMjIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dE1hbmFnZXIuY3BwCkBAIC0xMjIsNiArMTIyLDEyIEBAIHZvaWQgSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyOjpyZWxlYXNlT2JqZWN0R3JvdXAoY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCkKICAgICAg
ICAgaW5qZWN0ZWRTY3JpcHQucmVsZWFzZU9iamVjdEdyb3VwKG9iamVjdEdyb3VwKTsKIH0KIAor
dm9pZCBJbmplY3RlZFNjcmlwdE1hbmFnZXI6OmNsZWFyRXZlbnRWYWx1ZSgpCit7CisgICAgZm9y
IChhdXRvJiBpbmplY3RlZFNjcmlwdCA6IG1faWRUb0luamVjdGVkU2NyaXB0LnZhbHVlcygpKQor
ICAgICAgICBpbmplY3RlZFNjcmlwdC5jbGVhckV2ZW50VmFsdWUoKTsgICAKK30KKwogdm9pZCBJ
bmplY3RlZFNjcmlwdE1hbmFnZXI6OmNsZWFyRXhjZXB0aW9uVmFsdWUoKQogewogICAgIGZvciAo
YXV0byYgaW5qZWN0ZWRTY3JpcHQgOiBtX2lkVG9JbmplY3RlZFNjcmlwdC52YWx1ZXMoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
TWFuYWdlci5oCmluZGV4IGNlYjhjMDIzM2ZjLi5lYTQ4ZmE5MzAxYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5o
CkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICBpbnQgaW5qZWN0ZWRTY3JpcHRJZEZvcihK
U0M6OkV4ZWNTdGF0ZSopOwogICAgIEluamVjdGVkU2NyaXB0IGluamVjdGVkU2NyaXB0Rm9yT2Jq
ZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCk7CiAgICAgdm9pZCByZWxlYXNlT2JqZWN0R3Jv
dXAoY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCk7CisgICAgdm9pZCBjbGVhckV2ZW50VmFsdWUo
KTsKICAgICB2b2lkIGNsZWFyRXhjZXB0aW9uVmFsdWUoKTsKIAogcHJvdGVjdGVkOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJj
ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3Vy
Y2UuanMKaW5kZXggZDZiNzVmMWZlY2QuLjgwODNlNTM5Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAg
LTMwNiw2ICszMDYsMTYgQEAgbGV0IEluamVjdGVkU2NyaXB0ID0gY2xhc3MgSW5qZWN0ZWRTY3Jp
cHQKICAgICAgICAgcmV0dXJuIFJlbW90ZU9iamVjdC5jcmVhdGVPYmplY3RQcmV2aWV3Rm9yVmFs
dWUodmFsdWUsIHRydWUpOwogICAgIH0KIAorICAgIHNldEV2ZW50VmFsdWUodmFsdWUpCisgICAg
eworICAgICAgICB0aGlzLl9ldmVudFZhbHVlID0gdmFsdWU7CisgICAgfQorCisgICAgY2xlYXJF
dmVudFZhbHVlKCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9ldmVudFZhbHVlOworICAg
IH0KKwogICAgIHNldEV4Y2VwdGlvblZhbHVlKHZhbHVlKQogICAgIHsKICAgICAgICAgdGhpcy5f
ZXhjZXB0aW9uVmFsdWUgPSB2YWx1ZTsKQEAgLTEzODMsNiArMTM5Myw3IEBAIGZ1bmN0aW9uIGJp
bmQoZnVuYywgdGhpc09iamVjdCwgLi4ub3V0ZXJBcmdzKQogZnVuY3Rpb24gQmFzaWNDb21tYW5k
TGluZUFQSShjYWxsRnJhbWUpCiB7CiAgICAgdGhpcy4kXyA9IGluamVjdGVkU2NyaXB0Ll9sYXN0
UmVzdWx0OworICAgIHRoaXMuJGV2ZW50ID0gaW5qZWN0ZWRTY3JpcHQuX2V2ZW50VmFsdWU7CiAg
ICAgdGhpcy4kZXhjZXB0aW9uID0gaW5qZWN0ZWRTY3JpcHQuX2V4Y2VwdGlvblZhbHVlOwogCiAg
ICAgLy8gJDEtJDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM2ODRjMDBmNWMuLmQ5MWJiZTBmZjhkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTgtMDgtMTYgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUgJGV2ZW50IGlu
IHRoZSBjb25zb2xlIHdoZW4gcGF1c2VkIG9uIGFuIGV2ZW50IGxpc3RlbmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg2NzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qczoK
KyAgICAgICAgKENvbW1hbmRMaW5lQVBJKToKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbEhhbmRsZUV2ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbEhhbmRsZUV2ZW50SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZEhhbmRsZUV2ZW50SW1wbCk6CisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsSGFu
ZGxlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6
ZGlkSGFuZGxlRXZlbnQpOiBBZGRlZC4KKwogMjAxOC0wOC0xNiAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgYnJlYWtwb2lu
dHMgdG8gYmUgc2V0IGZvciBzcGVjaWZpYyBldmVudCBsaXN0ZW5lcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcwppbmRl
eCA3Y2Y0ZmNkYWFhYS4uNGQ2OWUxMzI4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9Db21tYW5kTGluZUFQSU1vZHVsZVNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvQ29tbWFuZExpbmVBUElNb2R1bGVTb3VyY2UuanMKQEAgLTQ3LDYgKzQ3LDcg
QEAgZnVuY3Rpb24gYmluZChmdW5jLCB0aGlzT2JqZWN0LCAuLi5vdXRlckFyZ3MpCiBmdW5jdGlv
biBDb21tYW5kTGluZUFQSShjb21tYW5kTGluZUFQSUltcGwsIGNhbGxGcmFtZSkKIHsKICAgICB0
aGlzLiRfID0gaW5qZWN0ZWRTY3JpcHQuX2xhc3RSZXN1bHQ7CisgICAgdGhpcy4kZXZlbnQgPSBp
bmplY3RlZFNjcmlwdC5fZXZlbnRWYWx1ZTsKICAgICB0aGlzLiRleGNlcHRpb24gPSBpbmplY3Rl
ZFNjcmlwdC5fZXhjZXB0aW9uVmFsdWU7CiAKICAgICAvLyAkMApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0MWI3
ODc3MTYxZi4uYjZmOWY0MDZiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zODgsNyArMzg4LDcgQEAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bERpc3BhdGNoRXZlbnRJbXBsKEkKICAgICByZXR1cm4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Q29va2llKGluc3RydW1lbnRpbmdBZ2VudHMsIHRpbWVsaW5lQWdlbnRJZCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxlRXZlbnRJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IEV2ZW50JiBldmVudCwgY29uc3Qg
UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKQordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxIYW5kbGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgRXZlbnQmIGV2ZW50LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5l
ciYgbGlzdGVuZXIpCiB7CiAgICAgaWYgKFBhZ2VEZWJ1Z2dlckFnZW50KiBwYWdlRGVidWdnZXJB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMucGFnZURlYnVnZ2VyQWdlbnQoKSkKICAgICAgICAg
cGFnZURlYnVnZ2VyQWdlbnQtPndpbGxIYW5kbGVFdmVudChsaXN0ZW5lcik7CkBAIC00MDEsNiAr
NDAxLDkgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZEhhbmRsZUV2ZW50SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW4KIHsKICAgICBpZiAoSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMuaW5zcGVjdG9y
RGVidWdnZXJBZ2VudCgpKQogICAgICAgICBkZWJ1Z2dlckFnZW50LT5kaWREaXNwYXRjaEFzeW5j
Q2FsbCgpOworCisgICAgaWYgKEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIGRvbURlYnVnZ2Vy
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQoKSkK
KyAgICAgICAgZG9tRGVidWdnZXJBZ2VudC0+ZGlkSGFuZGxlRXZlbnQoKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRXZlbnRJbXBsKGNvbnN0IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYgY29va2llKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDYyMmZjNTYwMjA3
Li45OTkxMDQ3ODI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMTUxLDcgKzE1MSw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBpc0V2ZW50TGlzdGVuZXJEaXNhYmxlZChFdmVudFRhcmdldCYsIGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKICAg
ICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50
KERvY3VtZW50JiwgY29uc3QgRXZlbnQmLCBib29sIGhhc0V2ZW50TGlzdGVuZXJzKTsKICAgICBz
dGF0aWMgdm9pZCBkaWREaXNwYXRjaEV2ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSYpOwotICAgIHN0YXRpYyB2b2lkIHdpbGxIYW5kbGVFdmVudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgY29uc3QgRXZlbnQmLCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYp
OworICAgIHN0YXRpYyB2b2lkIHdpbGxIYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgRXZlbnQmLCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYpOwogICAgIHN0YXRpYyB2
b2lkIGRpZEhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKICAgICBzdGF0aWMg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50T25XaW5kb3co
RnJhbWUqLCBjb25zdCBFdmVudCYsIERPTVdpbmRvdyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoRXZlbnRPbldpbmRvdyhjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUm
KTsKQEAgLTMzNCw3ICszMzQsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1v
dmVFdmVudExpc3RlbmVySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRXZlbnRUYXJnZXQmLCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGJvb2wgY2FwdHVy
ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNFdmVudExpc3RlbmVyRGlzYWJsZWRJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBFdmVudFRhcmdldCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKICAgICBzdGF0aWMgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiwgRG9jdW1lbnQmLCBjb25zdCBFdmVudCYsIGJvb2wgaGFzRXZlbnRMaXN0ZW5lcnMpOwot
ICAgIHN0YXRpYyB2b2lkIHdpbGxIYW5kbGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IGNvbnN0IEV2ZW50JiwgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImKTsKKyAgICBzdGF0
aWMgdm9pZCB3aWxsSGFuZGxlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFdmVudCYs
IGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJik7CiAgICAgc3RhdGljIHZvaWQgZGlkSGFu
ZGxlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmKTsKICAgICBzdGF0aWMgdm9pZCBkaWRE
aXNwYXRjaEV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsK
ICAgICBzdGF0aWMgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIHdpbGxEaXNwYXRjaEV2
ZW50T25XaW5kb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBFdmVudCYsIERPTVdp
bmRvdyYpOwpAQCAtNzYzLDcgKzc2Myw3IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkRGlzcGF0Y2hFdmVudChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50CiAgICAg
ICAgIGRpZERpc3BhdGNoRXZlbnRJbXBsKGNvb2tpZSk7CiB9CiAKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEV2ZW50JiBldmVudCwgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlz
dGVuZXImIGxpc3RlbmVyKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsSGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRXZlbnQmIGV2
ZW50LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIpCiB7CiAgICAgRkFT
VF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7CiAgICAgaWYgKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yQ29udGV4
dChjb250ZXh0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDM3OTJjZmRjNzExLi4x
Nzc3MDk1MjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNyw4ICszNywxMSBA
QAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQu
aCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiSlNFdmVudC5o
IgogI2luY2x1ZGUgIlJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvQ29udGVudFNlYXJjaFV0aWxpdGllcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0luamVjdGVkU2NyaXB0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRl
bmREaXNwYXRjaGVycy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNz
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KQEAgLTY4LDYgKzcxLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJbnNwZWN0b3JE
T01BZ2VudCogZG9tQWdlbnQsIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQp
CiAgICAgOiBJbnNwZWN0b3JBZ2VudEJhc2UoIkRPTURlYnVnZ2VyIl9zLCBjb250ZXh0KQogICAg
ICwgbV9iYWNrZW5kRGlzcGF0Y2hlcihJbnNwZWN0b3I6OkRPTURlYnVnZ2VyQmFja2VuZERpc3Bh
dGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKKyAgICAsIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGNvbnRleHQuaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAg
ICwgbV9kb21BZ2VudChkb21BZ2VudCkKICAgICAsIG1fZGVidWdnZXJBZ2VudChkZWJ1Z2dlckFn
ZW50KQogewpAQCAtMzY0LDEzICszNjgsMjMgQEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50Ojp1cGRhdGVTdWJ0cmVlQnJlYWtwb2ludHMoTm9kZSogbm9kZSwgdWludDMyX3Qgcm8KICAg
ICAgICAgdXBkYXRlU3VidHJlZUJyZWFrcG9pbnRzKGNoaWxkLCBuZXdSb290TWFzaywgc2V0KTsK
IH0KIAotdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsSGFuZGxlRXZlbnQoY29u
c3QgRXZlbnQmIGV2ZW50LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgcmVnaXN0ZXJl
ZEV2ZW50TGlzdGVuZXIpCit2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxIYW5k
bGVFdmVudChFdmVudCYgZXZlbnQsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiByZWdp
c3RlcmVkRXZlbnRMaXN0ZW5lcikKIHsKICAgICBib29sIHNob3VsZFBhdXNlID0gbV9kZWJ1Z2dl
ckFnZW50LT5wYXVzZU9uTmV4dFN0YXRlbWVudEVuYWJsZWQoKSB8fCBtX2V2ZW50TGlzdGVuZXJC
cmVha3BvaW50cy5jb250YWlucyhsaXN0ZW5lckV2ZW50Q2F0ZWdvcnlUeXBlICsgZXZlbnQudHlw
ZSgpKTsKIAogICAgIGlmICghc2hvdWxkUGF1c2UgJiYgbV9kb21BZ2VudCkKICAgICAgICAgc2hv
dWxkUGF1c2UgPSBtX2RvbUFnZW50LT5oYXNCcmVha3BvaW50Rm9yRXZlbnRMaXN0ZW5lcigqZXZl
bnQuY3VycmVudFRhcmdldCgpLCBldmVudC50eXBlKCksIHJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
LmNhbGxiYWNrKCksIHJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLnVzZUNhcHR1cmUoKSk7CiAKKyAg
ICBhdXRvJiBzdGF0ZSA9ICpldmVudC50YXJnZXQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5leGVjU3RhdGUoKTsKKyAgICBhdXRvIGluamVjdGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuaW5qZWN0ZWRTY3JpcHRGb3IoJnN0YXRlKTsKKyAgICBBU1NFUlQoIWluamVjdGVk
U2NyaXB0Lmhhc05vVmFsdWUoKSk7CisKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVy
IGxvY2soJnN0YXRlKTsKKworICAgICAgICBpbmplY3RlZFNjcmlwdC5zZXRFdmVudFZhbHVlKHRv
SlMoJnN0YXRlLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKCZzdGF0ZSksIGV2
ZW50KSk7CisgICAgfQorCiAgICAgaWYgKCFzaG91bGRQYXVzZSkKICAgICAgICAgcmV0dXJuOwog
CkBAIC0zODUsNiArMzk5LDExIEBAIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6d2ls
bEhhbmRsZUV2ZW50KGNvbnN0IEV2ZW50JiBldmVudCwgY29uc3QgUmVnaXN0CiAgICAgbV9kZWJ1
Z2dlckFnZW50LT5zY2hlZHVsZVBhdXNlT25OZXh0U3RhdGVtZW50KEluc3BlY3Rvcjo6RGVidWdn
ZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbjo6RXZlbnRMaXN0ZW5lciwgV1RGTW92ZShldmVu
dERhdGEpKTsKIH0KIAordm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpkaWRIYW5kbGVF
dmVudCgpCit7CisgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuY2xlYXJFdmVudFZhbHVlKCk7
Cit9CisKIHZvaWQgSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDo6cGF1c2VPbk5hdGl2ZUV2ZW50
SWZOZWVkZWQoY29uc3QgU3RyaW5nJiBldmVudE5hbWUsIGJvb2wgc3luY2hyb25vdXMpCiB7CiAg
ICAgYm9vbCBzaG91bGRQYXVzZSA9IG1fZGVidWdnZXJBZ2VudC0+cGF1c2VPbk5leHRTdGF0ZW1l
bnRFbmFibGVkKCkgfHwgbV9ldmVudExpc3RlbmVyQnJlYWtwb2ludHMuY29udGFpbnMoaW5zdHJ1
bWVudGF0aW9uRXZlbnRDYXRlZ29yeVR5cGUgKyBldmVudE5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQuaAppbmRleCAwYjMwNjMxM2E2OS4uOGU1ZDQ4YTkyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK25hbWVzcGFjZSBJbnNwZWN0b3IgeworY2xh
c3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEVsZW1lbnQ7CkBAIC03NSw3ICs3OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxNb2Rp
ZnlET01BdHRyKEVsZW1lbnQmKTsKICAgICB2b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZnJhbWVEb2N1bWVudFVwZGF0ZWQoRnJhbWUmKTsK
LSAgICB2b2lkIHdpbGxIYW5kbGVFdmVudChjb25zdCBFdmVudCYsIGNvbnN0IFJlZ2lzdGVyZWRF
dmVudExpc3RlbmVyJik7CisgICAgdm9pZCB3aWxsSGFuZGxlRXZlbnQoRXZlbnQmLCBjb25zdCBS
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYpOworICAgIHZvaWQgZGlkSGFuZGxlRXZlbnQoKTsKICAg
ICB2b2lkIHBhdXNlT25OYXRpdmVFdmVudElmTmVlZGVkKGNvbnN0IFN0cmluZyYgZXZlbnROYW1l
LCBib29sIHN5bmNocm9ub3VzKTsKICAgICB2b2lkIG1haW5GcmFtZURPTUNvbnRlbnRMb2FkZWQo
KTsKIApAQCAtOTcsNiArMTAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZUJyZWFrcG9p
bnQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGV2ZW50TmFtZSk7CiAKICAgICBSZWZQdHI8
SW5zcGVjdG9yOjpET01EZWJ1Z2dlckJhY2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRj
aGVyOworICAgIEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2Ny
aXB0TWFuYWdlcjsKICAgICBJbnNwZWN0b3JET01BZ2VudCogbV9kb21BZ2VudCB7IG51bGxwdHIg
fTsKICAgICBJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1fZGVidWdnZXJBZ2Vu
dCB7IG51bGxwdHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNTM4MmY0YjNmMzYu
LmU5OWI5MWJlNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOC0wOC0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogUHJvdmlkZSAkZXZlbnQgaW4gdGhlIGNvbnNvbGUgd2hlbiBwYXVzZWQg
b24gYW4gZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4ODY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0UnVudGlt
ZUNvbXBsZXRpb25Qcm92aWRlci5qczoKKyAgICAgICAgKFdJLkphdmFTY3JpcHRSdW50aW1lQ29t
cGxldGlvblByb3ZpZGVyLnByb3RvdHlwZS5jb21wbGV0aW9uQ29udHJvbGxlckNvbXBsZXRpb25z
TmVlZGVkLnJlY2VpdmVkUHJvcGVydHlOYW1lcyk6CisKIDIwMTgtMDgtMTYgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFsbG93IGJy
ZWFrcG9pbnRzIHRvIGJlIHNldCBmb3Igc3BlY2lmaWMgZXZlbnQgbGlzdGVuZXJzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9KYXZh
U2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblBy
b3ZpZGVyLmpzCmluZGV4IGFlYmQ0NTZjYTA2Li44YmM1MWMzM2VkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1
bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlk
ZXIuanMKQEAgLTIyMSw3ICsyMjEsOSBAQCBXSS5KYXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Q
cm92aWRlciA9IGNsYXNzIEphdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZAogICAgICAg
ICAgICAgICAgIHZhciBjb21tYW5kTGluZUFQSSA9IFsiJCIsICIkJCIsICIkeCIsICJkaXIiLCAi
ZGlyeG1sIiwgImtleXMiLCAidmFsdWVzIiwgInByb2ZpbGUiLCAicHJvZmlsZUVuZCIsICJtb25p
dG9yRXZlbnRzIiwgInVubW9uaXRvckV2ZW50cyIsICJpbnNwZWN0IiwgImNvcHkiLCAiY2xlYXIi
LCAiZ2V0RXZlbnRMaXN0ZW5lcnMiLCAiJDAiLCAiJF8iXTsKICAgICAgICAgICAgICAgICBpZiAo
V0kuZGVidWdnZXJNYW5hZ2VyLnBhdXNlZCkgewogICAgICAgICAgICAgICAgICAgICBsZXQgdGFy
Z2V0RGF0YSA9IFdJLmRlYnVnZ2VyTWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdJLnJ1bnRpbWVNYW5h
Z2VyLmFjdGl2ZUV4ZWN1dGlvbkNvbnRleHQudGFyZ2V0KTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHRhcmdldERhdGEucGF1c2VSZWFzb24gPT09IFdJLkRlYnVnZ2VyTWFuYWdlci5QYXVzZVJl
YXNvbi5FeGNlcHRpb24pCisgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXREYXRhLnBhdXNl
UmVhc29uID09PSBXSS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFzb24uRXZlbnRMaXN0ZW5lcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRMaW5lQVBJLnB1c2goIiRldmVudCIpOwor
ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0YXJnZXREYXRhLnBhdXNlUmVhc29uID09PSBX
SS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFzb24uRXhjZXB0aW9uKQogICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWFuZExpbmVBUEkucHVzaCgiJGV4Y2VwdGlvbiIpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbW1hbmRMaW5lQVBJ
Lmxlbmd0aDsgKytpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365110</attachid>
            <date>2019-03-18 19:22:31 -0700</date>
            <delta_ts>2019-03-19 12:31:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188672-20190318192230.patch</filename>
            <type>text/plain</type>
            <size>17997</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ4NWM2MTI5NjBhMjE3OWEwYjg4MmUxYTFmOTEw
YTM3NWVhYmFkZjIuLjIyN2E5MzE0NTAwNmYwNzRlNjBkMDIyNjZkZmJkM2RlNmU1NGJkYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTAzLTE4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQ
cm92aWRlICRldmVudCBpbiB0aGUgY29uc29sZSB3aGVuIHBhdXNlZCBvbiBhbiBldmVudCBsaXN0
ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdDo6c2V0RXZlbnRW
YWx1ZSk6IEFkZGVkLgorICAgICAgICAoSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdDo6Y2xlYXJF
dmVudFZhbHVlKTogQWRkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0TWFuYWdlcjo6Y2xlYXJFdmVudFZh
bHVlKTogQWRkZWQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anM6CisgICAgICAgIChXSS5JbmplY3RlZFNjcmlwdC5wcm90b3R5cGUuc2V0RXZlbnRWYWx1ZSk6
IEFkZGVkLgorICAgICAgICAoV0kuSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlLmNsZWFyRXZlbnRW
YWx1ZSk6IEFkZGVkLgorICAgICAgICAoQmFzaWNDb21tYW5kTGluZUFQSSk6CisKIDIwMTktMDMt
MTggIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgdGhlIGlubGluZSBjYXBhY2l0eSBvZiBPcGVyYW5kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiMDhmNjJl
OGQ0ZWIxMTdmMDM2ZWVlZjNiYTU1MGM4MTJjNTY5MTUuLjY2NGIyM2MxZmNmMDZiNWE2Nzg3OTky
ZTE5YzIwZmZlNzkyYTIxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMy0x
OCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogUHJvdmlkZSAkZXZlbnQgaW4gdGhlIGNvbnNvbGUgd2hlbiBwYXVzZWQgb24gYW4gZXZl
bnQgbGlzdGVuZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4ODY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEltcGxlbWVudCBzaW1pbGlhciBtZXRob2RzL2xvZ2ljIGFzIHRvIHRoZSB3YXkgdGhhdCBg
JGV4Y2VwdGlvbmAgaXMgc2V0LgorCisgICAgICAgICogaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJ
TW9kdWxlU291cmNlLmpzOgorICAgICAgICAoQ29tbWFuZExpbmVBUEkpOgorCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxlRXZlbnQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFuZGxlRXZlbnRJbXBsKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSGFuZGxlRXZlbnRJbXBsKToK
KworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50OjpJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQ6OndpbGxIYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50OjpkaWRIYW5kbGVFdmVudCk6IEFkZGVkLgorCiAyMDE5LTAzLTE4ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIHdo
ZW4gcmVsb2FkaW5nIHRlc3Qgd2l0aCBhc3luYyBvdmVyZmxvdyBzY3JvbGxpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCmluZGV4IDE3NjI3MzJjZjViODk1NjRkNzQ5NWNkNmY5OTQwYjljZjc5OGE2
NDEuLmU1YWQyMDRiNWM3MTg4N2NhOTgxZmIwMDFhZGRiNjhlN2NiNzc5ZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTAzLTE4ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlICRl
dmVudCBpbiB0aGUgY29uc29sZSB3aGVuIHBhdXNlZCBvbiBhbiBldmVudCBsaXN0ZW5lcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NjcyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzOgor
ICAgICAgICAoV0kuSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIucHJvdG90eXBl
LmNvbXBsZXRpb25Db250cm9sbGVyQ29tcGxldGlvbnNOZWVkZWQucmVjZWl2ZWRQcm9wZXJ0eU5h
bWVzKToKKwogMjAxOS0wMy0xOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEhBUiBFeHRlbnNpb24gZm9yIGBzZXJ2ZXJJUEFk
ZHJlc3NgIHBvcnQgbnVtYmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCmluZGV4IDk0MjMzMzE1NDAyMjU1NmYyZTI2MmUwMzczNzlm
ZTQ1MDYzNjExZGYuLjgyZTE1NTNiOThhZmI1N2I1MDYzNjkzMzhkMWYwNTQ0MjQyY2I1MGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
Y3BwCkBAIC0zNDcsNiArMzQ3LDIxIEBAIFJlZlB0cjxQcm90b2NvbDo6UnVudGltZTo6T2JqZWN0
UHJldmlldz4gSW5qZWN0ZWRTY3JpcHQ6OnByZXZpZXdWYWx1ZShKU0M6OkpTVmFsCiAgICAgcmV0
dXJuIEJpbmRpbmdUcmFpdHM8UHJvdG9jb2w6OlJ1bnRpbWU6Ok9iamVjdFByZXZpZXc+OjpydW50
aW1lQ2FzdChyZXN1bHRPYmplY3QpOwogfQogCit2b2lkIEluamVjdGVkU2NyaXB0OjpzZXRFdmVu
dFZhbHVlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIWhhc05vVmFsdWUoKSk7
CisgICAgRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2Ny
aXB0T2JqZWN0KCksICJzZXRFdmVudFZhbHVlIl9zLCBpbnNwZWN0b3JFbnZpcm9ubWVudCgpLT5m
dW5jdGlvbkNhbGxIYW5kbGVyKCkpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHZhbHVl
KTsKKyAgICBtYWtlQ2FsbChmdW5jdGlvbik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmNs
ZWFyRXZlbnRWYWx1ZSgpCit7CisgICAgQVNTRVJUKCFoYXNOb1ZhbHVlKCkpOworICAgIERlcHJl
Y2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgp
LCAiY2xlYXJFdmVudFZhbHVlIl9zLCBpbnNwZWN0b3JFbnZpcm9ubWVudCgpLT5mdW5jdGlvbkNh
bGxIYW5kbGVyKCkpOworICAgIG1ha2VDYWxsKGZ1bmN0aW9uKTsKK30KKwogdm9pZCBJbmplY3Rl
ZFNjcmlwdDo6c2V0RXhjZXB0aW9uVmFsdWUoSlNDOjpKU1ZhbHVlIHZhbHVlKQogewogICAgIEFT
U0VSVCghaGFzTm9WYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHQuaAppbmRleCBhOGRiMmQyODE5MTAxZDllNWQ0ZTIzMjMxODJlNGE5
ZTkzYWUyMjg2Li4xNTc3OTc0OWY3Njk1MTJiODFkZDVmYWU0ZDY5Njc3ZmJkODk4YTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBA
IC04MCw2ICs4MCw5IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8UHJvdG9jb2w6OlJ1bnRpbWU6OlJl
bW90ZU9iamVjdD4gd3JhcFRhYmxlKEpTQzo6SlNWYWx1ZSB0YWJsZSwgSlNDOjpKU1ZhbHVlIGNv
bHVtbnMpIGNvbnN0OwogICAgIFJlZlB0cjxQcm90b2NvbDo6UnVudGltZTo6T2JqZWN0UHJldmll
dz4gcHJldmlld1ZhbHVlKEpTQzo6SlNWYWx1ZSkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEV2ZW50
VmFsdWUoSlNDOjpKU1ZhbHVlKTsKKyAgICB2b2lkIGNsZWFyRXZlbnRWYWx1ZSgpOworCiAgICAg
dm9pZCBzZXRFeGNlcHRpb25WYWx1ZShKU0M6OkpTVmFsdWUpOwogICAgIHZvaWQgY2xlYXJFeGNl
cHRpb25WYWx1ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAKaW5kZXggYjRjNmMxOGU0MzNjMTZmMGMw
YzAzNDkwZDQ0MWUxZjYwNjQ0YWM4Ni4uNTNlODhmOWY4YjIxNzdlMjE3OTI4NDdlMWNhYWQ2Y2My
YjI1MDExYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmNwcApAQCAtMTIyLDYgKzEyMiwxMiBAQCB2b2lkIElu
amVjdGVkU2NyaXB0TWFuYWdlcjo6cmVsZWFzZU9iamVjdEdyb3VwKGNvbnN0IFN0cmluZyYgb2Jq
ZWN0R3JvdXApCiAgICAgICAgIGluamVjdGVkU2NyaXB0LnJlbGVhc2VPYmplY3RHcm91cChvYmpl
Y3RHcm91cCk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjbGVhckV2ZW50VmFs
dWUoKQoreworICAgIGZvciAoYXV0byYgaW5qZWN0ZWRTY3JpcHQgOiBtX2lkVG9JbmplY3RlZFNj
cmlwdC52YWx1ZXMoKSkKKyAgICAgICAgaW5qZWN0ZWRTY3JpcHQuY2xlYXJFdmVudFZhbHVlKCk7
Cit9CisKIHZvaWQgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOjpjbGVhckV4Y2VwdGlvblZhbHVlKCkK
IHsKICAgICBmb3IgKGF1dG8mIGluamVjdGVkU2NyaXB0IDogbV9pZFRvSW5qZWN0ZWRTY3JpcHQu
dmFsdWVzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0TWFuYWdlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdE1hbmFnZXIuaAppbmRleCBjZWI4YzAyMzNmY2ZkZGE5NmNmZWJlMzhkMzIx
YTg3YTViZjJhNDI2Li5lYTQ4ZmE5MzAxYzU1OThmNTE5NjAxOTQ2ODJlNDhkNjA5ZDY4MDhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIGludCBpbmplY3Rl
ZFNjcmlwdElkRm9yKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgSW5qZWN0ZWRTY3JpcHQgaW5qZWN0
ZWRTY3JpcHRGb3JPYmplY3RJZChjb25zdCBTdHJpbmcmIG9iamVjdElkKTsKICAgICB2b2lkIHJl
bGVhc2VPYmplY3RHcm91cChjb25zdCBTdHJpbmcmIG9iamVjdEdyb3VwKTsKKyAgICB2b2lkIGNs
ZWFyRXZlbnRWYWx1ZSgpOwogICAgIHZvaWQgY2xlYXJFeGNlcHRpb25WYWx1ZSgpOwogCiBwcm90
ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCA4MTNlOWRjOGY1ZDMyZmExMTkwODdmMjVmODI1MTY1
NmMxZTg3YWU4Li5jNDQwYzYyNWIxMzFlM2YyZGJkYzQ3OTE3YjM2MTE4YjVmZTY5YTIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291
cmNlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRTb3VyY2UuanMKQEAgLTM1Myw2ICszNTMsMTYgQEAgbGV0IEluamVjdGVkU2NyaXB0ID0gY2xh
c3MgSW5qZWN0ZWRTY3JpcHQKICAgICAgICAgcmV0dXJuIFJlbW90ZU9iamVjdC5jcmVhdGVPYmpl
Y3RQcmV2aWV3Rm9yVmFsdWUodmFsdWUsIHRydWUpOwogICAgIH0KIAorICAgIHNldEV2ZW50VmFs
dWUodmFsdWUpCisgICAgeworICAgICAgICB0aGlzLl9ldmVudFZhbHVlID0gdmFsdWU7CisgICAg
fQorCisgICAgY2xlYXJFdmVudFZhbHVlKCkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9l
dmVudFZhbHVlOworICAgIH0KKwogICAgIHNldEV4Y2VwdGlvblZhbHVlKHZhbHVlKQogICAgIHsK
ICAgICAgICAgdGhpcy5fZXhjZXB0aW9uVmFsdWUgPSB2YWx1ZTsKQEAgLTE0NDYsNiArMTQ1Niwx
MSBAQCBmdW5jdGlvbiBCYXNpY0NvbW1hbmRMaW5lQVBJKGNhbGxGcmFtZSkKICAgICB0aGlzLiRf
ID0gaW5qZWN0ZWRTY3JpcHQuX2xhc3RSZXN1bHQ7CiAgICAgdGhpcy4kZXhjZXB0aW9uID0gaW5q
ZWN0ZWRTY3JpcHQuX2V4Y2VwdGlvblZhbHVlOwogCisgICAgaWYgKCJfZXZlbnRWYWx1ZSIgaW4g
aW5qZWN0ZWRTY3JpcHQpCisgICAgICAgIHRoaXMuJGV2ZW50ID0gaW5qZWN0ZWRTY3JpcHQuX2V2
ZW50VmFsdWU7CisgICAgZWxzZSBpZiAoIiRldmVudCIgaW4gdGhpcykKKyAgICAgICAgZGVsZXRl
IHRoaXMuJGV2ZW50OworCiAgICAgLy8gJDEtJDk5CiAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0g
aW5qZWN0ZWRTY3JpcHQuX3NhdmVkUmVzdWx0cy5sZW5ndGg7ICsraSkKICAgICAgICAgdGhpcy5f
X2RlZmluZUdldHRlcl9fKCIkIiArIGksIGJpbmQoaW5qZWN0ZWRTY3JpcHQuX3NhdmVkUmVzdWx0
LCBpbmplY3RlZFNjcmlwdCwgaSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJTW9kdWxlU291cmNlLmpzCmluZGV4IDE4ZDYzMjYxOWI0MjlhYjU0
ZDRmODVlMDBlNzZjMzE5OTRlNWNmZjAuLmExZjdkNTdhMmM1ZmM5ZTQzMTkxZGE2OTlkZDg3N2Zk
OGUwMDlkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db21tYW5kTGlu
ZUFQSU1vZHVsZVNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29tbWFu
ZExpbmVBUElNb2R1bGVTb3VyY2UuanMKQEAgLTQ3LDYgKzQ3LDcgQEAgZnVuY3Rpb24gYmluZChm
dW5jLCB0aGlzT2JqZWN0LCAuLi5vdXRlckFyZ3MpCiBmdW5jdGlvbiBDb21tYW5kTGluZUFQSShj
b21tYW5kTGluZUFQSUltcGwsIGNhbGxGcmFtZSkKIHsKICAgICB0aGlzLiRfID0gaW5qZWN0ZWRT
Y3JpcHQuX2xhc3RSZXN1bHQ7CisgICAgdGhpcy4kZXZlbnQgPSBpbmplY3RlZFNjcmlwdC5fZXZl
bnRWYWx1ZTsKICAgICB0aGlzLiRleGNlcHRpb24gPSBpbmplY3RlZFNjcmlwdC5fZXhjZXB0aW9u
VmFsdWU7CiAKICAgICAvLyAkMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAyYjQzMDYyOWI4NjMzZGEwYTE5MWU2
OTQzZmM3YmFkNTM2MTA3ZTliLi44YzRlYjFjYTdhN2YxZmQxZjk3YzcyMmU5YTllYTJiNzc1NTUz
M2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcApAQCAtMzk2LDcgKzM5Niw3IEBAIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxEaXNwYXRjaEV2ZW50SW1w
bChJCiAgICAgcmV0dXJuIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZShpbnN0cnVtZW50
aW5nQWdlbnRzLCB0aW1lbGluZUFnZW50SWQpOwogfQogCi12b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBjb25zdCBFdmVudCYgZXZlbnQsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyJiBsaXN0ZW5lcikKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSGFu
ZGxlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEV2
ZW50JiBldmVudCwgY29uc3QgUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXImIGxpc3RlbmVyKQogewog
ICAgIGlmIChQYWdlRGVidWdnZXJBZ2VudCogcGFnZURlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLnBhZ2VEZWJ1Z2dlckFnZW50KCkpCiAgICAgICAgIHBhZ2VEZWJ1Z2dlckFnZW50
LT53aWxsSGFuZGxlRXZlbnQobGlzdGVuZXIpOwpAQCAtNDA5LDYgKzQwOSw5IEBAIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRIYW5kbGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYgaW5zdHJ1bWVuCiB7CiAgICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVn
Z2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkK
ICAgICAgICAgZGVidWdnZXJBZ2VudC0+ZGlkRGlzcGF0Y2hBc3luY0NhbGwoKTsKKworICAgIGlm
IChJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBkb21EZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy5pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KCkpCisgICAgICAgIGRvbURlYnVn
Z2VyQWdlbnQtPmRpZEhhbmRsZUV2ZW50KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWREaXNwYXRjaEV2ZW50SW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b25Db29raWUmIGNvb2tpZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBlMTAyODVkOTNjMzk0YTU3YzllODI4NWI2NjFk
ODE2MTRjMjUxYjYxLi5hOGM4NWE0ODQ0ZjdiZjgyZjcxNjUyMzUyNzc1NGJjYzhlMmQ4NDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzRXZl
bnRMaXN0ZW5lckRpc2FibGVkKEV2ZW50VGFyZ2V0JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIEV2ZW50TGlzdGVuZXImLCBib29sIGNhcHR1cmUpOwogICAgIHN0YXRpYyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZlbnQoRG9jdW1lbnQmLCBjb25z
dCBFdmVudCYsIGJvb2wgaGFzRXZlbnRMaXN0ZW5lcnMpOwogICAgIHN0YXRpYyB2b2lkIGRpZERp
c3BhdGNoRXZlbnQoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llJik7Ci0gICAg
c3RhdGljIHZvaWQgd2lsbEhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25z
dCBFdmVudCYsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJik7CisgICAgc3RhdGljIHZv
aWQgd2lsbEhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBFdmVudCYsIGNvbnN0
IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJik7CiAgICAgc3RhdGljIHZvaWQgZGlkSGFuZGxlRXZl
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZlbnRPbldpbmRvdyhGcmFtZSosIGNvbnN0IEV2
ZW50JiwgRE9NV2luZG93Jik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hFdmVudE9uV2lu
ZG93KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwpAQCAtMzQ1LDcgKzM0
NSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgd2lsbFJlbW92ZUV2ZW50TGlzdGVuZXJJ
bXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBFdmVudFRhcmdldCYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgYm9vbCBjYXB0dXJlKTsKICAgICBzdGF0aWMg
Ym9vbCBpc0V2ZW50TGlzdGVuZXJEaXNhYmxlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEV2
ZW50VGFyZ2V0JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIm
LCBib29sIGNhcHR1cmUpOwogICAgIHN0YXRpYyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgd2lsbERpc3BhdGNoRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBEb2N1bWVudCYs
IGNvbnN0IEV2ZW50JiwgYm9vbCBoYXNFdmVudExpc3RlbmVycyk7Ci0gICAgc3RhdGljIHZvaWQg
d2lsbEhhbmRsZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgY29uc3QgRXZlbnQmLCBj
b25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYpOworICAgIHN0YXRpYyB2b2lkIHdpbGxIYW5k
bGVFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEV2ZW50JiwgY29uc3QgUmVnaXN0ZXJl
ZEV2ZW50TGlzdGVuZXImKTsKICAgICBzdGF0aWMgdm9pZCBkaWRIYW5kbGVFdmVudEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYpOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoRXZlbnRJbXBs
KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogICAgIHN0YXRpYyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUgd2lsbERpc3BhdGNoRXZlbnRPbldpbmRvd0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIGNvbnN0IEV2ZW50JiwgRE9NV2luZG93Jik7CkBAIC04MDAs
NyArODAwLDcgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNw
YXRjaEV2ZW50KGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnQKICAgICAgICAgZGlkRGlzcGF0Y2hF
dmVudEltcGwoY29va2llKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsSGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRXZlbnQmIGV2ZW50LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgbGlzdGVuZXIp
CitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxIYW5kbGVFdmVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBFdmVudCYgZXZlbnQsIGNvbnN0IFJlZ2lz
dGVyZWRFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVu
dGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JDb250ZXh0KGNvbnRleHQpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
RE9NRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggNTIxM2JkZDI4NTZkMjRjYWM3MmZiNTc4NDVjM2Zk
OTMzMDNiZjYwOS4uN2NhYTM3NWM2ZmE5NjA4ODU2YmVmMDdhNTIyNjI2MjI3OTAwZGM5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNyw4ICszNywxMSBAQAogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuaCIKICNpbmNsdWRlICJJ
bnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIlJl
Z2lzdGVyZWRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29udGVu
dFNlYXJjaFV0aWxpdGllcy5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luamVjdGVkU2Ny
aXB0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmREaXNwYXRjaGVycy5o
PgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1JlZ3VsYXJFeHByZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8d3RmL0pTT05WYWx1ZXMuaD4KQEAgLTY1LDYgKzY4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIElu
c3BlY3RvcjsKIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6Okluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQsIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQpCiAgICAgOiBJbnNwZWN0
b3JBZ2VudEJhc2UoIkRPTURlYnVnZ2VyIl9zLCBjb250ZXh0KQogICAgICwgbV9iYWNrZW5kRGlz
cGF0Y2hlcihJbnNwZWN0b3I6OkRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShj
b250ZXh0LmJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKKyAgICAsIG1faW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKGNvbnRleHQuaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9kb21BZ2VudChk
b21BZ2VudCkKICAgICAsIG1fZGVidWdnZXJBZ2VudChkZWJ1Z2dlckFnZW50KQogewpAQCAtMzY1
LDExICszNjksMjAgQEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp1cGRhdGVTdWJ0
cmVlQnJlYWtwb2ludHMoTm9kZSogbm9kZSwgdWludDMyX3Qgcm8KICAgICAgICAgdXBkYXRlU3Vi
dHJlZUJyZWFrcG9pbnRzKGNoaWxkLCBuZXdSb290TWFzaywgc2V0KTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsSGFuZGxlRXZlbnQoY29uc3QgRXZlbnQmIGV2ZW50
LCBjb25zdCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIp
Cit2b2lkIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OndpbGxIYW5kbGVFdmVudChFdmVudCYg
ZXZlbnQsIGNvbnN0IFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyJiByZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lcikKIHsKICAgICBpZiAoIW1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgYXV0byBzdGF0ZSA9IGV2ZW50LnRhcmdldCgpLT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmV4ZWNTdGF0ZSgpOworICAgIGF1dG8gaW5qZWN0ZWRTY3Jp
cHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbmplY3RlZFNjcmlwdEZvcihzdGF0ZSk7Cisg
ICAgQVNTRVJUKCFpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpOworICAgIHsKKyAgICAgICAg
SlNDOjpKU0xvY2tIb2xkZXIgbG9jayhzdGF0ZSk7CisKKyAgICAgICAgaW5qZWN0ZWRTY3JpcHQu
c2V0RXZlbnRWYWx1ZSh0b0pTKHN0YXRlLCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90
eXBlKHN0YXRlKSwgZXZlbnQpKTsKKyAgICB9CisKICAgICBib29sIHNob3VsZFBhdXNlID0gbV9k
ZWJ1Z2dlckFnZW50LT5wYXVzZU9uTmV4dFN0YXRlbWVudEVuYWJsZWQoKSB8fCBtX2V2ZW50QnJl
YWtwb2ludHMuY29udGFpbnMoc3RkOjptYWtlX3BhaXIoSW5zcGVjdG9yOjpQcm90b2NvbDo6RE9N
RGVidWdnZXI6OkV2ZW50QnJlYWtwb2ludFR5cGU6Okxpc3RlbmVyLCBldmVudC50eXBlKCkpKTsK
IAogICAgIGlmICghc2hvdWxkUGF1c2UgJiYgbV9kb21BZ2VudCkKQEAgLTM4OSw2ICs0MDIsMTEg
QEAgdm9pZCBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsSGFuZGxlRXZlbnQoY29uc3Qg
RXZlbnQmIGV2ZW50LCBjb25zdCBSZWdpc3QKICAgICBtX2RlYnVnZ2VyQWdlbnQtPnNjaGVkdWxl
UGF1c2VPbk5leHRTdGF0ZW1lbnQoSW5zcGVjdG9yOjpEZWJ1Z2dlckZyb250ZW5kRGlzcGF0Y2hl
cjo6UmVhc29uOjpFdmVudExpc3RlbmVyLCBXVEZNb3ZlKGV2ZW50RGF0YSkpOwogfQogCit2b2lk
IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQ6OmRpZEhhbmRsZUV2ZW50KCkKK3sKKyAgICBtX2lu
amVjdGVkU2NyaXB0TWFuYWdlci5jbGVhckV2ZW50VmFsdWUoKTsKK30KKwogdm9pZCBJbnNwZWN0
b3JET01EZWJ1Z2dlckFnZW50Ojp3aWxsRmlyZVRpbWVyKGJvb2wgb25lU2hvdCkKIHsKICAgICBp
ZiAoIW1fZGVidWdnZXJBZ2VudC0+YnJlYWtwb2ludHNBY3RpdmUoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmgKaW5kZXggNDU5Y2IzNjk0M2M0MjQwYjlmN2Q0OGFjMzQwYzhlNDcxMTQzZGViYi4uZjI2
NjQ3NTY1ZTBmMzAyNjg1NmI1ZWNkYWE1YmU5MmFhZGRkNDViNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNwYWNlIEluc3BlY3RvciB7Citj
bGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRWxlbWVudDsKQEAgLTc0LDcgKzc4LDggQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFNl
bmRYTUxIdHRwUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCB3aWxsRmV0Y2go
Y29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZnJhbWVEb2N1bWVudFVwZGF0ZWQoRnJhbWUm
KTsKLSAgICB2b2lkIHdpbGxIYW5kbGVFdmVudChjb25zdCBFdmVudCYsIGNvbnN0IFJlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyJik7CisgICAgdm9pZCB3aWxsSGFuZGxlRXZlbnQoRXZlbnQmLCBjb25z
dCBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYpOworICAgIHZvaWQgZGlkSGFuZGxlRXZlbnQoKTsK
ICAgICB2b2lkIHdpbGxGaXJlVGltZXIoYm9vbCBvbmVTaG90KTsKICAgICB2b2lkIHdpbGxGaXJl
QW5pbWF0aW9uRnJhbWUoKTsKICAgICB2b2lkIG1haW5GcmFtZURPTUNvbnRlbnRMb2FkZWQoKTsK
QEAgLTk4LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNjYXJkQmluZGluZ3MoKTsK
IAogICAgIFJlZlB0cjxJbnNwZWN0b3I6OkRPTURlYnVnZ2VyQmFja2VuZERpc3BhdGNoZXI+IG1f
YmFja2VuZERpc3BhdGNoZXI7CisgICAgSW5zcGVjdG9yOjpJbmplY3RlZFNjcmlwdE1hbmFnZXIm
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvckRPTUFnZW50KiBtX2RvbUFn
ZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCog
bV9kZWJ1Z2dlckFnZW50IHsgbnVsbHB0ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9KYXZhU2NyaXB0UnVudGltZUNvbXBs
ZXRpb25Qcm92aWRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzCmluZGV4IGU3
MWQ2NzcxZTM2NGFhMjA4ZDk5NzQzNTMxYzAxMWUwMjg2NWNkNDguLjlmMjFhODhlNjU3NTYyZWJh
NGMzYzE3Yjg1YzdlY2QyYzI0NWQ5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblBy
b3ZpZGVyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0phdmFTY3JpcHRSdW50aW1lQ29tcGxldGlvblByb3ZpZGVyLmpzCkBAIC0yMjEsNyAr
MjIxLDkgQEAgV0kuSmF2YVNjcmlwdFJ1bnRpbWVDb21wbGV0aW9uUHJvdmlkZXIgPSBjbGFzcyBK
YXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWQKICAgICAgICAgICAgICAgICBsZXQgY29t
bWFuZExpbmVBUEkgPSBXSS5KYXZhU2NyaXB0UnVudGltZUNvbXBsZXRpb25Qcm92aWRlci5fY29t
bWFuZExpbmVBUEkuc2xpY2UoMCk7CiAgICAgICAgICAgICAgICAgaWYgKFdJLmRlYnVnZ2VyTWFu
YWdlci5wYXVzZWQpIHsKICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXSS5k
ZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXSS5ydW50aW1lTWFuYWdlci5hY3RpdmVFeGVj
dXRpb25Db250ZXh0LnRhcmdldCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXREYXRh
LnBhdXNlUmVhc29uID09PSBXSS5EZWJ1Z2dlck1hbmFnZXIuUGF1c2VSZWFzb24uRXhjZXB0aW9u
KQorICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0RGF0YS5wYXVzZVJlYXNvbiA9PT0gV0ku
RGVidWdnZXJNYW5hZ2VyLlBhdXNlUmVhc29uLkV2ZW50TGlzdGVuZXIpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb21tYW5kTGluZUFQSS5wdXNoKCIkZXZlbnQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgZWxzZSBpZiAodGFyZ2V0RGF0YS5wYXVzZVJlYXNvbiA9PT0gV0kuRGVidWdnZXJNYW5h
Z2VyLlBhdXNlUmVhc29uLkV4Y2VwdGlvbikKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1h
bmRMaW5lQVBJLnB1c2goIiRleGNlcHRpb24iKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgbmFtZSBvZiBjb21tYW5kTGluZUFQSSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>