<?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>157286</bug_id>
          
          <creation_ts>2016-05-02 16:44:06 -0700</creation_ts>
          <short_desc>Make console a namespace object (like Math/JSON), allowing functions to be called unbound</short_desc>
          <delta_ts>2016-05-03 03:00:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>157304</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>wdm</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1189560</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-02 16:44:06 -0700</bug_when>
    <thetext>* SUMMARY
Make console a namespace object (like Math/JSON), allowing it to be called unbound

The evolving Console standard is pushing this direction:
&lt;https://github.com/whatwg/console/issues/3&gt;

This would improve a lot of scenarios where it currently throws a type error unless bound with a Console instance. This has been a long time feature request (bug 20141).

Example scenarios where it would throw:

    [1, 2, 3].forEach(console.log);
    var log = console.log; log(&quot;value&quot;);

Current workaround is to bind `console.log.bind(console)`. This will make that workaround unnecessary.

* STEPS TO REPRODUCE
1. js&gt; var log = console.log; log(&quot;test&quot;)
  =&gt; TypeError, expected it to work

* NOTES
• At the same time we can make `console` more interoperable with other browsers:
  - `console` is enumerable in `window` in Firefox and Chrome, but not Safari. Lets make it enumerable.
  - `console.toString()` is &quot;[object Console]&quot; in Safari and Firefox, but not Chrome Canary... I&apos;m going to Keeping &quot;[object Console]&quot; for now, since it has been around for quite a while. Spec discussion seems to suggest future &quot;namespace&quot; objects don&apos;t need this special treatment and should be &quot;[object Object]&quot; like normal objects (&lt;https://github.com/tc39/ecma262/issues/495&gt;). Console has been around long enough that it could qualify as legacy, so I&apos;m going to keep it for now. This may change after discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189562</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-02 16:47:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/26052830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189565</commentid>
    <comment_count>2</comment_count>
      <attachid>277945</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-02 16:54:11 -0700</bug_when>
    <thetext>Created attachment 277945
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189566</commentid>
    <comment_count>3</comment_count>
      <attachid>277946</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-02 16:58:55 -0700</bug_when>
    <thetext>Created attachment 277946
[PATCH] Proposed Fix

Better ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189571</commentid>
    <comment_count>4</comment_count>
      <attachid>277946</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-02 17:09:17 -0700</bug_when>
    <thetext>Comment on attachment 277946
[PATCH] Proposed Fix

Wait on commit-queue for bots to run all tests. I ran them but I want to be sure they pass on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189583</commentid>
    <comment_count>5</comment_count>
      <attachid>277946</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-02 17:50:50 -0700</bug_when>
    <thetext>Comment on attachment 277946
[PATCH] Proposed Fix

Clearing flags on attachment: 277946

Committed r200350: &lt;http://trac.webkit.org/changeset/200350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189584</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-02 17:50:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189596</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-05-02 18:07:48 -0700</bug_when>
    <thetext>*** Bug 20141 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189696</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-05-03 00:37:07 -0700</bug_when>
    <thetext>I see this new error in JSC tests after this patch:
undefined:1:37: JS ERROR Error: cyclic __proto__ value
https://build.webkit.org/builders/Apple%20Yosemite%20LLINT%20CLoop%20%28BuildAndTest%29/builds/15606/steps/webkit-jsc-cloop-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189698</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-03 00:40:26 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 157304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189703</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-03 01:28:13 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I see this new error in JSC tests after this patch:
&gt; undefined:1:37: JS ERROR Error: cyclic __proto__ value
&gt; https://build.webkit.org/builders/
&gt; Apple%20Yosemite%20LLINT%20CLoop%20%28BuildAndTest%29/builds/15606/steps/
&gt; webkit-jsc-cloop-test/logs/stdio

The actual failure was:

&gt; assertTrue failed: &apos;Property count == 1&apos;
&gt; assertTrue failed: &apos;First property name is doSomething&apos;

This was because we made `console` Enumerable at the top level. Changing back to `DontEnum` will match our previous behavior, and we can revisit this later if needed. If we are to be like other builtin&apos;s `Math`, `JSON`, `Reflect`, they are not enumerable at the top level, so maybe we should just go that route.

As for the cyclic thing, I am not certain if that is a failure or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189708</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-03 01:47:12 -0700</bug_when>
    <thetext>I&apos;m having trouble running the jsc tests in general. Just attempting to run them hangs my machine. I can confirm the testapi tests pass, but I can&apos;t run the broad range of jsc tests at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189709</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-03 01:56:49 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; I&apos;m having trouble running the jsc tests in general. Just attempting to run
&gt; them hangs my machine. I can confirm the testapi tests pass, but I can&apos;t run
&gt; the broad range of jsc tests at the moment.

I found my problem, the test runner was spawning 24 threads. Forcing --child-processes=8 made things run much much smoother.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189715</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-03 02:19:41 -0700</bug_when>
    <thetext>Attempted a fix in:
&lt;http://trac.webkit.org/changeset/200367&gt;

I accidentally referenced the wrong r### in the ChangeLog though =(. All run-javascriptcore-tests passed locally for me after this change (I saw the same testate failure before the fix).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189717</commentid>
    <comment_count>14</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-03 03:00:02 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Attempted a fix in:
&gt; &lt;http://trac.webkit.org/changeset/200367&gt;

The bots look greener. I&apos;m going to re-close this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277945</attachid>
            <date>2016-05-02 16:54:11 -0700</date>
            <delta_ts>2016-05-02 16:58:55 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>console-1.patch</filename>
            <type>text/plain</type>
            <size>47528</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NjE1ODI3Li42NTUzNTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUt
MDIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtl
IGNvbnNvbGUgYSBuYW1lc3BhY2Ugb2JqZWN0IChsaWtlIE1hdGgvSlNPTiksIGFsbG93aW5nIGZ1
bmN0aW9ucyB0byBiZSBjYWxsZWQgdW5ib3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3Mjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjA1
MjgzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGpzL2NvbnNvbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9jb25zb2xlLmh0
bWw6IEFkZGVkLgorCiAyMDE2LTA1LTAyICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29r
LmNvbT4KIAogICAgICAgICBbV2luXSBFbmFibGUgSW5kZXhlZERCLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvY29uc29sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9jb25zb2xl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjk1ZGNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvY29uc29sZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNzAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogbG9nIG1lc3NhZ2UK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAyMTogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogbG9nIG1lc3Nh
Z2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAyNDogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogbG9nIG1l
c3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiAxCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogMgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IDMKK1BBU1MgdHlwZW9mIGNvbnNvbGUgaXMg
Im9iamVjdCIKK1BBU1MgY29uc29sZS50b1N0cmluZygpIGlzICJbb2JqZWN0IENvbnNvbGVdIgor
UEFTUyBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY29uc29sZSkgaXMgT2JqZWN0LmdldFByb3RvdHlw
ZU9mKHt9KQorUEFTUyBjb25zb2xlIGlzIGNvbnNvbGUKK1BBU1MgY29uc29sZURlc2NyaXB0b3Iu
Y29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgY29uc29sZURlc2NyaXB0b3Iud3JpdGFibGUgaXMg
dHJ1ZQorUEFTUyBjb25zb2xlRGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5kZWJ1ZworUEFTUyB0eXBlb2YgY29uc29sZS5kZWJ1ZyBpcyAiZnVuY3Rpb24iCitQQVNTIGNv
bnNvbGUuZGVidWcubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5lcnJvcgorUEFTUyB0eXBlb2YgY29uc29sZS5l
cnJvciBpcyAiZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUuZXJyb3IubGVuZ3RoIGlzIDAKK1BBU1Mg
ZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxl
IGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5s
b2cKK1BBU1MgdHlwZW9mIGNvbnNvbGUubG9nIGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29sZS5s
b2cubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFT
UyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxl
IGlzIHRydWUKKworY29uc29sZS5pbmZvCitQQVNTIHR5cGVvZiBjb25zb2xlLmluZm8gaXMgImZ1
bmN0aW9uIgorUEFTUyBjb25zb2xlLmluZm8ubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5j
b25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BB
U1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS53YXJuCitQQVNTIHR5
cGVvZiBjb25zb2xlLndhcm4gaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLndhcm4ubGVuZ3Ro
IGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlw
dG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUK
KworY29uc29sZS5jbGVhcgorUEFTUyB0eXBlb2YgY29uc29sZS5jbGVhciBpcyAiZnVuY3Rpb24i
CitQQVNTIGNvbnNvbGUuY2xlYXIubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1
cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVz
Y3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5kaXIKK1BBU1MgdHlwZW9mIGNv
bnNvbGUuZGlyIGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29sZS5kaXIubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5kaXJ4bWwKK1BBU1MgdHlwZW9mIGNvbnNvbGUuZGlyeG1sIGlzICJmdW5jdGlvbiIKK1BBU1Mg
Y29uc29sZS5kaXJ4bWwubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUg
aXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRv
ci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50YWJsZQorUEFTUyB0eXBlb2YgY29uc29s
ZS50YWJsZSBpcyAiZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUudGFibGUubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS50cmFjZQorUEFTUyB0eXBlb2YgY29uc29sZS50cmFjZSBpcyAiZnVuY3Rpb24iCitQQVNTIGNv
bnNvbGUudHJhY2UubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5hc3NlcnQKK1BBU1MgdHlwZW9mIGNvbnNvbGUu
YXNzZXJ0IGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29sZS5hc3NlcnQubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5jb3VudAorUEFTUyB0eXBlb2YgY29uc29sZS5jb3VudCBpcyAiZnVuY3Rpb24iCitQQVNTIGNv
bnNvbGUuY291bnQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5wcm9maWxlCitQQVNTIHR5cGVvZiBjb25zb2xl
LnByb2ZpbGUgaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLnByb2ZpbGUubGVuZ3RoIGlzIDAK
K1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndy
aXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29u
c29sZS5wcm9maWxlRW5kCitQQVNTIHR5cGVvZiBjb25zb2xlLnByb2ZpbGVFbmQgaXMgImZ1bmN0
aW9uIgorUEFTUyBjb25zb2xlLnByb2ZpbGVFbmQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRv
ci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUK
K1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50aW1lCitQQVNT
IHR5cGVvZiBjb25zb2xlLnRpbWUgaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLnRpbWUubGVu
Z3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNj
cmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRy
dWUKKworY29uc29sZS50aW1lRW5kCitQQVNTIHR5cGVvZiBjb25zb2xlLnRpbWVFbmQgaXMgImZ1
bmN0aW9uIgorUEFTUyBjb25zb2xlLnRpbWVFbmQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRv
ci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUK
K1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50aW1lU3RhbXAK
K1BBU1MgdHlwZW9mIGNvbnNvbGUudGltZVN0YW1wIGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29s
ZS50aW1lU3RhbXAubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50YWtlSGVhcFNuYXBzaG90CitQQVNTIHR5cGVv
ZiBjb25zb2xlLnRha2VIZWFwU25hcHNob3QgaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLnRh
a2VIZWFwU25hcHNob3QubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUg
aXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRv
ci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5ncm91cAorUEFTUyB0eXBlb2YgY29uc29s
ZS5ncm91cCBpcyAiZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUuZ3JvdXAubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5ncm91cENvbGxhcHNlZAorUEFTUyB0eXBlb2YgY29uc29sZS5ncm91cENvbGxhcHNlZCBpcyAi
ZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQubGVuZ3RoIGlzIDAKK1BBU1Mg
ZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxl
IGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5n
cm91cEVuZAorUEFTUyB0eXBlb2YgY29uc29sZS5ncm91cEVuZCBpcyAiZnVuY3Rpb24iCitQQVNT
IGNvbnNvbGUuZ3JvdXBFbmQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFi
bGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3Jp
cHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1l
cyhjb25zb2xlKS5sZW5ndGggaXMgZW51bWVyYWJsZVByb3BlcnR5Q291bnQKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9jb25zb2xlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwZjMwNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2NvbnNvbGUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb25z
b2xlIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjb25zb2xlLnRvU3RyaW5n
KCkiLCAiW29iamVjdCBDb25zb2xlXSIpOworc2hvdWxkQmUoIk9iamVjdC5nZXRQcm90b3R5cGVP
Zihjb25zb2xlKSIsICJPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pIik7CitzaG91bGRCZSgiY29u
c29sZSIsICJjb25zb2xlIik7CisKK3ZhciBjb25zb2xlRGVzY3JpcHRvciA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAiY29uc29sZSIpOworc2hvdWxkQmVUcnVlKCdj
b25zb2xlRGVzY3JpcHRvci5jb25maWd1cmFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnY29uc29sZURl
c2NyaXB0b3Iud3JpdGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnY29uc29sZURlc2NyaXB0b3IuZW51
bWVyYWJsZScpOworCisvLyBDb25zb2xlIG1ldGhvZHMgZG9uJ3QgY2FyZSB3aGF0IHRoZWlyIHRo
aXMgb2JqZWN0IGlzLgorY29uc29sZS5sb2coImxvZyBtZXNzYWdlIik7Citjb25zb2xlLmxvZy5j
YWxsKG51bGwsICJsb2cgbWVzc2FnZSIpOworY29uc29sZS5sb2cuY2FsbCh1bmRlZmluZWQsICJs
b2cgbWVzc2FnZSIpOworY29uc29sZS5sb2cuY2FsbChjb25zb2xlLCAibG9nIG1lc3NhZ2UiKTsK
K2NvbnNvbGUubG9nLmNhbGwoMTIzLCAibG9nIG1lc3NhZ2UiKTsKK2NvbnNvbGUubG9nLmNhbGwo
Imlnbm9yZSIsICJsb2cgbWVzc2FnZSIpOworY29uc29sZS5sb2cuYmluZChjb25zb2xlLCAibG9n
IG1lc3NhZ2UiKTsKK2NvbnNvbGUubG9nLmJpbmQoY29uc29sZSkoImxvZyBtZXNzYWdlIik7Citb
MSwyLDNdLmZvckVhY2goY29uc29sZS5sb2cpOworCisvLyBBbGwgcHJvcGVydGllcyBzaG91bGQg
YmUgZW51bWVyYWJsZS4KK3ZhciBwcm9wZXJ0eSwgZGVzY3JpcHRvcjsKK3ZhciBlbnVtZXJhYmxl
UHJvcGVydHlDb3VudCA9IDA7Citmb3IgKHByb3BlcnR5IGluIGNvbnNvbGUpIHsKKyAgICBlbnVt
ZXJhYmxlUHJvcGVydHlDb3VudCsrOworICAgIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGNvbnNvbGUsIHByb3BlcnR5KTsKKworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZyhgY29uc29sZS4ke3Byb3BlcnR5fWApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZyhgdHlwZW9mIGNvbnNvbGUuJHtwcm9wZXJ0eX1gLCAiZnVuY3Rpb24iKTsKKyAgICBzaG91bGRC
ZShgY29uc29sZS4ke3Byb3BlcnR5fS5sZW5ndGhgLCAnMCcpOworICAgIHNob3VsZEJlVHJ1ZSgn
ZGVzY3JpcHRvci5jb25maWd1cmFibGUnKTsKKyAgICBzaG91bGRCZVRydWUoJ2Rlc2NyaXB0b3Iu
d3JpdGFibGUnKTsKKyAgICBzaG91bGRCZVRydWUoJ2Rlc2NyaXB0b3IuZW51bWVyYWJsZScpOwor
fQorCitkZWJ1ZygiIik7CitzaG91bGRCZSgiT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29u
c29sZSkubGVuZ3RoIiwgImVudW1lcmFibGVQcm9wZXJ0eUNvdW50Iik7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlYmVkODRh
Li5iNDMzNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MjUsNyAr
NjI1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0NvbXBpbGF0
aW9uUmVzdWx0LmNwcAogICAgIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHAKICAgICBydW50aW1lL0Nv
bnNvbGVDbGllbnQuY3BwCi0gICAgcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNwcAorICAgIHJ1
bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKICAgICBydW50aW1lL0NvbnN0YW50TW9kZS5jcHAKICAg
ICBydW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCiAgICAgcnVudGltZS9Db250cm9sRmxvd1Byb2Zp
bGVyLmNwcApAQCAtNjkwLDcgKzY5MCw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgcnVudGltZS9KU0NKU1ZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSlNDYWxsZWUuY3BwCiAgICAg
cnVudGltZS9KU0NlbGwuY3BwCi0gICAgcnVudGltZS9KU0NvbnNvbGUuY3BwCiAgICAgcnVudGlt
ZS9KU0RhdGFWaWV3LmNwcAogICAgIHJ1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAKICAg
ICBydW50aW1lL0pTRGF0ZU1hdGguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmYTIx
ZTAzLi5kZGMzYzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAor
MjAxNi0wNS0wMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgY29uc29sZSBhIG5hbWVzcGFjZSBvYmplY3QgKGxpa2UgTWF0aC9KU09OKSwgYWxs
b3dpbmcgZnVuY3Rpb25zIHRvIGJlIGNhbGxlZCB1bmJvdW5kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcyODYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI2MDUyODMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxlcyBhbmQgcmVtb3ZlIG9s
ZCBmaWxlcy4KKworICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaDoKKyAgICAg
ICAgQWRkICJjb25zb2xlIi4KKworICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZU9iamVjdC5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90
eXBlLmNwcC4KKyAgICAgICAgKEpTQzo6Q29uc29sZU9iamVjdDo6Q29uc29sZU9iamVjdCk6Cisg
ICAgICAgIChKU0M6OkNvbnNvbGVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpT
Qzo6dmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayk6CisgICAgICAgIChKU0M6
OmNvbnNvbGVMb2dXaXRoTGV2ZWwpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGVi
dWcpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRXJyb3IpOgorICAgICAgICAoSlND
Ojpjb25zb2xlUHJvdG9GdW5jTG9nKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0lu
Zm8pOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jV2Fybik6CisgICAgICAgIChKU0M6
OmNvbnNvbGVQcm90b0Z1bmNDbGVhcik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNE
aXIpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jRGlyWE1MKToKKyAgICAgICAgKEpT
Qzo6Y29uc29sZVByb3RvRnVuY1RhYmxlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVu
Y1RyYWNlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0Fzc2VydCk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNDb3VudCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90
b0Z1bmNQcm9maWxlKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQp
OgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdCk6CisgICAg
ICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1lKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVBy
b3RvRnVuY1RpbWVFbmQpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGltZVN0YW1w
KToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0dyb3VwKToKKyAgICAgICAgKEpTQzo6
Y29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVBy
b3RvRnVuY0dyb3VwRW5kKToKKyAgICAgICAgQ29uc29sZSBmdW5jdGlvbnMgbm8gbG9uZ2VyIG5l
ZWQgdG8gY2hlY2sgaWYgdGhlIHRoaXMgb2JqZWN0IGlzCisgICAgICAgIGEgQ29uc29sZSBvYmpl
Y3QuIFRoZXkgd2lsbCBhbHdheXMganVzdCB3b3JrIG5vdy4KKworICAgICAgICAqIHJ1bnRpbWUv
TWF0aE9iamVjdC5jcHA6CisgICAgICAgICogcnVudGltZS9NYXRoT2JqZWN0Lmg6CisgICAgICAg
ICogcnVudGltZS9Db25zb2xlT2JqZWN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmguCisgICAgICAgIChKU0M6OkNvbnNvbGVP
YmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkNvbnNvbGVPYmplY3Q6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgIENvbnNvbGVPYmplY3QgaXMgYSBiYXNpYyBvYmplY3QgbGlrZSBNYXRo
T2JqZWN0LgorCisgICAgICAgICogcnVudGltZS9KU0NvbnNvbGUuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHJ1bnRpbWUvSlNDb25zb2xlLmg6IFJlbW92ZWQuCisgICAgICAgICogcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6aW5pdCk6CisgICAgICAgIChKU0M6OkpTR2xv
YmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgUmVtb3ZlIEpTQ29uc29sZSAvIENv
bnNvbGVQcm90b3R5cGUgaW4gZmF2b3Igb2YgdGhlIHNpbmdsZSBDb25zb2xlT2JqZWN0LgorCiAy
MDE2LTA1LTAyICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFRvVGhpcyBzaG91bGQgYmUgYWJsZSB0byBiZSBlbGltaW5hdGVkIGluIENvbnN0YW50IEZv
bGRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTE1Y2ZkNS4uZWViZDk3NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1NjgsMTAgKzE1NjgsNiBAQAogCQlB
NTMzOUVDOTFCQjRCNDYwMDA1NEYwMDUgLyogSGVhcE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTMzOUVDODFCQjRCNDUxMDA1NEYwMDUg
LyogSGVhcE9ic2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTUzOThGQUIxQzc1MERBNDAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzOThGQUExQzc1
MEQ5NTAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5oICovOyB9OwogCQlBNTM5OEZBQzFDNzUwREE2
MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE1Mzk4RkE5MUM3NTBEOTUwMDYwQTk2MyAvKiBIZWFwUHJvZmls
ZXIuY3BwICovOyB9OwotCQlBNTNDRTA4NTE4QkMxQTU2MDBCRURGNzYgLyogQ29uc29sZVByb3Rv
dHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NTNDRTA4MTE4QkMxQTU2MDBCRURGNzYgLyogQ29uc29sZVByb3RvdHlwZS5jcHAgKi87IH07Ci0J
CUE1M0NFMDg2MThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90eXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTNDRTA4MjE4QkMxQTU2MDBC
RURGNzYgLyogQ29uc29sZVByb3RvdHlwZS5oICovOyB9OwotCQlBNTNDRTA4NzE4QkMxQTU2MDBC
RURGNzYgLyogSlNDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1M0NFMDgzMThCQzFBNTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuY3BwICov
OyB9OwotCQlBNTNDRTA4ODE4QkMxQTU2MDBCRURGNzYgLyogSlNDb25zb2xlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTNDRTA4NDE4QkMxQTU2MDBC
RURGNzYgLyogSlNDb25zb2xlLmggKi87IH07CiAJCUE1M0NFMDhBMThCQzIxQzMwMEJFREY3NiAv
KiBDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNTNDRTA4OTE4QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1M0YxQUMwMThD
OTBGOEYwMDcyRUI2RCAvKiBmcmFtZXdvcmsuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1M0YxQUJFMThDOTBFQzcwMDcyRUI2RCAvKiBmcmFtZXdv
cmsuc2IgKi87IH07CiAJCUE1NDk4MjAzMTg5MUQwQjAwMDgxRTVCOCAvKiBFdmVudExvb3AuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU0OTgyMDEx
ODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5jcHAgKi87IH07CkBAIC0xNTg5LDYgKzE1ODUs
OCBAQAogCQlBNTUxNjVENTFCREYxMzVBMDAzQjc1QzEgLyogU2NyaXB0UHJvZmlsaW5nU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NTE2NUQ0
MUJERjEzNEQwMDNCNzVDMSAvKiBTY3JpcHRQcm9maWxpbmdTY29wZS5oICovOyB9OwogCQlBNTUy
QzM3RjFBRERCOEZFMDAxMzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1MkMzN0QxQUREQjhGRTAwMTM5
NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmNwcCAqLzsgfTsKIAkJQTU1MkMzODAxQUREQjhGRTAw
MTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNTUyQzM3RTFBRERCOEZFMDAxMzk3MjYgLyogSlNSZW1vdGVJ
bnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlBNTU3MTRCRTFDRDgwNDlGMDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1NzE0QkQxQ0Q4MDQ4RTAw
MDREMkM2IC8qIENvbnNvbGVPYmplY3QuaCAqLzsgfTsKKwkJQTU1NzE0QkYxQ0Q4MDRBNDAwMDRE
MkM2IC8qIENvbnNvbGVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTU1NzE0QkMxQ0Q4MDQ4RTAwMDREMkM2IC8qIENvbnNvbGVPYmplY3Qu
Y3BwICovOyB9OwogCQlBNTVEOTNBNTE4NTAxMkE4MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25D
YWxsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1
NUQ5M0EzMTg1MDEyQTgwMDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuY3BwICovOyB9Owog
CQlBNTVEOTNBNjE4NTAxMkE4MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTVEOTNBNDE4NTAxMkE4
MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25DYWxsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTU1RDkzQUMxODUxNEY3OTAwNDAwREVEIC8qIElu
c3BlY3RvclByb3RvY29sVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1NUQ5M0FCMTg1MTRGNzkwMDQwMERFRCAvKiBJbnNwZWN0b3JQcm90b2Nv
bFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTM3ODksMTAgKzM3ODcsNiBAQAogCQlBNTMzOUVDODFCQjRCNDUxMDA1NEYwMDUgLyogSGVh
cE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhlYXBPYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTM5OEZBOTFDNzUwRDk1MDA2MEE5
NjMgLyogSGVhcFByb2ZpbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhlYXBQcm9maWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Mzk4
RkFBMUM3NTBEOTUwMDYwQTk2MyAvKiBIZWFwUHJvZmlsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSGVhcFByb2ZpbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUE1M0NFMDgxMThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90eXBlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNvbGVQcm90b3R5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTNDRTA4MjE4QkMxQTU2MDBCRURGNzYgLyog
Q29uc29sZVByb3RvdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25z
b2xlUHJvdG90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1M0NFMDgzMThC
QzFBNTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTUzQ0UwODQxOEJDMUE1NjAwQkVERjc2IC8qIEpTQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0NvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTUzQ0UwODkxOEJDMjFDMzAwQkVERjc2IC8qIENvbnNvbGVDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc29sZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNTNGMUFCRTE4QzkwRUM3MDA3MkVCNkQgLyogZnJhbWV3b3JrLnNiICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IGZyYW1ld29yay5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU0OTgyMDEx
ODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFdmVudExvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzgwOCw2ICszODAyLDggQEAKIAkJQTU1MTY1RDQxQkRGMTM0RDAwM0I3NUMxIC8qIFNjcmlw
dFByb2ZpbGluZ1Njb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlw
dFByb2ZpbGluZ1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NTJDMzdE
MUFEREI4RkUwMDEzOTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JlbW90ZUluc3BlY3Rvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1NTJDMzdFMUFEREI4RkUwMDEzOTcyNiAvKiBKU1JlbW90ZUlu
c3BlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JlbW90ZUluc3Bl
Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNTU3MTRCQzFDRDgwNDhFMDAw
NEQyQzYgLyogQ29uc29sZU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDb25zb2xlT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTU1NzE0QkQxQ0Q4MDQ4RTAwMDREMkM2IC8qIENvbnNvbGVPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc29sZU9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNTVEOTNBMzE4NTAxMkE4MDA0MDBERUQgLyogU2NyaXB0RnVuY3Rpb25DYWxs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEZ1bmN0aW9u
Q2FsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NUQ5M0E0MTg1MDEyQTgw
MDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyaXB0RnVuY3Rpb25DYWxsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE1NUQ5M0FCMTg1MTRGNzkwMDQwMERFRCAvKiBJbnNwZWN0b3JQcm90b2NvbFR5cGVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclByb3RvY29sVHlwZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1NTQsOCArNTU1MCw4IEBACiAJCQkJ
MEZEQjJDRTkxNzQ4OTZDNzAwN0IzQzFCIC8qIENvbmN1cnJlbnRKSVRMb2NrLmggKi8sCiAJCQkJ
QTVCNkE3NEMxOEM2REJBNjAwRjExRTkxIC8qIENvbnNvbGVDbGllbnQuY3BwICovLAogCQkJCUE1
M0NFMDg5MThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50LmggKi8sCi0JCQkJQTUzQ0Uw
ODExOEJDMUE1NjAwQkVERjc2IC8qIENvbnNvbGVQcm90b3R5cGUuY3BwICovLAotCQkJCUE1M0NF
MDgyMThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90eXBlLmggKi8sCisJCQkJQTU1NzE0
QkMxQ0Q4MDQ4RTAwMDREMkM2IC8qIENvbnNvbGVPYmplY3QuY3BwICovLAorCQkJCUE1NTcxNEJE
MUNEODA0OEUwMDA0RDJDNiAvKiBDb25zb2xlT2JqZWN0LmggKi8sCiAJCQkJQTVGRDAwNzExODlC
MDM4QzAwNjMzMjMxIC8qIENvbnNvbGVUeXBlcy5oICovLAogCQkJCTBGOTc4QjNBMUFBRUE3MUQw
MDdDNzM2OSAvKiBDb25zdGFudE1vZGUuY3BwICovLAogCQkJCTBGRkM5OUQwMTg0RUM4QUQwMDlD
MTBBQiAvKiBDb25zdGFudE1vZGUuaCAqLywKQEAgLTU3MDYsOCArNTcwMiw2IEBACiAJCQkJRjY5
MkE4ODcwMjU1NTk3RDAxRkY2MEY3IC8qIEpTQ0pTVmFsdWUuY3BwICovLAogCQkJCTE0QUJCMzZF
MDk5QzA3NjQwMEUyQTI0RiAvKiBKU0NKU1ZhbHVlLmggKi8sCiAJCQkJODY1QTMwRjAxMzUwMDdF
MTAwQ0RCNDlFIC8qIEpTQ0pTVmFsdWVJbmxpbmVzLmggKi8sCi0JCQkJQTUzQ0UwODMxOEJDMUE1
NjAwQkVERjc2IC8qIEpTQ29uc29sZS5jcHAgKi8sCi0JCQkJQTUzQ0UwODQxOEJDMUE1NjAwQkVE
Rjc2IC8qIEpTQ29uc29sZS5oICovLAogCQkJCTBGMkI2NkJEMTdCNkI1QUIwMEE3QUUzRiAvKiBK
U0RhdGFWaWV3LmNwcCAqLywKIAkJCQkwRjJCNjZCRTE3QjZCNUFCMDBBN0FFM0YgLyogSlNEYXRh
Vmlldy5oICovLAogCQkJCTBGMkI2NkJGMTdCNkI1QUIwMEE3QUUzRiAvKiBKU0RhdGFWaWV3UHJv
dG90eXBlLmNwcCAqLywKQEAgLTcxMzAsNyArNzEyNCw2IEBACiAJCQkJMTQ0ODM2RTcxMzJEQTdC
RTAwNUJFNzg1IC8qIENvbnNlcnZhdGl2ZVJvb3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTND
RTA4QTE4QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTVGRDAwN0ExODlCMDUxMDAwNjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlBNTNDRTA4NjE4QkMxQTU2MDBCRURGNzYgLyogQ29uc29sZVByb3RvdHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVGRDAwNzQxODlCMDM4QzAwNjMzMjMxIC8qIENvbnNvbGVU
eXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGQzk5RDExODRFQzhBRDAwOUMxMEFCIC8qIENv
bnN0YW50TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTM1NDYyMkIxQjYwNjVEMTAwNTQ1Mzg2
IC8qIENvbnN0cnVjdEFiaWxpdHkuaCBpbiBIZWFkZXJzICovLApAQCAtNzU4MSw2ICs3NTc0LDcg
QEAKIAkJCQlBNTM5OEZBQjFDNzUwREE0MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMTU4N0Q3MjFCNERDMTQxMDBENjk4NDkgLyogSW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU4N0Q3NjFCNERDMUM2MDBENjk4
NDkgLyogSW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlLmx1dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTU1NzE0QkUxQ0Q4MDQ5RjAwMDREMkM2IC8qIENvbnNvbGVPYmplY3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExRDc5MkZEMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRsTnVtYmVyRm9ybWF0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMUQ3OTJGRjFCNDM4NjRCMDA0NTE2RjUgLyogSW50bE51bWJl
ckZvcm1hdENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTI1ODQ2RTFCNDVBMzYw
MDBDQzdGNkMgLyogSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC03NjM2LDcgKzc2MzAsNiBAQAogCQkJCUJDMThDNDJCMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBKU0NKU1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjVBMzBGMTEzNTAwN0UxMDBDREI0
OUUgLyogSlNDSlNWYWx1ZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDFEMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBKU0NsYXNzUmVmLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNTNDRTA4
ODE4QkMxQTU2MDBCRURGNzYgLyogSlNDb25zb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkUz
QzYxMzE2N0JBQkQ3MDA2RDc2MEEgLyogSlNDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NkUzQzYxNzE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250ZXh0SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1OEMwMjQyMThFNEE0MUEwMDAzMkJDNSAvKiBKU0NvbnRleHRQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTg2NzQsNiArODY2Nyw3IEBACiAJCQkJMEZFQzg1MUYxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzTWVtb3J5VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1
MjExQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3Bjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RUM4NTIzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM09yaWdpbi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBNTU3MTRCRjFDRDgwNEE0MDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVDODUyNTFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3BlY2lh
bC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUyNzFCREFDREFDMDA4MEZGNzQgLyogQjNQ
YXRjaHBvaW50VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MjkxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzUGhhc2VTY29wZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTg3MzgsNyArODcz
Miw2IEBACiAJCQkJMTQ2QjE2RDgxMkVCNUI1OTAwMUJFQzFCIC8qIENvbnNlcnZhdGl2ZVJvb3Rz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QjZBNzREMThDNkRCQTYwMEYxMUU5MSAvKiBDb25z
b2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1RkQwMDc5MTg5QjA1MTAwMDYzMzIz
MSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNTNDRTA4NTE4QkMx
QTU2MDBCRURGNzYgLyogQ29uc29sZVByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
Rjk3OEIzQjFBQUVBNzFEMDA3QzczNjkgLyogQ29uc3RhbnRNb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0MjgwODJFMTA3RUMwNTcwMDEzRTdCMiAvKiBDb25zdHJ1Y3REYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1N0QyM0YxMTg5MUI1QjQwMDMxQzdGQSAvKiBDb250ZW50U2VhcmNo
VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTA5Miw3ICs5MDg1LDYgQEAKIAkJCQkx
NDdGMzlEMTEwN0VDMzc2MDA0MjdBNDggLyogSlNDZWxsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE0N0YzOUQ2MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0NKU1ZhbHVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0NDBGQ0U0MEE1MUU0NkIwMDA1RjA2MSAvKiBKU0NsYXNzUmVmLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCUE1M0NFMDg3MThCQzFBNTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODZFM0M2MTYxNjdCQUJFRTAwNkQ3NjBBIC8qIEpTQ29udGV4dC5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAvKiBKU0NvbnRl
eHRSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcyMDI4QjYxNzk3NjAxRTAwOTgwMjhDIC8q
IEpTQ1Rlc3RSdW5uZXJVdGlscy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDJiMWVkNjAuLjA3
NTYzNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklk
ZW50aWZpZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRl
bnRpZmllcnMuaApAQCAtMTI5LDYgKzEyOSw3IEBACiAgICAgbWFjcm8oY29tcGlsYXRpb25zKSBc
CiAgICAgbWFjcm8oY29tcGlsZSkgXAogICAgIG1hY3JvKGNvbmZpZ3VyYWJsZSkgXAorICAgIG1h
Y3JvKGNvbnNvbGUpIFwKICAgICBtYWNybyhjb25zdHJ1Y3RvcikgXAogICAgIG1hY3JvKGNvdW50
KSBcCiAgICAgbWFjcm8oY291bnRlcnMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKc2ltaWxhcml0eSBpbmRleCA3MSUKcmVuYW1lIGZy
b20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVByb3RvdHlwZS5jcHAKcmVu
YW1lIHRvIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCmlu
ZGV4IGYxODVmZWYuLjEzYmIzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnNvbGVPYmplY3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDE5ICsyNCwxNyBAQAogICovCiAKICNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJDb25zb2xlUHJvdG90eXBlLmgiCisjaW5jbHVkZSAiQ29u
c29sZU9iamVjdC5oIgogCiAjaW5jbHVkZSAiQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIkVy
cm9yLmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uSGVscGVycy5oIgogI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKLSNpbmNsdWRlICJKU0NvbnNvbGUuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMu
aCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAKIG5hbWVzcGFjZSBKU0Mg
ewogCi1jb25zdCBDbGFzc0luZm8gQ29uc29sZVByb3RvdHlwZTo6c19pbmZvID0geyAiQ29uc29s
ZVByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoQ29uc29s
ZVByb3RvdHlwZSkgfTsKK1NUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShD
b25zb2xlT2JqZWN0KTsKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29u
c29sZVByb3RvRnVuY0RlYnVnKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0Vycm9yKEV4ZWNTdGF0ZSopOwpAQCAtNjAsMTEg
KzU4LDE3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNHcm91cChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZChFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZChFeGVj
U3RhdGUqKTsKIAotdm9pZCBDb25zb2xlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitjb25zdCBDbGFzc0luZm8gQ29uc29sZU9i
amVjdDo6c19pbmZvID0geyAiQ29uc29sZSIsICZCYXNlOjpzX2luZm8sIDAsIENSRUFURV9NRVRI
T0RfVEFCTEUoQ29uc29sZU9iamVjdCkgfTsKKworQ29uc29sZU9iamVjdDo6Q29uc29sZU9iamVj
dChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQorICAgIDogSlNOb25GaW5hbE9iamVjdCh2
bSwgc3RydWN0dXJlKQoreworfQorCit2b2lkIENvbnNvbGVPYmplY3Q6OmZpbmlzaENyZWF0aW9u
KFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwotICAgIHZtLnBy
b3RvdHlwZU1hcC5hZGRQcm90b3R5cGUodGhpcyk7CiAKICAgICAvLyBGb3IgbGVnYWN5IHJlYXNv
bnMsIGNvbnNvbGUgcHJvcGVydGllcyBhcmUgZW51bWVyYWJsZSwgd3JpdGFibGUsIGRlbGV0ZWFi
bGUsCiAgICAgLy8gYW5kIGFsbCBoYXZlIGEgbGVuZ3RoIG9mIDAuIFRoaXMgbWF5IGNoYW5nZSBp
ZiBDb25zb2xlIGlzIHN0YW5kYXJkaXplZC4KQEAgLTc1LDEzICs3OSwxMyBAQCB2b2lkIENvbnNv
bGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5m
byIsIGNvbnNvbGVQcm90b0Z1bmNJbmZvLCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigid2FybiIsIGNvbnNvbGVQcm90b0Z1bmNXYXJuLCBOb25l
LCAwKTsKIAotICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjbGVh
ciIsIGNvbnNvbGVQcm90b0Z1bmNDbGVhciwgTm9uZSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Y2xlYXIsIGNvbnNvbGVQ
cm90b0Z1bmNDbGVhciwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImRpciIsIGNvbnNvbGVQcm90b0Z1bmNEaXIsIE5vbmUsIDApOwogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJkaXJ4bWwiLCBjb25zb2xlUHJv
dG9GdW5jRGlyWE1MLCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigidGFibGUiLCBjb25zb2xlUHJvdG9GdW5jVGFibGUsIE5vbmUsIDApOwogICAg
IEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0cmFjZSIsIGNvbnNvbGVQ
cm90b0Z1bmNUcmFjZSwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImFzc2VydCIsIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQsIE5vbmUsIDApOwot
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJjb3VudCIsIGNvbnNv
bGVQcm90b0Z1bmNDb3VudCwgTm9uZSwgMCk7CisgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+Y291bnQsIGNvbnNvbGVQcm90b0Z1bmND
b3VudCwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oInByb2ZpbGUiLCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSwgTm9uZSwgMCk7CiAgICAgSlND
X05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInByb2ZpbGVFbmQiLCBjb25zb2xl
UHJvdG9GdW5jUHJvZmlsZUVuZCwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oInRpbWUiLCBjb25zb2xlUHJvdG9GdW5jVGltZSwgTm9uZSwgMCk7
CkBAIC0xMDIsMTEgKzEwNiw3IEBAIHN0YXRpYyBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRl
ZmluZWRPck51bGxDaGVjayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsCiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBjb25zb2xlTG9nV2l0aExldmVsKEV4ZWNTdGF0ZSogZXhlYywgTWVzc2Fn
ZUxldmVsIGxldmVsKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykK
LSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29s
ZUNsaWVudCogY2xpZW50ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGll
bnQoKTsKKyAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTQyLDExICsxNDIsNyBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jV2FybihF
eGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNv
bnNvbGVQcm90b0Z1bmNDbGVhcihFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7
Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihl
eGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29s
ZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9
IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICgh
Y2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
CkBAIC0xNTcsMTEgKzE1Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGNvbnNvbGVQcm90b0Z1bmNDbGVhcihFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNEaXIoRXhlY1N0YXRlKiBleGVj
KQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xl
Kj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xp
ZW50ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBD
b25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNv
bGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMTcyLDExICsxNjQsNyBAQCBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRGlyKEV4ZWNTdGF0ZSogZXhl
YykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y0RpclhNTChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFj
YXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsK
LSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+
Y29uc29sZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0xODcsMTEg
KzE3NSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90
b0Z1bmNEaXJYTUwoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+
dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xp
ZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQo
KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIApAQCAtMjAyLDExICsxODYsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFibGUoRXhlY1N0YXRlKiBleGVjKQogCiBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVHJhY2Uo
RXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhp
cykKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29u
c29sZUNsaWVudCogY2xpZW50ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVD
bGllbnQoKTsKKyAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMjE3LDExICsxOTcsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVHJh
Y2UoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNv
bGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1
ZSgpKTsKLSAgICBpZiAoIWNhc3RlZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlND
b25zb2xlOjppbmZvKCkpOwotICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xp
ZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAg
aWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAKQEAgLTIzNiwxMSArMjEyLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY0Fzc2VydChFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudChFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xp
ZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgp
OworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0yNTEsMTEgKzIyMyw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNDb3VudChFeGVj
U3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNv
bGVQcm90b0Z1bmNQcm9maWxlKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsK
LSAgICBpZiAoIWNhc3RlZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xl
OjppbmZvKCkpOwotICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMtPmdsb2Jh
bE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0g
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFj
bGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAK
QEAgLTI3NSwxMSArMjQzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY1Byb2ZpbGUoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZChFeGVjU3Rh
dGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xp
ZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgp
OworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0yOTksMTEgKzI2Myw3IEBAIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5k
KEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+
dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRU
aGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2Fz
dGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xp
ZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQo
KTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTsKIApAQCAtMzIzLDExICsyODMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdChFeGVjU3RhdGUq
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNU
aW1lKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLSAgICBpZiAoIWNhc3Rl
ZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwotICAg
IENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLT5jb25z
b2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTM0NCwxMSArMzAw
LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVu
Y1RpbWUoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlND
b25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlz
VmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMs
IEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRU
aGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQq
IGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwog
ICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZp
bmVkKCkpOwogCkBAIC0zNjUsMTEgKzMxNyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4ZWNTdGF0ZSogZXhlYykKIAogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVTdGFt
cChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRU
aGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBD
b25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29s
ZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0zODAsMTEgKzMyOCw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNU
aW1lU3RhbXAoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXAoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
Q29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhp
c1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xpZW50
KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsK
ICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIApAQCAtMzk1LDExICszMzksNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXAoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xs
YXBzZWQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2Fz
dGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0g
ICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNv
bnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtNDEwLDExICsz
NTAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9G
dW5jR3JvdXBDb2xsYXBzZWQoRXhlY1N0YXRlKiBleAogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQoRXhlY1N0YXRlKiBleGVjKQog
ewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4o
ZXhlYy0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhj
YXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50
ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25z
b2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVD
bGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtNDIzLDQgKzM1OSw0IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZChFeGVjU3RhdGUqIGV4
ZWMpCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIAotfQor
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db25zb2xlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b25zb2xlT2JqZWN0LmgKc2ltaWxhcml0eSBpbmRleCA3MyUKcmVuYW1lIGZyb20gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVByb3RvdHlwZS5oCnJlbmFtZSB0byBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmgKaW5kZXggYTI3YWQyNC4uMWQw
ZTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVBy
b3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmpl
Y3QuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yMywzOSArMjMsMzUgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBDb25z
b2xlUHJvdG90eXBlX2gKLSNkZWZpbmUgQ29uc29sZVByb3RvdHlwZV9oCisjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi1jbGFzcyBDb25z
b2xlUHJvdG90eXBlIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworY2xhc3MgQ29uc29sZU9i
amVjdCA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3ByaXZhdGU6CisgICAgQ29uc29sZU9i
amVjdChWTSYsIFN0cnVjdHVyZSopOworCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU05vbkZpbmFs
T2JqZWN0IEJhc2U7CiAKKyAgICBzdGF0aWMgQ29uc29sZU9iamVjdCogY3JlYXRlKFZNJiB2bSwg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAg
eworICAgICAgICBDb25zb2xlT2JqZWN0KiBvYmplY3QgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRl
Q2VsbDxDb25zb2xlT2JqZWN0Pih2bS5oZWFwKSkgQ29uc29sZU9iamVjdCh2bSwgc3RydWN0dXJl
KTsKKyAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgcmV0dXJuIG9iamVjdDsKKyAgICB9CisKICAgICBERUNMQVJFX0lORk87CiAKLSAgICBz
dGF0aWMgQ29uc29sZVByb3RvdHlwZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgewotICAgICAgICBDb25zb2xl
UHJvdG90eXBlKiBwcm90b3R5cGUgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxDb25zb2xl
UHJvdG90eXBlPih2bS5oZWFwKSkgQ29uc29sZVByb3RvdHlwZSh2bSwgc3RydWN0dXJlKTsKLSAg
ICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbih2bSwgZ2xvYmFsT2JqZWN0KTsKLSAgICAg
ICAgcmV0dXJuIHByb3RvdHlwZTsKLSAgICB9Ci0KICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVh
dGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7CiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKICAgICB9CiAKLXByaXZhdGU6Ci0gICAgQ29uc29sZVByb3RvdHlwZShW
TSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVjdHVy
ZSkKLSAgICB7Ci0gICAgfQorcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oVk0m
LCBKU0dsb2JhbE9iamVjdCopOwogfTsKIAotfQotCi0jZW5kaWYgLy8gIWRlZmluZWQoQ29uc29s
ZVByb3RvdHlwZV9oKQorfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NvbnNvbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDb25zb2xlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Qw
NGFiZi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NvbnNv
bGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJKU0NvbnNvbGUuaCIKLQotI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCi0jaW5jbHVk
ZSAiU3RydWN0dXJlSW5saW5lcy5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY29uc3QgQ2xhc3NJ
bmZvIEpTQ29uc29sZTo6c19pbmZvID0geyAiQ29uc29sZSIsICZCYXNlOjpzX2luZm8sIDAsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNDb25zb2xlKSB9OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NvbnNvbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQ29uc29sZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTYx
MWVjLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ29uc29s
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSlNDb25zb2xlX2gKLSNkZWZpbmUgSlND
b25zb2xlX2gKLQotI2luY2x1ZGUgIkpTT2JqZWN0LmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1j
bGFzcyBKU0NvbnNvbGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7Ci1wdWJsaWM6Ci0gICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0KLSAgICBERUNMQVJFX0VYUE9SVF9JTkZP
OwotCi0gICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBU
eXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi0g
ICAgc3RhdGljIEpTQ29uc29sZSogY3JlYXRlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
Ci0gICAgewotICAgICAgICBKU0NvbnNvbGUqIGluc3RhbmNlID0gbmV3IChOb3ROdWxsLCBhbGxv
Y2F0ZUNlbGw8SlNDb25zb2xlPih2bS5oZWFwKSkgSlNDb25zb2xlKHZtLCBzdHJ1Y3R1cmUpOwot
ICAgICAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0pOwotICAgICAgICByZXR1cm4gaW5z
dGFuY2U7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQ29uc29sZSogY3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgewotICAgICAgICByZXR1cm4gY3JlYXRl
KGV4ZWMtPnZtKCksIHN0cnVjdHVyZSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEpTQ29uc29s
ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEJhc2Uodm0sIHN0cnVj
dHVyZSkKLSAgICB7Ci0gICAgfQotfTsKLQotfQotCi0jZW5kaWYgLy8gIWRlZmluZWQoSlNDb25z
b2xlX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5jcHAKaW5kZXggN2RlOTI2MC4uYmJiZDM1NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMzksNyArMzksNyBAQAogI2luY2x1
ZGUgIkNsb25lZEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUg
IkNvZGVDYWNoZS5oIgotI2luY2x1ZGUgIkNvbnNvbGVQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJD
b25zb2xlT2JqZWN0LmgiCiAjaW5jbHVkZSAiRGF0ZUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAi
RGF0ZVByb3RvdHlwZS5oIgogI2luY2x1ZGUgIkRlYnVnZ2VyLmgiCkBAIC03MCw3ICs3MCw2IEBA
CiAjaW5jbHVkZSAiSlNDYWxsYmFja0NvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFj
a0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFja09iamVjdC5oIgotI2luY2x1ZGUgIkpT
Q29uc29sZS5oIgogI2luY2x1ZGUgIkpTRGF0YVZpZXcuaCIKICNpbmNsdWRlICJKU0RhdGFWaWV3
UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiSlNEb2xsYXJWTS5oIgpAQCAtNDk4LDYgKzQ5Nyw4IEBA
IHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1l
LCBsb3dlck5hbWUgIyMgQ29uc3RydWN0CiAgICAgUmVmbGVjdE9iamVjdCogcmVmbGVjdE9iamVj
dCA9IFJlZmxlY3RPYmplY3Q6OmNyZWF0ZSh2bSwgdGhpcywgUmVmbGVjdE9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwogICAgIHB1dERp
cmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5SZWZsZWN0LCByZWZs
ZWN0T2JqZWN0LCBEb250RW51bSk7CiAKKyAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2
bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc29sZSwgQ29uc29sZU9iamVjdDo6Y3JlYXRlKHZtLCB0
aGlzLCBDb25zb2xlT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJv
dG90eXBlLmdldCgpKSkpOworCiAgICAgSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9yKiB0eXBl
ZEFycmF5U3VwZXJDb25zdHJ1Y3RvciA9IEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Y3Jl
YXRlKHZtLCB0aGlzLCBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgdGhpcywgbV9mdW5jdGlvblByb3RvdHlwZS5nZXQoKSksIHR5cGVkQXJyYXlQcm90bywg
c3BlY2llc0dldHRlclNldHRlcik7CiAgICAgdHlwZWRBcnJheVByb3RvLT5wdXREaXJlY3RXaXRo
b3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29uc3RydWN0b3IsIHR5cGVkQXJy
YXlTdXBlckNvbnN0cnVjdG9yLCBEb250RW51bSk7CiAKQEAgLTY3MywxMSArNjc0LDYgQEAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxv
d2VyTmFtZSAjIyBDb25zdHJ1Y3QKIAogICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KExpbmtUaW1lQ29uc3RhbnQ6OkRlZmluZVByb3BlcnR5RnVuY3Rpb24pXSA9
IG1fZGVmaW5lUHJvcGVydHlGdW5jdGlvbi5nZXQoKTsKIAotICAgIENvbnNvbGVQcm90b3R5cGUq
IGNvbnNvbGVQcm90b3R5cGUgPSBDb25zb2xlUHJvdG90eXBlOjpjcmVhdGUodm0sIHRoaXMsIENv
bnNvbGVQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmplY3RQcm90b3R5
cGUuZ2V0KCkpKTsKLSAgICBtX2NvbnNvbGVTdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0NvbnNv
bGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgY29uc29sZVByb3RvdHlwZSkpOwotICAgIEpT
Q29uc29sZSogY29uc29sZU9iamVjdCA9IEpTQ29uc29sZTo6Y3JlYXRlKHZtLCBtX2NvbnNvbGVT
dHJ1Y3R1cmUuZ2V0KCkpOwotICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsICJjb25zb2xlIiksIGNvbnNvbGVPYmplY3QsIERvbnRF
bnVtKTsKLQogICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VEb2xsYXJWTSgpKSkgewogICAg
ICAgICBKU0RvbGxhclZNUHJvdG90eXBlKiBkb2xsYXJWTVByb3RvdHlwZSA9IEpTRG9sbGFyVk1Q
cm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhpcywgSlNEb2xsYXJWTVByb3RvdHlwZTo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwogICAgICAgICBtX2Rv
bGxhclZNU3RydWN0dXJlLnNldCh2bSwgdGhpcywgSlNEb2xsYXJWTTo6Y3JlYXRlU3RydWN0dXJl
KHZtLCB0aGlzLCBkb2xsYXJWTVByb3RvdHlwZSkpOwpAQCAtMTAwMCw3ICs5OTYsNiBAQCB2b2lk
IEpTR2xvYmFsT2JqZWN0Ojp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fcmVnRXhwTWF0Y2hl
c0FycmF5U2xvd1B1dFN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fbW9kdWxlUmVjb3JkU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVj
dC0+bV9tb2R1bGVOYW1lc3BhY2VPYmplY3RTdHJ1Y3R1cmUpOwotICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tX2NvbnNvbGVTdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0
aGlzT2JqZWN0LT5tX2RvbGxhclZNU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhp
c09iamVjdC0+bV9pbnRlcm5hbEZ1bmN0aW9uU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9wcm94eU9iamVjdFN0cnVjdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBkODQ4OTBhLi44YmIxNGMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgK
QEAgLTI4MSw3ICsyODEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVy
ZT4gbV9wcml2YXRlTmFtZVN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBt
X3JlZ0V4cFN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2dlbmVyYXRv
ckZ1bmN0aW9uU3RydWN0dXJlOwotICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fY29uc29s
ZVN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2RvbGxhclZNU3RydWN0
dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faW50ZXJuYWxGdW5jdGlvblN0cnVj
dHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2l0ZXJhdG9yUmVzdWx0T2JqZWN0
U3RydWN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmNw
cAppbmRleCA2NmQzMWI3Li4zZjlhODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXRoT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmNwcApAQCAtNjksMTAgKzY5LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jVGFuKEV4ZWNTdGF0ZSopOwogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jVGFuaChFeGVjU3RhdGUqKTsKIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgbWF0aFByb3RvRnVuY0lNdWwoRXhlY1N0YXRlKik7CiAKLX0KLQot
bmFtZXNwYWNlIEpTQyB7Ci0KIGNvbnN0IENsYXNzSW5mbyBNYXRoT2JqZWN0OjpzX2luZm8gPSB7
ICJNYXRoIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShNYXRoT2JqZWN0
KSB9OwogCiBNYXRoT2JqZWN0OjpNYXRoT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXRoT2JqZWN0LmgKaW5kZXggMWEx
MzNkNS4uYjZlOWYzZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWF0aE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuaApAQCAtMzEsNyArMzEsNiBAQCBwcml2YXRlOgogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBK
U05vbkZpbmFsT2JqZWN0IEJhc2U7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3Q7CiAKICAgICBzdGF0aWMgTWF0aE9iamVjdCogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277946</attachid>
            <date>2016-05-02 16:58:55 -0700</date>
            <delta_ts>2016-05-02 17:50:50 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>console-2.patch</filename>
            <type>text/plain</type>
            <size>48388</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NjE1ODI3Li42NTUzNTg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUt
MDIgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtl
IGNvbnNvbGUgYSBuYW1lc3BhY2Ugb2JqZWN0IChsaWtlIE1hdGgvSlNPTiksIGFsbG93aW5nIGZ1
bmN0aW9ucyB0byBiZSBjYWxsZWQgdW5ib3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3Mjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjA1
MjgzMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGpzL2NvbnNvbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9jb25zb2xlLmh0
bWw6IEFkZGVkLgorCiAyMDE2LTA1LTAyICBQZXIgQXJuZSBWb2xsYW4gIDxwZWF2b0BvdXRsb29r
LmNvbT4KIAogICAgICAgICBbV2luXSBFbmFibGUgSW5kZXhlZERCLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvanMvY29uc29sZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9jb25zb2xl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjk1ZGNh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvY29uc29sZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNzAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogbG9nIG1lc3NhZ2UK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSAyMTogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogbG9nIG1lc3Nh
Z2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMzogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAyNDogbG9nIG1lc3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogbG9nIG1l
c3NhZ2UKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiAxCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogMgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IDMKK1BBU1MgdHlwZW9mIGNvbnNvbGUgaXMg
Im9iamVjdCIKK1BBU1MgY29uc29sZS50b1N0cmluZygpIGlzICJbb2JqZWN0IENvbnNvbGVdIgor
UEFTUyBPYmplY3QuZ2V0UHJvdG90eXBlT2YoY29uc29sZSkgaXMgT2JqZWN0LmdldFByb3RvdHlw
ZU9mKHt9KQorUEFTUyBjb25zb2xlIGlzIGNvbnNvbGUKK1BBU1MgY29uc29sZURlc2NyaXB0b3Iu
Y29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgY29uc29sZURlc2NyaXB0b3Iud3JpdGFibGUgaXMg
dHJ1ZQorUEFTUyBjb25zb2xlRGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5kZWJ1ZworUEFTUyB0eXBlb2YgY29uc29sZS5kZWJ1ZyBpcyAiZnVuY3Rpb24iCitQQVNTIGNv
bnNvbGUuZGVidWcubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5lcnJvcgorUEFTUyB0eXBlb2YgY29uc29sZS5l
cnJvciBpcyAiZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUuZXJyb3IubGVuZ3RoIGlzIDAKK1BBU1Mg
ZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxl
IGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5s
b2cKK1BBU1MgdHlwZW9mIGNvbnNvbGUubG9nIGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29sZS5s
b2cubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFT
UyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxl
IGlzIHRydWUKKworY29uc29sZS5pbmZvCitQQVNTIHR5cGVvZiBjb25zb2xlLmluZm8gaXMgImZ1
bmN0aW9uIgorUEFTUyBjb25zb2xlLmluZm8ubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5j
b25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BB
U1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS53YXJuCitQQVNTIHR5
cGVvZiBjb25zb2xlLndhcm4gaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLndhcm4ubGVuZ3Ro
IGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlw
dG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUK
KworY29uc29sZS5jbGVhcgorUEFTUyB0eXBlb2YgY29uc29sZS5jbGVhciBpcyAiZnVuY3Rpb24i
CitQQVNTIGNvbnNvbGUuY2xlYXIubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1
cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVz
Y3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5kaXIKK1BBU1MgdHlwZW9mIGNv
bnNvbGUuZGlyIGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29sZS5kaXIubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5kaXJ4bWwKK1BBU1MgdHlwZW9mIGNvbnNvbGUuZGlyeG1sIGlzICJmdW5jdGlvbiIKK1BBU1Mg
Y29uc29sZS5kaXJ4bWwubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUg
aXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRv
ci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50YWJsZQorUEFTUyB0eXBlb2YgY29uc29s
ZS50YWJsZSBpcyAiZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUudGFibGUubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS50cmFjZQorUEFTUyB0eXBlb2YgY29uc29sZS50cmFjZSBpcyAiZnVuY3Rpb24iCitQQVNTIGNv
bnNvbGUudHJhY2UubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5hc3NlcnQKK1BBU1MgdHlwZW9mIGNvbnNvbGUu
YXNzZXJ0IGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29sZS5hc3NlcnQubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5jb3VudAorUEFTUyB0eXBlb2YgY29uc29sZS5jb3VudCBpcyAiZnVuY3Rpb24iCitQQVNTIGNv
bnNvbGUuY291bnQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5wcm9maWxlCitQQVNTIHR5cGVvZiBjb25zb2xl
LnByb2ZpbGUgaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLnByb2ZpbGUubGVuZ3RoIGlzIDAK
K1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndy
aXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29u
c29sZS5wcm9maWxlRW5kCitQQVNTIHR5cGVvZiBjb25zb2xlLnByb2ZpbGVFbmQgaXMgImZ1bmN0
aW9uIgorUEFTUyBjb25zb2xlLnByb2ZpbGVFbmQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRv
ci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUK
K1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50aW1lCitQQVNT
IHR5cGVvZiBjb25zb2xlLnRpbWUgaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLnRpbWUubGVu
Z3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNj
cmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRy
dWUKKworY29uc29sZS50aW1lRW5kCitQQVNTIHR5cGVvZiBjb25zb2xlLnRpbWVFbmQgaXMgImZ1
bmN0aW9uIgorUEFTUyBjb25zb2xlLnRpbWVFbmQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRv
ci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUK
K1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50aW1lU3RhbXAK
K1BBU1MgdHlwZW9mIGNvbnNvbGUudGltZVN0YW1wIGlzICJmdW5jdGlvbiIKK1BBU1MgY29uc29s
ZS50aW1lU3RhbXAubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMg
dHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5l
bnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS50YWtlSGVhcFNuYXBzaG90CitQQVNTIHR5cGVv
ZiBjb25zb2xlLnRha2VIZWFwU25hcHNob3QgaXMgImZ1bmN0aW9uIgorUEFTUyBjb25zb2xlLnRh
a2VIZWFwU25hcHNob3QubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUg
aXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRv
ci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5ncm91cAorUEFTUyB0eXBlb2YgY29uc29s
ZS5ncm91cCBpcyAiZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUuZ3JvdXAubGVuZ3RoIGlzIDAKK1BB
U1MgZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRh
YmxlIGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29s
ZS5ncm91cENvbGxhcHNlZAorUEFTUyB0eXBlb2YgY29uc29sZS5ncm91cENvbGxhcHNlZCBpcyAi
ZnVuY3Rpb24iCitQQVNTIGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQubGVuZ3RoIGlzIDAKK1BBU1Mg
ZGVzY3JpcHRvci5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxl
IGlzIHRydWUKK1BBU1MgZGVzY3JpcHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworY29uc29sZS5n
cm91cEVuZAorUEFTUyB0eXBlb2YgY29uc29sZS5ncm91cEVuZCBpcyAiZnVuY3Rpb24iCitQQVNT
IGNvbnNvbGUuZ3JvdXBFbmQubGVuZ3RoIGlzIDAKK1BBU1MgZGVzY3JpcHRvci5jb25maWd1cmFi
bGUgaXMgdHJ1ZQorUEFTUyBkZXNjcmlwdG9yLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgZGVzY3Jp
cHRvci5lbnVtZXJhYmxlIGlzIHRydWUKKworUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1l
cyhjb25zb2xlKS5sZW5ndGggaXMgZW51bWVyYWJsZVByb3BlcnR5Q291bnQKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9jb25zb2xlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UwZjMwNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2pzL2NvbnNvbGUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInR5cGVvZiBjb25z
b2xlIiwgIm9iamVjdCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjb25zb2xlLnRvU3RyaW5n
KCkiLCAiW29iamVjdCBDb25zb2xlXSIpOworc2hvdWxkQmUoIk9iamVjdC5nZXRQcm90b3R5cGVP
Zihjb25zb2xlKSIsICJPYmplY3QuZ2V0UHJvdG90eXBlT2Yoe30pIik7CitzaG91bGRCZSgiY29u
c29sZSIsICJjb25zb2xlIik7CisKK3ZhciBjb25zb2xlRGVzY3JpcHRvciA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAiY29uc29sZSIpOworc2hvdWxkQmVUcnVlKCdj
b25zb2xlRGVzY3JpcHRvci5jb25maWd1cmFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnY29uc29sZURl
c2NyaXB0b3Iud3JpdGFibGUnKTsKK3Nob3VsZEJlVHJ1ZSgnY29uc29sZURlc2NyaXB0b3IuZW51
bWVyYWJsZScpOworCisvLyBDb25zb2xlIG1ldGhvZHMgZG9uJ3QgY2FyZSB3aGF0IHRoZWlyIHRo
aXMgb2JqZWN0IGlzLgorY29uc29sZS5sb2coImxvZyBtZXNzYWdlIik7Citjb25zb2xlLmxvZy5j
YWxsKG51bGwsICJsb2cgbWVzc2FnZSIpOworY29uc29sZS5sb2cuY2FsbCh1bmRlZmluZWQsICJs
b2cgbWVzc2FnZSIpOworY29uc29sZS5sb2cuY2FsbChjb25zb2xlLCAibG9nIG1lc3NhZ2UiKTsK
K2NvbnNvbGUubG9nLmNhbGwoMTIzLCAibG9nIG1lc3NhZ2UiKTsKK2NvbnNvbGUubG9nLmNhbGwo
Imlnbm9yZSIsICJsb2cgbWVzc2FnZSIpOworY29uc29sZS5sb2cuYmluZChjb25zb2xlLCAibG9n
IG1lc3NhZ2UiKTsKK2NvbnNvbGUubG9nLmJpbmQoY29uc29sZSkoImxvZyBtZXNzYWdlIik7Citb
MSwyLDNdLmZvckVhY2goY29uc29sZS5sb2cpOworCisvLyBBbGwgcHJvcGVydGllcyBzaG91bGQg
YmUgZW51bWVyYWJsZS4KK3ZhciBwcm9wZXJ0eSwgZGVzY3JpcHRvcjsKK3ZhciBlbnVtZXJhYmxl
UHJvcGVydHlDb3VudCA9IDA7Citmb3IgKHByb3BlcnR5IGluIGNvbnNvbGUpIHsKKyAgICBlbnVt
ZXJhYmxlUHJvcGVydHlDb3VudCsrOworICAgIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKGNvbnNvbGUsIHByb3BlcnR5KTsKKworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZyhgY29uc29sZS4ke3Byb3BlcnR5fWApOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZyhgdHlwZW9mIGNvbnNvbGUuJHtwcm9wZXJ0eX1gLCAiZnVuY3Rpb24iKTsKKyAgICBzaG91bGRC
ZShgY29uc29sZS4ke3Byb3BlcnR5fS5sZW5ndGhgLCAnMCcpOworICAgIHNob3VsZEJlVHJ1ZSgn
ZGVzY3JpcHRvci5jb25maWd1cmFibGUnKTsKKyAgICBzaG91bGRCZVRydWUoJ2Rlc2NyaXB0b3Iu
d3JpdGFibGUnKTsKKyAgICBzaG91bGRCZVRydWUoJ2Rlc2NyaXB0b3IuZW51bWVyYWJsZScpOwor
fQorCitkZWJ1ZygiIik7CitzaG91bGRCZSgiT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY29u
c29sZSkubGVuZ3RoIiwgImVudW1lcmFibGVQcm9wZXJ0eUNvdW50Iik7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlYmVkODRh
Li5iNDMzNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02MjUsNyAr
NjI1LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBydW50aW1lL0NvbXBpbGF0
aW9uUmVzdWx0LmNwcAogICAgIHJ1bnRpbWUvQ29tcGxldGlvbi5jcHAKICAgICBydW50aW1lL0Nv
bnNvbGVDbGllbnQuY3BwCi0gICAgcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNwcAorICAgIHJ1
bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKICAgICBydW50aW1lL0NvbnN0YW50TW9kZS5jcHAKICAg
ICBydW50aW1lL0NvbnN0cnVjdERhdGEuY3BwCiAgICAgcnVudGltZS9Db250cm9sRmxvd1Byb2Zp
bGVyLmNwcApAQCAtNjkwLDcgKzY5MCw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAg
ICAgcnVudGltZS9KU0NKU1ZhbHVlLmNwcAogICAgIHJ1bnRpbWUvSlNDYWxsZWUuY3BwCiAgICAg
cnVudGltZS9KU0NlbGwuY3BwCi0gICAgcnVudGltZS9KU0NvbnNvbGUuY3BwCiAgICAgcnVudGlt
ZS9KU0RhdGFWaWV3LmNwcAogICAgIHJ1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5jcHAKICAg
ICBydW50aW1lL0pTRGF0ZU1hdGguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmYTIx
ZTAzLi5iMDcyNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAor
MjAxNi0wNS0wMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2UgY29uc29sZSBhIG5hbWVzcGFjZSBvYmplY3QgKGxpa2UgTWF0aC9KU09OKSwgYWxs
b3dpbmcgZnVuY3Rpb25zIHRvIGJlIGNhbGxlZCB1bmJvdW5kCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTcyODYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI2MDUyODMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgY2hhbmdlcyBgY29uc29sZWAgdG8gYmUgYSBnbG9iYWwgbmFtZXNwYWNlIG9i
amVjdCwgbGlrZSBgTWF0aGAgYW5kIGBKU09OYC4KKyAgICAgICAgSXQganVzdCBob2xkcyBhIGJ1
bmNoIG9mIGZ1bmN0aW9ucywgdGhhdCBjYW4gYmUgdXNlZCBvbiB0aGVpciBvd24sIHVuYm91bmQu
CisgICAgICAgIEZvciBleGFtcGxlLCBgWzEsMiwzXS5mb3JFYWNoKGNvbnNvbGUubG9nKWAgYW5k
IGB2YXIgbG9nID0gY29uc29sZS5sb2c7IGxvZygxKWAKKyAgICAgICAgdXNlZCB0byB0aHJvdyBl
eGNlcHRpb25zIGFuZCBub3cgZG8gbm90LgorCisgICAgICAgIFByZXZpb3VzbHkgY29uc29sZSB3
YXMgYW4gT2JqZWN0L1Byb3RvdHlwZSBwYWlyLCBzbyBmdW5jdGlvbnMgd2VyZSBvbgorICAgICAg
ICBDb25zb2xlUHJvdG90eXBlIChjb25zb2xlLl9fcHJvdG9fXy5sb2cpIGFuZCB0aGV5IG5lZWRl
ZCB0byBiZSBjYWxsZWQKKyAgICAgICAgQ29uc29sZSBvYmplY3RzIGFzIHRoZSBgdGhpc2AgdmFs
dWUuIE5vdywgYGNvbnNvbGVgIGlzIGp1c3QgYSBzdGFuZGFyZAorICAgICAgICBvYmplY3Qgd2l0
aCBhIGJ1bmNoIG9mIGZ1bmN0aW9ucy4gU2luY2UgdGhlcmUgaXMgbm8gY29uc29sZSBwcm90b3R5
cGUgdGhlCisgICAgICAgIGZ1bmN0aW9ucyBjYW4gYmUgcGFzc2VkIGFyb3VuZCBhbmQgY2FsbGVk
IGFzIGV4cGVjdGVkIGFuZCB0aGV5IHdpbGwKKyAgICAgICAganVzdCBkbyB0aGUgcmlnaHQgdGhp
bmcuCisKKyAgICAgICAgRm9yIGNvbXBhdGFiaWxpdHkgd2l0aCBvdGhlciBicm93c2VycywgYGNv
bnNvbGVgIHdhcyBtYWRlIGVudW1lcmFibGUKKyAgICAgICAgb24gdGhlIGdsb2JhbCBvYmplY3Qu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgbmV3IGZpbGVzIGFuZCByZW1v
dmUgb2xkIGZpbGVzLgorCisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgor
ICAgICAgICBBZGQgImNvbnNvbGUiLgorCisgICAgICAgICogcnVudGltZS9Db25zb2xlT2JqZWN0
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQ
cm90b3R5cGUuY3BwLgorICAgICAgICAoSlNDOjpDb25zb2xlT2JqZWN0OjpDb25zb2xlT2JqZWN0
KToKKyAgICAgICAgKEpTQzo6Q29uc29sZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAoSlNDOjp2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKToKKyAgICAgICAg
KEpTQzo6Y29uc29sZUxvZ1dpdGhMZXZlbCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNEZWJ1Zyk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNFcnJvcik6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNMb2cpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9G
dW5jSW5mbyk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNXYXJuKToKKyAgICAgICAg
KEpTQzo6Y29uc29sZVByb3RvRnVuY0NsZWFyKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3Rv
RnVuY0Rpcik6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNEaXJYTUwpOgorICAgICAg
ICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jVGFibGUpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJv
dG9GdW5jVHJhY2UpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KToKKyAg
ICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY0NvdW50KToKKyAgICAgICAgKEpTQzo6Y29uc29s
ZVByb3RvRnVuY1Byb2ZpbGUpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jUHJvZmls
ZUVuZCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KToK
KyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1RpbWUpOgorICAgICAgICAoSlNDOjpjb25z
b2xlUHJvdG9GdW5jVGltZUVuZCk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUaW1l
U3RhbXApOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jR3JvdXApOgorICAgICAgICAo
SlNDOjpjb25zb2xlUHJvdG9GdW5jR3JvdXBDb2xsYXBzZWQpOgorICAgICAgICAoSlNDOjpjb25z
b2xlUHJvdG9GdW5jR3JvdXBFbmQpOgorICAgICAgICBDb25zb2xlIGZ1bmN0aW9ucyBubyBsb25n
ZXIgbmVlZCB0byBjaGVjayBpZiB0aGUgdGhpcyBvYmplY3QgaXMKKyAgICAgICAgYSBDb25zb2xl
IG9iamVjdC4gVGhleSB3aWxsIGFsd2F5cyBqdXN0IHdvcmsgbm93LgorCisgICAgICAgICogcnVu
dGltZS9NYXRoT2JqZWN0LmNwcDoKKyAgICAgICAgKiBydW50aW1lL01hdGhPYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL0NvbnNvbGVPYmplY3QuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuaC4KKyAgICAgICAgKEpTQzo6Q29u
c29sZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6Q29uc29sZU9iamVjdDo6Y3JlYXRl
U3RydWN0dXJlKToKKyAgICAgICAgQ29uc29sZU9iamVjdCBpcyBhIGJhc2ljIG9iamVjdCBsaWtl
IE1hdGhPYmplY3QuCisKKyAgICAgICAgKiBydW50aW1lL0pTQ29uc29sZS5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogcnVudGltZS9KU0NvbnNvbGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBydW50
aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojppbml0KToKKyAgICAgICAgKEpTQzo6
SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICBSZW1vdmUgSlNDb25zb2xl
IC8gQ29uc29sZVByb3RvdHlwZSBpbiBmYXZvciBvZiB0aGUgc2luZ2xlIENvbnNvbGVPYmplY3Qu
CisKIDIwMTYtMDUtMDIgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgVG9UaGlzIHNob3VsZCBiZSBhYmxlIHRvIGJlIGVsaW1pbmF0ZWQgaW4gQ29uc3Rh
bnQgRm9sZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMTVjZmQ1Li5lZWJk
OTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU2OCwxMCArMTU2OCw2IEBA
CiAJCUE1MzM5RUM5MUJCNEI0NjAwMDU0RjAwNSAvKiBIZWFwT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1MzM5RUM4MUJCNEI0NTEwMDU0
RjAwNSAvKiBIZWFwT2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNTM5OEZBQjFDNzUwREE0MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTM5OEZB
QTFDNzUwRDk1MDA2MEE5NjMgLyogSGVhcFByb2ZpbGVyLmggKi87IH07CiAJCUE1Mzk4RkFDMUM3
NTBEQTYwMDYwQTk2MyAvKiBIZWFwUHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzOThGQTkxQzc1MEQ5NTAwNjBBOTYzIC8qIEhlYXBQ
cm9maWxlci5jcHAgKi87IH07Ci0JCUE1M0NFMDg1MThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xl
UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE1M0NFMDgxMThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90eXBlLmNwcCAqLzsg
fTsKLQkJQTUzQ0UwODYxOEJDMUE1NjAwQkVERjc2IC8qIENvbnNvbGVQcm90b3R5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1M0NFMDgyMThCQzFB
NTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90eXBlLmggKi87IH07Ci0JCUE1M0NFMDg3MThCQzFB
NTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTUzQ0UwODMxOEJDMUE1NjAwQkVERjc2IC8qIEpTQ29uc29sZS5j
cHAgKi87IH07Ci0JCUE1M0NFMDg4MThCQzFBNTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1M0NFMDg0MThCQzFB
NTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuaCAqLzsgfTsKIAkJQTUzQ0UwOEExOEJDMjFDMzAwQkVE
Rjc2IC8qIENvbnNvbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE1M0NFMDg5MThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTUzRjFB
QzAxOEM5MEY4RjAwNzJFQjZEIC8qIGZyYW1ld29yay5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTUzRjFBQkUxOEM5MEVDNzAwNzJFQjZEIC8qIGZy
YW1ld29yay5zYiAqLzsgfTsKIAkJQTU0OTgyMDMxODkxRDBCMDAwODFFNUI4IC8qIEV2ZW50TG9v
cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTQ5
ODIwMTE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29wLmNwcCAqLzsgfTsKQEAgLTE1ODksNiAr
MTU4NSw4IEBACiAJCUE1NTE2NUQ1MUJERjEzNUEwMDNCNzVDMSAvKiBTY3JpcHRQcm9maWxpbmdT
Y29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1
MTY1RDQxQkRGMTM0RDAwM0I3NUMxIC8qIFNjcmlwdFByb2ZpbGluZ1Njb3BlLmggKi87IH07CiAJ
CUE1NTJDMzdGMUFEREI4RkUwMDEzOTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTUyQzM3RDFBRERCOEZF
MDAxMzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuY3BwICovOyB9OwogCQlBNTUyQzM4MDFBRERC
OEZFMDAxMzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NTJDMzdFMUFEREI4RkUwMDEzOTcyNiAvKiBKU1Jl
bW90ZUluc3BlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUE1NTcxNEJFMUNEODA0OUYwMDA0RDJDNiAvKiBDb25zb2xlT2JqZWN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTU3MTRCRDFDRDgw
NDhFMDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5oICovOyB9OworCQlBNTU3MTRCRjFDRDgwNEE0
MDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNTU3MTRCQzFDRDgwNDhFMDAwNEQyQzYgLyogQ29uc29sZU9i
amVjdC5jcHAgKi87IH07CiAJCUE1NUQ5M0E1MTg1MDEyQTgwMDQwMERFRCAvKiBTY3JpcHRGdW5j
dGlvbkNhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTU1RDkzQTMxODUwMTJBODAwNDAwREVEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5jcHAgKi87
IH07CiAJCUE1NUQ5M0E2MTg1MDEyQTgwMDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NUQ5M0E0MTg1
MDEyQTgwMDQwMERFRCAvKiBTY3JpcHRGdW5jdGlvbkNhbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNTVEOTNBQzE4NTE0Rjc5MDA0MDBERUQg
LyogSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTU1RDkzQUIxODUxNEY3OTAwNDAwREVEIC8qIEluc3BlY3RvclBy
b3RvY29sVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMzc4OSwxMCArMzc4Nyw2IEBACiAJCUE1MzM5RUM4MUJCNEI0NTEwMDU0RjAwNSAv
KiBIZWFwT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGVhcE9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1Mzk4RkE5MUM3NTBEOTUw
MDYwQTk2MyAvKiBIZWFwUHJvZmlsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSGVhcFByb2ZpbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTUzOThGQUExQzc1MEQ5NTAwNjBBOTYzIC8qIEhlYXBQcm9maWxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwUHJvZmlsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQTUzQ0UwODExOEJDMUE1NjAwQkVERjc2IC8qIENvbnNvbGVQcm90b3R5cGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZVByb3RvdHlwZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE1M0NFMDgyMThCQzFBNTYwMEJFREY3
NiAvKiBDb25zb2xlUHJvdG90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbnNvbGVQcm90b3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTUzQ0Uw
ODMxOEJDMUE1NjAwQkVERjc2IC8qIEpTQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0NvbnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBNTNDRTA4NDE4QkMxQTU2MDBCRURGNzYgLyogSlNDb25zb2xlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNTNDRTA4OTE4QkMyMUMzMDBCRURGNzYgLyogQ29uc29sZUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1M0YxQUJFMThDOTBFQzcwMDcyRUI2RCAvKiBmcmFtZXdvcmsu
c2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gZnJhbWV3b3JrLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTQ5
ODIwMTE4OTFEMEIwMDA4MUU1QjggLyogRXZlbnRMb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50TG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0zODA4LDYgKzM4MDIsOCBAQAogCQlBNTUxNjVENDFCREYxMzREMDAzQjc1QzEgLyog
U2NyaXB0UHJvZmlsaW5nU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0UHJvZmlsaW5nU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1
MkMzN0QxQUREQjhGRTAwMTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVtb3RlSW5zcGVjdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1MkMzN0UxQUREQjhGRTAwMTM5NzI2IC8qIEpTUmVt
b3RlSW5zcGVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUmVtb3Rl
SW5zcGVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE1NTcxNEJDMUNEODA0
OEUwMDA0RDJDNiAvKiBDb25zb2xlT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbnNvbGVPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBNTU3MTRCRDFDRDgwNDhFMDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE1NUQ5M0EzMTg1MDEyQTgwMDQwMERFRCAvKiBTY3JpcHRGdW5jdGlv
bkNhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RnVu
Y3Rpb25DYWxsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU1RDkzQTQxODUw
MTJBODAwNDAwREVEIC8qIFNjcmlwdEZ1bmN0aW9uQ2FsbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JpcHRGdW5jdGlvbkNhbGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTU1RDkzQUIxODUxNEY3OTAwNDAwREVEIC8qIEluc3BlY3RvclByb3RvY29sVHlw
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yUHJvdG9jb2xU
eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTU1NCw4ICs1NTUwLDggQEAK
IAkJCQkwRkRCMkNFOTE3NDg5NkM3MDA3QjNDMUIgLyogQ29uY3VycmVudEpJVExvY2suaCAqLywK
IAkJCQlBNUI2QTc0QzE4QzZEQkE2MDBGMTFFOTEgLyogQ29uc29sZUNsaWVudC5jcHAgKi8sCiAJ
CQkJQTUzQ0UwODkxOEJDMjFDMzAwQkVERjc2IC8qIENvbnNvbGVDbGllbnQuaCAqLywKLQkJCQlB
NTNDRTA4MTE4QkMxQTU2MDBCRURGNzYgLyogQ29uc29sZVByb3RvdHlwZS5jcHAgKi8sCi0JCQkJ
QTUzQ0UwODIxOEJDMUE1NjAwQkVERjc2IC8qIENvbnNvbGVQcm90b3R5cGUuaCAqLywKKwkJCQlB
NTU3MTRCQzFDRDgwNDhFMDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5jcHAgKi8sCisJCQkJQTU1
NzE0QkQxQ0Q4MDQ4RTAwMDREMkM2IC8qIENvbnNvbGVPYmplY3QuaCAqLywKIAkJCQlBNUZEMDA3
MTE4OUIwMzhDMDA2MzMyMzEgLyogQ29uc29sZVR5cGVzLmggKi8sCiAJCQkJMEY5NzhCM0ExQUFF
QTcxRDAwN0M3MzY5IC8qIENvbnN0YW50TW9kZS5jcHAgKi8sCiAJCQkJMEZGQzk5RDAxODRFQzhB
RDAwOUMxMEFCIC8qIENvbnN0YW50TW9kZS5oICovLApAQCAtNTcwNiw4ICs1NzAyLDYgQEAKIAkJ
CQlGNjkyQTg4NzAyNTU1OTdEMDFGRjYwRjcgLyogSlNDSlNWYWx1ZS5jcHAgKi8sCiAJCQkJMTRB
QkIzNkUwOTlDMDc2NDAwRTJBMjRGIC8qIEpTQ0pTVmFsdWUuaCAqLywKIAkJCQk4NjVBMzBGMDEz
NTAwN0UxMDBDREI0OUUgLyogSlNDSlNWYWx1ZUlubGluZXMuaCAqLywKLQkJCQlBNTNDRTA4MzE4
QkMxQTU2MDBCRURGNzYgLyogSlNDb25zb2xlLmNwcCAqLywKLQkJCQlBNTNDRTA4NDE4QkMxQTU2
MDBCRURGNzYgLyogSlNDb25zb2xlLmggKi8sCiAJCQkJMEYyQjY2QkQxN0I2QjVBQjAwQTdBRTNG
IC8qIEpTRGF0YVZpZXcuY3BwICovLAogCQkJCTBGMkI2NkJFMTdCNkI1QUIwMEE3QUUzRiAvKiBK
U0RhdGFWaWV3LmggKi8sCiAJCQkJMEYyQjY2QkYxN0I2QjVBQjAwQTdBRTNGIC8qIEpTRGF0YVZp
ZXdQcm90b3R5cGUuY3BwICovLApAQCAtNzEzMCw3ICs3MTI0LDYgQEAKIAkJCQkxNDQ4MzZFNzEz
MkRBN0JFMDA1QkU3ODUgLyogQ29uc2VydmF0aXZlUm9vdHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE1M0NFMDhBMThCQzIxQzMwMEJFREY3NiAvKiBDb25zb2xlQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNUZEMDA3QTE4OUIwNTEwMDA2MzMyMzEgLyogQ29uc29sZU1lc3NhZ2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUE1M0NFMDg2MThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUZEMDA3NDE4OUIwMzhDMDA2MzMyMzEgLyogQ29u
c29sZVR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZDOTlEMTE4NEVDOEFEMDA5QzEwQUIg
LyogQ29uc3RhbnRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzU0NjIyQjFCNjA2NUQxMDA1
NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCkBAIC03NTgxLDYgKzc1
NzQsNyBAQAogCQkJCUE1Mzk4RkFCMUM3NTBEQTQwMDYwQTk2MyAvKiBIZWFwUHJvZmlsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNTg3RDcyMUI0REMxNDEwMEQ2OTg0OSAvKiBJbnRsRGF0ZVRp
bWVGb3JtYXRQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTg3RDc2MUI0REMxQzYw
MEQ2OTg0OSAvKiBJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUubHV0LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBNTU3MTRCRTFDRDgwNDlGMDAwNEQyQzYgLyogQ29uc29sZU9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTFENzkyRkQxQjQzODY0QjAwNDUxNkY1IC8qIEludGxOdW1iZXJGb3Jt
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRDc5MkZGMUI0Mzg2NEIwMDQ1MTZGNSAvKiBJbnRs
TnVtYmVyRm9ybWF0Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMjU4NDZFMUI0
NUEzNjAwMENDN0Y2QyAvKiBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IubHV0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTc2MzYsNyArNzYzMCw2IEBACiAJCQkJQkMxOEM0MkIwRTE2RjVDRDAwQjM0
NDYwIC8qIEpTQ0pTVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2NUEzMEYxMTM1MDA3RTEw
MENEQjQ5RSAvKiBKU0NKU1ZhbHVlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
MUQwRTE2RjVDRDAwQjM0NDYwIC8qIEpTQ2xhc3NSZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCUE1
M0NFMDg4MThCQzFBNTYwMEJFREY3NiAvKiBKU0NvbnNvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RTNDNjEzMTY3QkFCRDcwMDZENzYwQSAvKiBKU0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg2RTNDNjE3MTY3QkFCRUUwMDZENzYwQSAvKiBKU0NvbnRleHRJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTU4QzAyNDIxOEU0QTQxQTAwMDMyQkM1IC8qIEpTQ29udGV4dFByaXZh
dGUuaCBpbiBIZWFkZXJzICovLApAQCAtODY3NCw2ICs4NjY3LDcgQEAKIAkJCQkwRkVDODUxRjFC
REFDREFDMDA4MEZGNzQgLyogQjNNZW1vcnlWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkVDODUyMTFCREFDREFDMDA4MEZGNzQgLyogQjNPcGNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZFQzg1MjMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzT3JpZ2luLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE1NTcxNEJGMUNEODA0QTQwMDA0RDJDNiAvKiBDb25zb2xlT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRUM4NTI1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRT
cGVjaWFsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTI3MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM1BhdGNocG9pbnRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUyOTFCREFD
REFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtODczOCw3
ICs4NzMyLDYgQEAKIAkJCQkxNDZCMTZEODEyRUI1QjU5MDAxQkVDMUIgLyogQ29uc2VydmF0aXZl
Um9vdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVCNkE3NEQxOEM2REJBNjAwRjExRTkxIC8q
IENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwNzkxODlCMDUxMDAw
NjMzMjMxIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE1M0NFMDg1
MThCQzFBNTYwMEJFREY3NiAvKiBDb25zb2xlUHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGOTc4QjNCMUFBRUE3MUQwMDdDNzM2OSAvKiBDb25zdGFudE1vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQyODA4MkUxMDdFQzA1NzAwMTNFN0IyIC8qIENvbnN0cnVjdERhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRjExODkxQjVCNDAwMzFDN0ZBIC8qIENvbnRlbnRT
ZWFyY2hVdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MDkyLDcgKzkwODUsNiBAQAog
CQkJCTE0N0YzOUQxMTA3RUMzNzYwMDQyN0E0OCAvKiBKU0NlbGwuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQ3RjM5RDYxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTQ0pTVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMTQ0MEZDRTQwQTUxRTQ2QjAwMDVGMDYxIC8qIEpTQ2xhc3NSZWYuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTUzQ0UwODcxOEJDMUE1NjAwQkVERjc2IC8qIEpTQ29uc29sZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4NkUzQzYxNjE2N0JBQkVFMDA2RDc2MEEgLyogSlNDb250
ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRCRDVBMzAwQTNFOTFGNjAwQkFGNTlDIC8qIEpT
Q29udGV4dFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzIwMjhCNjE3OTc2MDFFMDA5ODAy
OEMgLyogSlNDVGVzdFJ1bm5lclV0aWxzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgKaW5kZXggMmIxZWQ2
MC4uMDc1NjM0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21t
b25JZGVudGlmaWVycy5oCkBAIC0xMjksNiArMTI5LDcgQEAKICAgICBtYWNybyhjb21waWxhdGlv
bnMpIFwKICAgICBtYWNybyhjb21waWxlKSBcCiAgICAgbWFjcm8oY29uZmlndXJhYmxlKSBcCisg
ICAgbWFjcm8oY29uc29sZSkgXAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8o
Y291bnQpIFwKICAgICBtYWNybyhjb3VudGVycykgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcApzaW1pbGFyaXR5IGluZGV4IDcxJQpyZW5h
bWUgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNw
cApyZW5hbWUgdG8gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5j
cHAKaW5kZXggZjE4NWZlZi4uMTNiYjM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjQsMTkgKzI0LDE3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbnNvbGVQcm90b3R5cGUuaCIKKyNpbmNsdWRl
ICJDb25zb2xlT2JqZWN0LmgiCiAKICNpbmNsdWRlICJDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiRXJyb3IuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25IZWxwZXJzLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgotI2luY2x1ZGUgIkpTQ29uc29sZS5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKIAogbmFtZXNwYWNl
IEpTQyB7CiAKLWNvbnN0IENsYXNzSW5mbyBDb25zb2xlUHJvdG90eXBlOjpzX2luZm8gPSB7ICJD
b25zb2xlUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShD
b25zb2xlUHJvdG90eXBlKSB9OworU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJ
QkxFKENvbnNvbGVPYmplY3QpOwogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBjb25zb2xlUHJvdG9GdW5jRGVidWcoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jRXJyb3IoRXhlY1N0YXRlKik7CkBAIC02
MCwxMSArNTgsMTcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY0dyb3VwKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkKEV4ZWNTdGF0ZSopOwogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5k
KEV4ZWNTdGF0ZSopOwogCi12b2lkIENvbnNvbGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK2NvbnN0IENsYXNzSW5mbyBDb25z
b2xlT2JqZWN0OjpzX2luZm8gPSB7ICJDb25zb2xlIiwgJkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShDb25zb2xlT2JqZWN0KSB9OworCitDb25zb2xlT2JqZWN0OjpDb25zb2xl
T2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCisgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KHZtLCBzdHJ1Y3R1cmUpCit7Cit9CisKK3ZvaWQgQ29uc29sZU9iamVjdDo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogewogICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7Ci0gICAg
dm0ucHJvdG90eXBlTWFwLmFkZFByb3RvdHlwZSh0aGlzKTsKIAogICAgIC8vIEZvciBsZWdhY3kg
cmVhc29ucywgY29uc29sZSBwcm9wZXJ0aWVzIGFyZSBlbnVtZXJhYmxlLCB3cml0YWJsZSwgZGVs
ZXRlYWJsZSwKICAgICAvLyBhbmQgYWxsIGhhdmUgYSBsZW5ndGggb2YgMC4gVGhpcyBtYXkgY2hh
bmdlIGlmIENvbnNvbGUgaXMgc3RhbmRhcmRpemVkLgpAQCAtNzUsMTMgKzc5LDEzIEBAIHZvaWQg
Q29uc29sZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJpbmZvIiwgY29uc29sZVByb3RvRnVuY0luZm8sIE5vbmUsIDApOwogICAgIEpTQ19OQVRJVkVf
RlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ3YXJuIiwgY29uc29sZVByb3RvRnVuY1dhcm4s
IE5vbmUsIDApOwogCi0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
ImNsZWFyIiwgY29uc29sZVByb3RvRnVuY0NsZWFyLCBOb25lLCAwKTsKKyAgICBKU0NfTkFUSVZF
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5jbGVhciwgY29u
c29sZVByb3RvRnVuY0NsZWFyLCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiZGlyIiwgY29uc29sZVByb3RvRnVuY0RpciwgTm9uZSwgMCk7CiAg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImRpcnhtbCIsIGNvbnNv
bGVQcm90b0Z1bmNEaXJYTUwsIE5vbmUsIDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lU
SE9VVF9UUkFOU0lUSU9OKCJ0YWJsZSIsIGNvbnNvbGVQcm90b0Z1bmNUYWJsZSwgTm9uZSwgMCk7
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRyYWNlIiwgY29u
c29sZVByb3RvRnVuY1RyYWNlLCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJ
VEhPVVRfVFJBTlNJVElPTigiYXNzZXJ0IiwgY29uc29sZVByb3RvRnVuY0Fzc2VydCwgTm9uZSwg
MCk7Ci0gICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImNvdW50Iiwg
Y29uc29sZVByb3RvRnVuY0NvdW50LCBOb25lLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9O
X1dJVEhPVVRfVFJBTlNJVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5jb3VudCwgY29uc29sZVByb3Rv
RnVuY0NvdW50LCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigicHJvZmlsZSIsIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlLCBOb25lLCAwKTsKICAg
ICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigicHJvZmlsZUVuZCIsIGNv
bnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kLCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNU
SU9OX1dJVEhPVVRfVFJBTlNJVElPTigidGltZSIsIGNvbnNvbGVQcm90b0Z1bmNUaW1lLCBOb25l
LCAwKTsKQEAgLTEwMiwxMSArMTA2LDcgQEAgc3RhdGljIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0
aFVuZGVmaW5lZE9yTnVsbENoZWNrKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWwKIAogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGNvbnNvbGVMb2dXaXRoTGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRU
aGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBD
b25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29s
ZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0xNDIsMTEgKzE0Miw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNX
YXJuKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNv
bGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1
ZSgpKTsKLSAgICBpZiAoIWNhc3RlZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlND
b25zb2xlOjppbmZvKCkpOwotICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xp
ZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAg
aWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7CiAKQEAgLTE1NywxMSArMTUzLDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgY29uc29sZVByb3RvRnVuY0NsZWFyKEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0RpcihFeGVjU3RhdGUq
IGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0Nv
bnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50
KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwor
ICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0xNzIsMTEgKzE2NCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNEaXIoRXhlY1N0YXRl
KiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJv
dG9GdW5jRGlyWE1MKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLSAgICBp
ZiAoIWNhc3RlZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwot
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZv
KCkpOwotICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVj
dCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTE4
NywxMSArMTc1LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY0RpclhNTChFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWJsZShFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihl
eGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNh
c3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQg
PSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOworICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNs
aWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogCkBAIC0yMDIsMTEgKzE4Niw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWJsZShFeGVjU3RhdGUqIGV4ZWMp
CiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNU
cmFjZShFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0
ZWRUaGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAg
ICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29u
c29sZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC0yMTcsMTEgKzE5
Nyw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1
bmNUcmFjZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpT
Q29uc29sZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhp
c1ZhbHVlKCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlz
LCBKU0NvbnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2FzdGVk
VGhpcy0+Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xpZW50
KiBjbGllbnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsK
ICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIApAQCAtMjM2LDExICsyMTIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSogZXhlYykKIAogc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50KEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLSAgICBpZiAoIWNhc3RlZFRoaXMp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwotICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xp
ZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTI1MSwxMSArMjIzLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50
KEV4ZWNTdGF0ZSogZXhlYykKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY1Byb2ZpbGUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTQ29uc29s
ZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVl
KCkpOwotICAgIGlmICghY2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJy
b3IoZXhlYyk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0Nv
bnNvbGU6OmluZm8oKSk7Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2FzdGVkVGhpcy0+
Z2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xpZW50KiBjbGll
bnQgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBp
ZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIApAQCAtMjc1LDExICsyNDMsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEV4
ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLSAgICBpZiAoIWNhc3RlZFRoaXMp
Ci0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwotICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xp
ZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTI5OSwxMSArMjYzLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2Zp
bGVFbmQoRXhlY1N0YXRlKiBleGVjKQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jVGFrZUhlYXBTbmFwc2hvdChFeGVjU3RhdGUqIGV4ZWMpCiB7
Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihl
eGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNh
c3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQg
PSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOworICAgIENvbnNv
bGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNs
aWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogCkBAIC0zMjMsMTEgKzI4Myw3IEBAIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEV4ZWNT
dGF0ZSoKIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY1RpbWUoRXhlY1N0YXRlKiBleGVjKQogewotICAgIEpTQ29uc29sZSogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICgh
Y2FzdGVkVGhpcykKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7Ci0gICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU0NvbnNvbGU6OmluZm8oKSk7
Ci0gICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkt
PmNvbnNvbGVDbGllbnQoKTsKKyAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPmNvbnNvbGVDbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIApAQCAtMzQ0LDEx
ICszMDAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJv
dG9GdW5jVGltZShFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAg
ICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMt
PnRoaXNWYWx1ZSgpKTsKLSAgICBpZiAoIWNhc3RlZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVk
VGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwotICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNh
c3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNs
aWVudCogY2xpZW50ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50
KCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNV
bmRlZmluZWQoKSk7CiAKQEAgLTM2NSwxMSArMzE3LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQoRXhlY1N0YXRlKiBleGVjKQog
CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGlt
ZVN0YW1wKEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKLSAgICBpZiAoIWNh
c3RlZFRoaXMpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOwotICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOwot
ICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLT5j
b25zb2xlQ2xpZW50KCk7CisgICAgQ29uc29sZUNsaWVudCogY2xpZW50ID0gZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CiAgICAgaWYgKCFjbGllbnQpCiAgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKQEAgLTM4MCwxMSAr
MzI4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY1RpbWVTdGFtcChFeGVjU3RhdGUqIGV4ZWMpCiAKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0g
ICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVj
LT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3Rl
ZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBj
YXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOworICAgIENvbnNvbGVD
bGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVu
dCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwogCkBAIC0zOTUsMTEgKzMzOSw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cChFeGVjU3RhdGUqIGV4ZWMpCiAK
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91
cENvbGxhcHNlZChFeGVjU3RhdGUqIGV4ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYg
KCFjYXN0ZWRUaGlzKQotICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygp
KTsKLSAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3Qo
KS0+Y29uc29sZUNsaWVudCgpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC00MTAs
MTEgKzM1MCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNHcm91cENvbGxhcHNlZChFeGVjU3RhdGUqIGV4CiAKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNHcm91cEVuZChFeGVjU3RhdGUqIGV4
ZWMpCiB7Ci0gICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNv
bGUqPihleGVjLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKCFjYXN0ZWRUaGlzKQotICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5mbygpKTsKLSAgICBDb25zb2xlQ2xpZW50KiBj
bGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKS0+Y29uc29sZUNsaWVudCgpOworICAg
IENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+Y29u
c29sZUNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogCkBAIC00MjMsNCArMzU5LDQgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0dyb3VwRW5kKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
Ci19Cit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbnNvbGVPYmplY3QuaApzaW1pbGFyaXR5IGluZGV4IDczJQpyZW5hbWUgZnJvbSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmgKcmVuYW1lIHRvIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVPYmplY3QuaAppbmRleCBhMjdhZDI0
Li4xZDBlNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25z
b2xlUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29s
ZU9iamVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIzLDM5ICsyMywzNSBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVm
IENvbnNvbGVQcm90b3R5cGVfaAotI2RlZmluZSBDb25zb2xlUHJvdG90eXBlX2gKKyNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNsYXNz
IENvbnNvbGVQcm90b3R5cGUgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CitjbGFzcyBDb25z
b2xlT2JqZWN0IDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgeworcHJpdmF0ZToKKyAgICBDb25z
b2xlT2JqZWN0KFZNJiwgU3RydWN0dXJlKik7CisKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9u
RmluYWxPYmplY3QgQmFzZTsKIAorICAgIHN0YXRpYyBDb25zb2xlT2JqZWN0KiBjcmVhdGUoVk0m
IHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
KyAgICB7CisgICAgICAgIENvbnNvbGVPYmplY3QqIG9iamVjdCA9IG5ldyAoTm90TnVsbCwgYWxs
b2NhdGVDZWxsPENvbnNvbGVPYmplY3Q+KHZtLmhlYXApKSBDb25zb2xlT2JqZWN0KHZtLCBzdHJ1
Y3R1cmUpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3Qp
OworICAgICAgICByZXR1cm4gb2JqZWN0OworICAgIH0KKwogICAgIERFQ0xBUkVfSU5GTzsKIAot
ICAgIHN0YXRpYyBDb25zb2xlUHJvdG90eXBlKiBjcmVhdGUoVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgICAgIENv
bnNvbGVQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPENv
bnNvbGVQcm90b3R5cGU+KHZtLmhlYXApKSBDb25zb2xlUHJvdG90eXBlKHZtLCBzdHJ1Y3R1cmUp
OwotICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKHZtLCBnbG9iYWxPYmplY3QpOwot
ICAgICAgICByZXR1cm4gcHJvdG90eXBlOwotICAgIH0KLQogICAgIHN0YXRpYyBTdHJ1Y3R1cmUq
IGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRl
KHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBpbmZvKCkpOwogICAgIH0KIAotcHJpdmF0ZToKLSAgICBDb25zb2xlUHJvdG90
eXBlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQotICAgIHsKLSAgICB9Citwcm90ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlv
bihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CiB9OwogCi19Ci0KLSNlbmRpZiAvLyAhZGVmaW5lZChD
b25zb2xlUHJvdG90eXBlX2gpCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ29uc29sZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0NvbnNvbGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3ZDA0YWJmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q29uc29sZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkpTQ29uc29sZS5oIgotCi0jaW5jbHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKLSNp
bmNsdWRlICJTdHJ1Y3R1cmVJbmxpbmVzLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1jb25zdCBD
bGFzc0luZm8gSlNDb25zb2xlOjpzX2luZm8gPSB7ICJDb25zb2xlIiwgJkJhc2U6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0NvbnNvbGUpIH07Ci0KLX0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ29uc29sZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDb25zb2xlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRlNjExZWMuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
b25zb2xlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBKU0NvbnNvbGVfaAotI2RlZmlu
ZSBKU0NvbnNvbGVfaAotCi0jaW5jbHVkZSAiSlNPYmplY3QuaCIKLQotbmFtZXNwYWNlIEpTQyB7
Ci0KLWNsYXNzIEpTQ29uc29sZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoK
LSAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLQotICAgIERFQ0xBUkVfRVhQT1JU
X0lORk87Ci0KLSAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9
Ci0KLSAgICBzdGF0aWMgSlNDb25zb2xlKiBjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKLSAgICB7Ci0gICAgICAgIEpTQ29uc29sZSogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGws
IGFsbG9jYXRlQ2VsbDxKU0NvbnNvbGU+KHZtLmhlYXApKSBKU0NvbnNvbGUodm0sIHN0cnVjdHVy
ZSk7Ci0gICAgICAgIGluc3RhbmNlLT5maW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgICAgIHJldHVy
biBpbnN0YW5jZTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlNDb25zb2xlKiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBj
cmVhdGUoZXhlYy0+dm0oKSwgc3RydWN0dXJlKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgSlND
b25zb2xlKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogQmFzZSh2bSwg
c3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci19OwotCi19Ci0KLSNlbmRpZiAvLyAhZGVmaW5lZChK
U0NvbnNvbGVfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcAppbmRleCA3ZGU5MjYwLi5iYmJkMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0zOSw3ICszOSw3IEBACiAj
aW5jbHVkZSAiQ2xvbmVkQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5j
bHVkZSAiQ29kZUNhY2hlLmgiCi0jaW5jbHVkZSAiQ29uc29sZVByb3RvdHlwZS5oIgorI2luY2x1
ZGUgIkNvbnNvbGVPYmplY3QuaCIKICNpbmNsdWRlICJEYXRlQ29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJEYXRlUHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiRGVidWdnZXIuaCIKQEAgLTcwLDcgKzcw
LDYgQEAKICNpbmNsdWRlICJKU0NhbGxiYWNrQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0Nh
bGxiYWNrRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiSlNDb25zb2xlLmgiCiAjaW5jbHVkZSAiSlNEYXRhVmlldy5oIgogI2luY2x1ZGUgIkpTRGF0
YVZpZXdQcm90b3R5cGUuaCIKICNpbmNsdWRlICJKU0RvbGxhclZNLmgiCkBAIC00OTgsNiArNDk3
LDggQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBq
c05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICBSZWZsZWN0T2JqZWN0KiByZWZsZWN0
T2JqZWN0ID0gUmVmbGVjdE9iamVjdDo6Y3JlYXRlKHZtLCB0aGlzLCBSZWZsZWN0T2JqZWN0Ojpj
cmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CiAgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlJlZmxlY3Qs
IHJlZmxlY3RPYmplY3QsIERvbnRFbnVtKTsKIAorICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0
aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zb2xlLCBDb25zb2xlT2JqZWN0OjpjcmVhdGUo
dm0sIHRoaXMsIENvbnNvbGVPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9vYmpl
Y3RQcm90b3R5cGUuZ2V0KCkpKSk7CisKICAgICBKU1R5cGVkQXJyYXlWaWV3Q29uc3RydWN0b3Iq
IHR5cGVkQXJyYXlTdXBlckNvbnN0cnVjdG9yID0gSlNUeXBlZEFycmF5Vmlld0NvbnN0cnVjdG9y
OjpjcmVhdGUodm0sIHRoaXMsIEpTVHlwZWRBcnJheVZpZXdDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCB0aGlzLCBtX2Z1bmN0aW9uUHJvdG90eXBlLmdldCgpKSwgdHlwZWRBcnJheVBy
b3RvLCBzcGVjaWVzR2V0dGVyU2V0dGVyKTsKICAgICB0eXBlZEFycmF5UHJvdG8tPnB1dERpcmVj
dFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb25zdHJ1Y3RvciwgdHlw
ZWRBcnJheVN1cGVyQ29uc3RydWN0b3IsIERvbnRFbnVtKTsKIApAQCAtNjczLDExICs2NzQsNiBA
QCBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFt
ZSwgbG93ZXJOYW1lICMjIENvbnN0cnVjdAogCiAgICAgbV9saW5rVGltZUNvbnN0YW50c1tzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oTGlua1RpbWVDb25zdGFudDo6RGVmaW5lUHJvcGVydHlGdW5jdGlv
bildID0gbV9kZWZpbmVQcm9wZXJ0eUZ1bmN0aW9uLmdldCgpOwogCi0gICAgQ29uc29sZVByb3Rv
dHlwZSogY29uc29sZVByb3RvdHlwZSA9IENvbnNvbGVQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGhp
cywgQ29uc29sZVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtX29iamVjdFBy
b3RvdHlwZS5nZXQoKSkpOwotICAgIG1fY29uc29sZVN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpT
Q29uc29sZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBjb25zb2xlUHJvdG90eXBlKSk7Ci0g
ICAgSlNDb25zb2xlKiBjb25zb2xlT2JqZWN0ID0gSlNDb25zb2xlOjpjcmVhdGUodm0sIG1fY29u
c29sZVN0cnVjdHVyZS5nZXQoKSk7Ci0gICAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0s
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImNvbnNvbGUiKSwgY29uc29sZU9iamVjdCwg
RG9udEVudW0pOwotCiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZURvbGxhclZNKCkpKSB7
CiAgICAgICAgIEpTRG9sbGFyVk1Qcm90b3R5cGUqIGRvbGxhclZNUHJvdG90eXBlID0gSlNEb2xs
YXJWTVByb3RvdHlwZTo6Y3JlYXRlKHZtLCB0aGlzLCBKU0RvbGxhclZNUHJvdG90eXBlOjpjcmVh
dGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fb2JqZWN0UHJvdG90eXBlLmdldCgpKSk7CiAgICAgICAg
IG1fZG9sbGFyVk1TdHJ1Y3R1cmUuc2V0KHZtLCB0aGlzLCBKU0RvbGxhclZNOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHRoaXMsIGRvbGxhclZNUHJvdG90eXBlKSk7CkBAIC0xMDAwLDcgKzk5Niw2IEBA
IHZvaWQgSlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90Vmlz
aXRvciYgdmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9yZWdFeHBN
YXRjaGVzQXJyYXlTbG93UHV0U3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV9tb2R1bGVSZWNvcmRTdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlz
T2JqZWN0LT5tX21vZHVsZU5hbWVzcGFjZU9iamVjdFN0cnVjdHVyZSk7Ci0gICAgdmlzaXRvci5h
cHBlbmQoJnRoaXNPYmplY3QtPm1fY29uc29sZVN0cnVjdHVyZSk7CiAgICAgdmlzaXRvci5hcHBl
bmQoJnRoaXNPYmplY3QtPm1fZG9sbGFyVk1TdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5k
KCZ0aGlzT2JqZWN0LT5tX2ludGVybmFsRnVuY3Rpb25TdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3Iu
YXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3Byb3h5T2JqZWN0U3RydWN0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGQ4NDg5MGEuLjhi
YjE0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmpl
Y3QuaApAQCAtMjgxLDcgKzI4MSw2IEBAIHByb3RlY3RlZDoKICAgICBXcml0ZUJhcnJpZXI8U3Ry
dWN0dXJlPiBtX3ByaXZhdGVOYW1lU3RydWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1
cmU+IG1fcmVnRXhwU3RydWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZ2Vu
ZXJhdG9yRnVuY3Rpb25TdHJ1Y3R1cmU7Ci0gICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9j
b25zb2xlU3RydWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fZG9sbGFyVk1T
dHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9pbnRlcm5hbEZ1bmN0aW9u
U3RydWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1faXRlcmF0b3JSZXN1bHRP
YmplY3RTdHJ1Y3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9NYXRoT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmpl
Y3QuY3BwCmluZGV4IDY2ZDMxYjcuLjNmOWE4ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01hdGhPYmplY3QuY3BwCkBAIC02OSwxMCArNjksNiBAQCBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW4oRXhlY1N0YXRlKik7CiBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIG1hdGhQcm90b0Z1bmNUYW5oKEV4ZWNTdGF0ZSopOwogRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBtYXRoUHJvdG9GdW5jSU11bChFeGVjU3RhdGUqKTsKIAot
fQotCi1uYW1lc3BhY2UgSlNDIHsKLQogY29uc3QgQ2xhc3NJbmZvIE1hdGhPYmplY3Q6OnNfaW5m
byA9IHsgIk1hdGgiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKE1hdGhP
YmplY3QpIH07CiAKIE1hdGhPYmplY3Q6Ok1hdGhPYmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhP
YmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hdGhPYmplY3QuaAppbmRl
eCAxYTEzM2Q1Li5iNmU5ZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWF0
aE9iamVjdC5oCkBAIC0zMSw3ICszMSw2IEBAIHByaXZhdGU6CiAKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdDsKIAogICAgIHN0YXRpYyBNYXRoT2JqZWN0KiBjcmVhdGUoVk0mIHZtLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>