<?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>187565</bug_id>
          
          <creation_ts>2018-07-11 14:52:38 -0700</creation_ts>
          <short_desc>Add a FrameLoaderClient willInjectUserScriptForFrame callback</short_desc>
          <delta_ts>2018-07-13 09:19:38 -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>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>realdawei</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1441261</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-11 14:52:38 -0700</bug_when>
    <thetext>Add a FrameLoaderClient willInjectUserScriptForFrame callback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441262</commentid>
    <comment_count>1</comment_count>
      <attachid>344783</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-11 15:02:20 -0700</bug_when>
    <thetext>Created attachment 344783
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441274</commentid>
    <comment_count>2</comment_count>
      <attachid>344786</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-11 16:30:36 -0700</bug_when>
    <thetext>Created attachment 344786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441277</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-11 16:33:52 -0700</bug_when>
    <thetext>Attachment 344786 did not pass style-queue:


ERROR: Source/WebCore/loader/FrameLoaderClient.h:335:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441279</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-11 16:40:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/42095701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441321</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-07-11 18:02:56 -0700</bug_when>
    <thetext>What&apos;s the use case for this new API callback?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441325</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-11 18:14:48 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; What&apos;s the use case for this new API callback?

Apps on top of WebKit can currently rely on globalObjectIsAvailableForFrame to properly initialize worlds.
globalObjectIsAvailableForFrame is called at the time of receiving the first page byte.
This works well if the world is created before that, it fails otherwise and may lead to executing scripts in worlds that are not properly set up.

This new callback allows to properly set up worlds just before executing a user script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441557</commentid>
    <comment_count>7</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2018-07-12 10:17:49 -0700</bug_when>
    <thetext>It looks like this doesn’t apply cleanly after https://trac.webkit.org/changeset/233752/webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441561</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-12 10:23:58 -0700</bug_when>
    <thetext>(In reply to Brian Weinstein from comment #7)
&gt; It looks like this doesn’t apply cleanly after
&gt; https://trac.webkit.org/changeset/233752/webkit.

Yep, the call to this-&gt;loader().client().willInjectUserScript(world); probably needs to be rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441564</commentid>
    <comment_count>9</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2018-07-12 10:25:29 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #8)
&gt; (In reply to Brian Weinstein from comment #7)
&gt; &gt; It looks like this doesn’t apply cleanly after
&gt; &gt; https://trac.webkit.org/changeset/233752/webkit.
&gt; 
&gt; Yep, the call to this-&gt;loader().client().willInjectUserScript(world);
&gt; probably needs to be rebased.

It should go in Frame::injectUserScriptImmediately, correct? Just for my testing, I have:

void Frame::injectUserScriptImmediately(DOMWrapperWorld&amp; world, const UserScript&amp; script)
{
    auto* document = this-&gt;document();
    if (!document)
        return;
    if (script.injectedFrames() == InjectInTopFrameOnly &amp;&amp; !isMainFrame())
        return;
    if (!UserContentURLPattern::matchesPatterns(document-&gt;url(), script.whitelist(), script.blacklist()))
        return;
    if (m_page)
        m_page-&gt;setAsRunningUserScripts();

    this-&gt;loader().client().willInjectUserScript(world);
    m_script-&gt;evaluateInWorld(ScriptSourceCode(script.source(), script.url()), world);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441584</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-12 11:02:24 -0700</bug_when>
    <thetext>Yes, I ll reupload a new version shortly after linch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441588</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-07-12 11:23:45 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; What&apos;s the use case for this new API callback?

We are currently using globalObjectIsAvailableForFrame to set up things if we have a user script, but if we don&apos;t have a user script then use _addUserScriptImmediately (introduced in r233752) then things won&apos;t be set up when a user script is injected.  Moving the setup to this new callback fixes the problem without compatibility issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441648</commentid>
    <comment_count>12</comment_count>
      <attachid>344874</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-12 13:12:47 -0700</bug_when>
    <thetext>Created attachment 344874
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441649</commentid>
    <comment_count>13</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-07-12 13:15:09 -0700</bug_when>
    <thetext>Attachment 344874 did not pass style-queue:


ERROR: Source/WebCore/loader/FrameLoaderClient.h:335:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441670</commentid>
    <comment_count>14</comment_count>
      <attachid>344874</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-12 14:34:43 -0700</bug_when>
    <thetext>Comment on attachment 344874
Rebasing

Clearing flags on attachment: 344874

Committed r233782: &lt;https://trac.webkit.org/changeset/233782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441671</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-12 14:34:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441860</commentid>
    <comment_count>16</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-13 08:21:13 -0700</bug_when>
    <thetext>Looks like the new test http/tests/contentextensions/injected-script-callback.html
Is crashing constantly on Debug WK2 platforms. 

Test History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2Fcontentextensions%2Finjected-script-callback.html

Link to crash log:
https://build.webkit.org/results/Apple%20High%20Sierra%20Debug%20WK2%20(Tests)/r233795%20(4095)/http/tests/contentextensions/injected-script-callback-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441873</commentid>
    <comment_count>17</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-13 08:45:03 -0700</bug_when>
    <thetext>Thanks truitt, I’ll look at it today</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441879</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-13 09:19:38 -0700</bug_when>
    <thetext>Committed r233799: &lt;https://trac.webkit.org/changeset/233799&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344783</attachid>
            <date>2018-07-11 15:02:20 -0700</date>
            <delta_ts>2018-07-11 16:30:34 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-187565-20180711150219.patch</filename>
            <type>text/plain</type>
            <size>16922</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTFiYmY0ZDUwN2NkMDUw
YTYyZjk1MDkzYzFiMTQxMTY2ZjRmMTU2Zi4uYjk4ODM2ZjI2NDE5YTE3MWQ3OGZiMTlhMzU5ZTUz
NWQxN2NkN2FiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA3LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxvYWRl
ckNsaWVudCB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyB0byBiZSBhZGRlZC4K
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIHBhZ2Uv
RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmluamVjdFVzZXJTY3JpcHRJbW1l
ZGlhdGVseSk6CisgICAgICAgIENhbGxpbmcgdGhlIG5ldyBjYWxsYmFjayB3aGVuZXZlciBiZWlu
ZyBhYm91dCB0byBpbmplY3QgYSBuZXcgc2NyaXB0LgorCiAyMDE4LTA3LTExICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFNQSSBmb3Ig
aW1tZWRpYXRlIGluamVjdGlvbiBvZiB1c2VyIHNjcmlwdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZmU4NjljMWNh
NjAzNzVmMzUxZmIxOWQwZTAyNzk4MjE4MjgwYWFjNi4uN2IxMWUwMDgzNzQ5OTE2OTgzM2M1OGEy
Y2NkYTFhNDBmOTA0ZTU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxOC0wNy0xMSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgRnJhbWVM
b2FkZXJDbGllbnQgd2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZSBjYWxsYmFjaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3NTY1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVE9ETworCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlTG9hZGVyQ2xp
ZW50Ojp3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgIChzZXRVcFBhZ2VMb2FkZXJDbGll
bnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50OjpnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsSW5qZWN0VXNlclNj
cmlwdEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6d2lsbEluamVjdFVzZXJTY3JpcHQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxNy0wNi0x
NCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAg
IEFkZCBTUEkgZm9yIGltbWVkaWF0ZSBpbmplY3Rpb24gb2YgdXNlciBzY3JpcHRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGY3MjI2MTg2NzY3M2I2Yzk3
MjhjOTVjMmExZTRlMjQyZWI3M2M5NTAuLjVlN2EyOWU4Y2Q1NDk3MDhkMzE1ZDA0MGIyMTAxNTdk
ZmU1NWMyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0zMzIsNiArMzMyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
Y29ubmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KERPTVdpbmRvd0V4dGVuc2lv
biopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxEZXN0cm95R2xvYmFsT2JqZWN0
Rm9yRE9NV2luZG93RXh0ZW5zaW9uKERPTVdpbmRvd0V4dGVuc2lvbiopIHsgfQogCisgICAgdmly
dHVhbCB2b2lkIHdpbGxJbmplY3RVc2VyU2NyaXB0KERPTVdyYXBwZXJXb3JsZCYpIHsgfQorCiAj
aWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFN0YXJ0VXNp
bmdQZWVyQ29ubmVjdGlvbkhhbmRsZXIoUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKikgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggZDIzMDkzMDcwMDhjMDk5ZWZiOTZmNTRhODgw
MjRmNGM1Y2M5ZjY2Mi4uMmI4N2Q2MDcxMDUxMTI0MzFiMzllOTA4NjAyNjQ3MjQ2Y2I3ZmRkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTc1MSw2ICs3NTEsNyBAQCB2b2lkIEZyYW1lOjppbmpl
Y3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCwgY29uc3QgVXNl
clNjcmlwdAogICAgICAgICByZXR1cm47CiAgICAgaWYgKG1fcGFnZSkKICAgICAgICAgbV9wYWdl
LT5zZXRBc1J1bm5pbmdVc2VyU2NyaXB0cygpOworICAgIGxvYWRlcigpLmNsaWVudCgpLndpbGxJ
bmplY3RVc2VyU2NyaXB0KHdvcmxkKTsKICAgICBtX3NjcmlwdC0+ZXZhbHVhdGVJbldvcmxkKFNj
cmlwdFNvdXJjZUNvZGUoc2NyaXB0LnNvdXJjZSgpLCBzY3JpcHQudXJsKCkpLCB3b3JsZCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5oCmluZGV4IDU4YzY0ZDIwZDExNjgxYzRkOTQyOWNlMmZhMWNlNDA4ODdhN2I1OTAuLjA4
ZGRiYmVhNzJiZGU3YTY4NmNlNzVjNGY0ZmM5ODY4YzZhZmI0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtODksNiAr
ODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY29ubmVjdERPTVdpbmRvd0V4
dGVuc2lvblRvR2xvYmFsT2JqZWN0KFdlYktpdDo6V2ViUGFnZSYsIFdlYkNvcmU6OkRPTVdpbmRv
d0V4dGVuc2lvbiopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsRGVzdHJveUdsb2JhbE9iamVj
dEZvckRPTVdpbmRvd0V4dGVuc2lvbihXZWJLaXQ6OldlYlBhZ2UmLCBXZWJDb3JlOjpET01XaW5k
b3dFeHRlbnNpb24qKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsSW5qZWN0VXNlclNjcmlw
dEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCBXZWJDb3JlOjpE
T01XcmFwcGVyV29ybGQmKSB7IH0KKwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGb3JjZVVuaXZl
cnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTChXZWJLaXQ6OldlYlBhZ2UmLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZmVhdHVyZXNVc2VkSW5Q
YWdlKFdlYktpdDo6V2ViUGFnZSYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mKSB7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAppbmRleCBlZTE0MmRl
ZGYxMDYwY2FiYmFjNWE4NGEwMWZkMDc0MWJhMGQzYTNjLi4wNDBmNTkxYjdlNWJlNDMxNjg2ZWMy
YTk2MGQxNWNkNDdlZjdhYzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZVdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhCiB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRH
b1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW0sIFdLVHlwZVJlZiogdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlR2xvYmFs
T2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tCdW5kbGVGcmFtZVJlZiwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VXaWxsSW5qZWN0VXNlclNjcmlw
dEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVm
LCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJv
bUdsb2JhbE9iamVjdENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVET01X
aW5kb3dFeHRlbnNpb25SZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlRGlkUmVjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uVG9HbG9iYWxPYmpl
Y3RDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZVdpbGxEZXN0cm95R2xvYmFsT2JqZWN0Rm9yRE9NV2luZG93RXh0ZW5zaW9uQ2FsbGJhY2sp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvblJlZiwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC00NjQsNCArNDY1LDY1IEBAIHR5cGVkZWYgc3RydWN0
IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY4IHsKICAgICBXS0J1bmRsZVBhZ2VVc2VyQWdlbnRG
b3JVUkxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQWdl
bnRGb3JVUkw7CiB9IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY4OwogCit0eXBlZGVmIHN0cnVj
dCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOSB7CisgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsK
KworICAgIC8vIFZlcnNpb24gMC4KKyAgICBXS0J1bmRsZVBhZ2VEaWRTdGFydFByb3Zpc2lvbmFs
TG9hZEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2sgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRp
cmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZEZhaWxQ
cm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgIGRpZEZh
aWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRD
b21taXRMb2FkRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWRDb21taXRMb2FkRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmluaXNoRG9jdW1lbnRM
b2FkRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoRG9jdW1l
bnRMb2FkRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmluaXNoTG9hZEZvckZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1l
OworICAgIFdLQnVuZGxlUGFnZURpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7CisgICAg
V0tCdW5kbGVQYWdlRGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lOworICAgIFdL
QnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRsZUZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURp
ZEZpcnN0TGF5b3V0Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgZGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkUmVtb3ZlRnJh
bWVGcm9tSGllcmFyY2h5Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVtb3Zl
RnJhbWVGcm9tSGllcmFyY2h5OworICAgIFdLQnVuZGxlUGFnZURpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgIGRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRSdW5JbnNlY3VyZUNvbnRlbnRG
b3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBkaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1l
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICBkaWRDbGVhcldpbmRvd09iamVjdEZvckZy
YW1lOworICAgIFdLQnVuZGxlUGFnZURpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU7
CisgICAgV0tCdW5kbGVQYWdlV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOwor
ICAgIFdLQnVuZGxlUGFnZURpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lOworCisgICAg
Ly8gVmVyc2lvbiAxLgorICAgIFdLQnVuZGxlUGFnZURpZExheW91dEZvckZyYW1lQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExheW91dEZvckZyYW1lOworICAg
IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF91bmF2YWls
YWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWREZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREZXRlY3RYU1NGb3JGcmFtZTsKKyAgICBXS0J1
bmRsZVBhZ2VTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKKyAgICBXS0J1bmRsZVBh
Z2VHbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZVdp
bGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdENhbGxiYWNrICAg
IHdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdDsKKyAgICBX
S0J1bmRsZVBhZ2VEaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVjdENh
bGxiYWNrICAgICAgICBkaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVj
dDsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4
dGVuc2lvbkNhbGxiYWNrICAgICAgICB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRv
d0V4dGVuc2lvbjsKKworICAgIC8vIFZlcnNpb24gMgorICAgIFdLQnVuZGxlUGFnZURpZEZpbmlz
aFByb2dyZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZp
bmlzaFByb2dyZXNzOworICAgIFdLQnVuZGxlUGFnZVNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNz
RnJvbUxvY2FsVVJMQ2FsbGJhY2sgICAgICAgICAgICAgIHNob3VsZEZvcmNlVW5pdmVyc2FsQWNj
ZXNzRnJvbUxvY2FsVVJMOworCisgICAgLy8gVmVyc2lvbiAzCisgICAgdm9pZCAqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkUmVjZWl2ZUludGVudEZvckZyYW1lX3VuYXZhaWxhYmxlOworICAgIHZvaWQgKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lX3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVy
c2lvbiA0CisgICAgV0tCdW5kbGVQYWdlRGlkTGF5b3V0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTGF5b3V0OworCisgICAgLy8gVmVyc2lvbiA1
CisgICAgV0tCdW5kbGVQYWdlRmVhdHVyZXNVc2VkSW5QYWdlQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXNVc2VkSW5QYWdlOworCisgICAgLy8gVmVyc2lv
biA2CisgICAgV0tCdW5kbGVQYWdlV2lsbExvYWRVUkxSZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbExvYWRVUkxSZXF1ZXN0OworICAgIFdLQnVuZGxl
UGFnZVdpbGxMb2FkRGF0YVJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxMb2FkRGF0YVJlcXVlc3Q7CisKKyAgICAvLyBWZXJzaW9uIDcKKyAgICB2b2lk
ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aWxsRGVzdHJveUZyYW1lX3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lv
biA4CisgICAgV0tCdW5kbGVQYWdlVXNlckFnZW50Rm9yVVJMQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXNlckFnZW50Rm9yVVJMOworCisgICAgLy8gVmVyc2lv
biA5CisgICAgV0tCdW5kbGVQYWdlV2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgd2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZTsKK30g
V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjk7CisKICNlbmRpZiAvLyBXS0J1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tX
ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IDU3NzM5OGFh
NWQyMjVmYWQzMDhmMWMwZGI4MjJiYmYyNWQwZTAwZjguLjE5MzUzMjJmMzY0MGU0ZWQyNGI5MWI2
ZTFkMmE4MjYxYmFlZWQyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KQEAg
LTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgV0tTdHJpbmdSZWYgdXNlckFnZW50Rm9yVVJMKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVmIHVybCwgY29uc3QgdgogCiBzdGF0aWMgdm9pZCBz
ZXRVcFBhZ2VMb2FkZXJDbGllbnQoV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250
cm9sbGVyICpjb250ZXh0Q29udHJvbGxlciwgV2ViUGFnZSYgcGFnZSkKIHsKLSAgICBXS0J1bmRs
ZVBhZ2VMb2FkZXJDbGllbnRWOCBjbGllbnQ7CisgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
VjkgY2xpZW50OwogICAgIG1lbXNldCgmY2xpZW50LCAwLCBzaXplb2YoY2xpZW50KSk7CiAKICAg
ICBjbGllbnQuYmFzZS52ZXJzaW9uID0gODsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZTQxZTgzMTgwOTkwNGJlZWM2YmVkYmQ5ZDAzNzI2
ZmY4ODBkNDM5MC4uYjZmMzgwMGVjMTBkZGQ3ZDc3YjA2ODgxNWQ4ZjljYzE2NjBjN2ZjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTMw
MywxMSArMzAzLDIwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpnbG9i
YWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdlYlBhZ2UmIHBhCiB7CiAgICAgaWYgKCFtX2Ns
aWVudC5nbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKQogICAgICAgICByZXR1cm47Ci0g
ICAgCisKICAgICBSZWZQdHI8SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZD4gaW5qZWN0ZWRXb3Js
ZCA9IEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ6OmdldE9yQ3JlYXRlKHdvcmxkKTsKICAgICBt
X2NsaWVudC5nbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKHRvQVBJKCZwYWdlKSwgdG9B
UEkoJmZyYW1lKSwgdG9BUEkoaW5qZWN0ZWRXb3JsZC5nZXQoKSksIG1fY2xpZW50LmJhc2UuY2xp
ZW50SW5mbyk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxs
SW5qZWN0VXNlclNjcmlwdEZvckZyYW1lKFdlYlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwg
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LndpbGxJbmplY3RV
c2VyU2NyaXB0Rm9yRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxJbmplY3Rl
ZEJ1bmRsZVNjcmlwdFdvcmxkPiBpbmplY3RlZFdvcmxkID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZDo6Z2V0T3JDcmVhdGUod29ybGQpOworICAgIG1fY2xpZW50LndpbGxJbmplY3RVc2VyU2Ny
aXB0Rm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSShpbmplY3RlZFdv
cmxkLmdldCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBJbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OndpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9u
RnJvbUdsb2JhbE9iamVjdChXZWJQYWdlJiBwYWdlLCBET01XaW5kb3dFeHRlbnNpb24qIGNvcmVF
eHRlbnNpb24pCiB7CiAgICAgaWYgKCFtX2NsaWVudC53aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4
dGVuc2lvbkZyb21HbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgKaW5kZXggYTkwZWQ2MGFmMWZlNjk1YTlhNTQ1NTY5ZjAzYTEwODAyNWY4
ZDRlNi4uNDkzNTY2MWVlMjQ4OGY2MzgwMTRlODY5ZGQ4ZjExMjA5YTQ4YjgxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtMzcsNyArMzcsNyBA
QCBjbGFzcyBTdHJpbmc7CiBjbGFzcyBVUkw7CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRy
YWl0czxXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1
cGxlPFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYwLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
MSwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjIsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYz
LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNCwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjUs
IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY2LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNywg
V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjg+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWMCwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
VjEsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYyLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
MywgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjQsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY1
LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNiwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjcs
IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY4LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOT4g
VmVyc2lvbnM7CiB9OwogfQogCkBAIC04MSw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZFJlY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KFdlYlBhZ2UmLCBXZWJD
b3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIHdpbGxEZXN0cm95
R2xvYmFsT2JqZWN0Rm9yRE9NV2luZG93RXh0ZW5zaW9uKFdlYlBhZ2UmLCBXZWJDb3JlOjpET01X
aW5kb3dFeHRlbnNpb24qKSBvdmVycmlkZTsKIAorICAgIHZvaWQgd2lsbEluamVjdFVzZXJTY3Jp
cHRGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwgV2ViQ29yZTo6
RE9NV3JhcHBlcldvcmxkJikgZmluYWw7CisKICAgICBib29sIHNob3VsZEZvcmNlVW5pdmVyc2Fs
QWNjZXNzRnJvbUxvY2FsVVJMKFdlYlBhZ2UmLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBmZWF0dXJlc1VzZWRJblBhZ2UoV2ViUGFnZSYsIGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmlu
ZGV4IDg0MzBmYjZhZDBkZTRjM2RiMjUzZjhjMTE2NjBjZDkyNWQwN2QzMzAuLjU3NzdjMmIwYWIz
ODg5ZjljYmM1ZDY0MmQwZGNkMGM0YmE2N2ZiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtMTY5MSw3ICsxNjkxLDYgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRE9NV3JhcHBlcldvcmxkJgogI2Vu
ZGlmCiB9CiAKLQogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hHbG9iYWxPYmpl
Y3RBdmFpbGFibGUoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBXZWJQYWdlKiB3ZWJQ
YWdlID0gbV9mcmFtZS0+cGFnZSgpOwpAQCAtMTcwMSw2ICsxNzAwLDE1IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoR2xvYmFsT2JqZWN0QXZhaWxhYmxlKERPTVdyYXBwZXJX
b3JsZCYgd29ybGQpCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5n
bG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKCp3ZWJQYWdlLCAqbV9mcmFtZSwgd29ybGQp
OwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsSW5qZWN0VXNlclNjcmlwdChE
T01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJQ
YWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLndpbGxJbmplY3RVc2VyU2NyaXB0Rm9y
RnJhbWUoKndlYlBhZ2UsICptX2ZyYW1lLCB3b3JsZCk7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xv
YmFsT2JqZWN0KFdlYkNvcmU6OkRPTVdpbmRvd0V4dGVuc2lvbiogZXh0ZW5zaW9uKQogewogICAg
IFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCmluZGV4IDYzY2JiMTJmY2IxNGQ4OTU0MGI2MWQ0YjQ1MjVmNmVkZWNjZWJkM2UuLmM4
MGFmYzJkMGQ1ZTQzZDIyNDg1NmVlOTVhNzY2MjNlZGNhMjU1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yMzIsNyArMjMyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3Bh
dGNoV2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KFdlYkNv
cmU6OkRPTVdpbmRvd0V4dGVuc2lvbiopIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNv
bm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVjdChXZWJDb3JlOjpET01XaW5kb3dF
eHRlbnNpb24qKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoV2lsbERlc3Ryb3lHbG9iYWxPYmpl
Y3RGb3JET01XaW5kb3dFeHRlbnNpb24oV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9uKikgZmlu
YWw7Ci0gICAgCisKKyAgICB2b2lkIHdpbGxJbmplY3RVc2VyU2NyaXB0KFdlYkNvcmU6OkRPTVdy
YXBwZXJXb3JsZCYpIGZpbmFsOworCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgUmVtb3RlQVhP
YmplY3RSZWYgYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpIGZpbmFsOwogICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344786</attachid>
            <date>2018-07-11 16:30:36 -0700</date>
            <delta_ts>2018-07-12 13:12:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187565-20180711163035.patch</filename>
            <type>text/plain</type>
            <size>32246</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIyMjgwNmY5ODU0MmFj
MmZmMDhjNTA2NDc3OWRhY2ZjMDE0NDQwYy4uM2FmMmYzMjUzNTM5MGM5ODBiMzljMTRhNzg2Yzgx
NjNlMjE2YTFlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA3LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxvYWRl
ckNsaWVudCB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2Nv
bnRlbnRleHRlbnNpb25zL2luamVjdGVkLXNjcmlwdC1jYWxsYmFjay5odG1sLgorCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KToK
KyAgICAgICAgQ2FsbGluZyB0aGUgbmV3IGNhbGxiYWNrIHdoZW5ldmVyIGJlaW5nIGFib3V0IHRv
IGluamVjdCBhIG5ldyBzY3JpcHQuCisKIDIwMTgtMDctMTEgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGVMaW5lTGF5b3V0OjpGbG93Q29udGVudHMgd2Fz
dGVzIDU0S0Igb2YgVmVjdG9yIGNhcGFjaXR5IG9uIG55dGltZXMuY29tCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNm
MTJkNGJjODMxZGJmMTc1ZTlkNzFjODc2NTE3ZmU2MGE3Yzc3Y2IuLjQwMzk3MGMwZDA0Y2MyYTEz
NzAzMjZkOGM5ZjZkNzM1OWJjZDczNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgt
MDctMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBh
IEZyYW1lTG9hZGVyQ2xpZW50IHdpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUgY2FsbGJhY2sK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzU2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVj
ZSBhIG5ldyBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgY2FsbGJhY2sgdGhhdCBpcyBjYWxsZWQg
ZXZlcnl0aW1lIGEgdXNlciBzY3JpcHQgaXMgaW5qZWN0ZWQuCisgICAgICAgIEltcGxlbWVudCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbEluamVjdFVzZXJTY3JpcHQgYnkgY2FsbGluZyB0aGlz
IG5ldyBjYWxsYmFjay4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoQVBJOjpJbmpl
Y3RlZEJ1bmRsZTo6UGFnZUxvYWRlckNsaWVudDo6d2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFt
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAg
ICAgICAoc2V0VXBQYWdlTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6Z2xvYmFsT2JqZWN0SXNBdmFp
bGFibGVGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDo6d2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxJbmplY3RVc2Vy
U2NyaXB0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lmg6CisKIDIwMTgtMDctMTEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtXUEVdIEFDIGZvciBmaXhlZC1wb3NpdGlvbiBlbGVtZW50cyBp
cyBub3QgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCBmNzIyNjE4Njc2NzNiNmM5NzI4Yzk1YzJhMWU0ZTI0MmViNzNjOTUwLi41ZTdhMjllOGNk
NTQ5NzA4ZDMxNWQwNDBiMjEwMTU3ZGZlNTVjMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzMyLDYgKzMzMiw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9i
amVjdChET01XaW5kb3dFeHRlbnNpb24qKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hX
aWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lvbihET01XaW5kb3dFeHRl
bnNpb24qKSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsSW5qZWN0VXNlclNjcmlwdChET01X
cmFwcGVyV29ybGQmKSB7IH0KKwogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFdpbGxTdGFydFVzaW5nUGVlckNvbm5lY3Rpb25IYW5kbGVyKFJUQ1BlZXJDb25u
ZWN0aW9uSGFuZGxlciopIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDBiNjgy
YjJmMWVjYmJhMDA1MWE2YzBlNzZjNDg0OTEyNzUzMDk0NWYuLjBmOGNiZTJiM2NjYzljZTM2YmJl
MzVlNDgzNjUyMjkyMzRmMzVlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC03NDQsNiArNzQ0
LDcgQEAgdm9pZCBGcmFtZTo6aW5qZWN0VXNlclNjcmlwdHMoVXNlclNjcmlwdEluamVjdGlvblRp
bWUgaW5qZWN0aW9uVGltZSkKICAgICAgICAgaWYgKHNjcmlwdC5pbmplY3Rpb25UaW1lKCkgPT0g
aW5qZWN0aW9uVGltZSAmJiBVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNQYXR0ZXJucyhk
b2N1bWVudC0+dXJsKCksIHNjcmlwdC53aGl0ZWxpc3QoKSwgc2NyaXB0LmJsYWNrbGlzdCgpKSkg
ewogICAgICAgICAgICAgaWYgKG1fcGFnZSkKICAgICAgICAgICAgICAgICBtX3BhZ2UtPnNldEFz
UnVubmluZ1VzZXJTY3JpcHRzKCk7CisgICAgICAgICAgICB0aGlzLT5sb2FkZXIoKS5jbGllbnQo
KS53aWxsSW5qZWN0VXNlclNjcmlwdCh3b3JsZCk7CiAgICAgICAgICAgICBtX3NjcmlwdC0+ZXZh
bHVhdGVJbldvcmxkKFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LnNvdXJjZSgpLCBzY3JpcHQudXJs
KCkpLCB3b3JsZCk7CiAgICAgICAgIH0KICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IDU4YzY0ZDIwZDExNjgx
YzRkOTQyOWNlMmZhMWNlNDA4ODdhN2I1OTAuLjA4ZGRiYmVhNzJiZGU3YTY4NmNlNzVjNGY0ZmM5
ODY4YzZhZmI0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtODksNiArODksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KFdlYktp
dDo6V2ViUGFnZSYsIFdlYkNvcmU6OkRPTVdpbmRvd0V4dGVuc2lvbiopIHsgfQogICAgIHZpcnR1
YWwgdm9pZCB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lvbihXZWJL
aXQ6OldlYlBhZ2UmLCBXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSB7IH0KIAorICAgIHZp
cnR1YWwgdm9pZCB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYs
IFdlYktpdDo6V2ViRnJhbWUmLCBXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmKSB7IH0KKwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRGb3JjZVVuaXZlcnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTChXZWJL
aXQ6OldlYlBhZ2UmLCBjb25zdCBXVEY6OlN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZmVhdHVyZXNVc2VkSW5QYWdlKFdlYktpdDo6V2ViUGFnZSYsIGNvbnN0
IFZlY3RvcjxXVEY6OlN0cmluZz4mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaAppbmRleCBlZTE0MmRlZGYxMDYwY2FiYmFjNWE4NGEwMWZkMDc0MWJh
MGQzYTNjLi4wNDBmNTkxYjdlNWJlNDMxNjg2ZWMyYTk2MGQxNWNkNDdlZjdhYzQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC01Myw2ICs1Myw3
IEBAIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RG
b3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhCiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VE
aWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIGJvb2wgKCpXS0J1bmRsZVBhZ2VTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxi
YWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtUmVm
IGl0ZW0sIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlR2xvYmFsT2JqZWN0SXNBdmFpbGFibGVGb3JGcmFtZUNh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgV0tCdW5kbGVT
Y3JpcHRXb3JsZFJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VXaWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxE
aXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdENhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25SZWYsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjb25uZWN0
RE9NV2luZG93RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3RDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxEZXN0cm95R2xvYmFsT2JqZWN0
Rm9yRE9NV2luZG93RXh0ZW5zaW9uQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZURPTVdpbmRvd0V4dGVuc2lvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC00
NjQsNCArNDY1LDY1IEBAIHR5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY4
IHsKICAgICBXS0J1bmRsZVBhZ2VVc2VyQWdlbnRGb3JVUkxDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1c2VyQWdlbnRGb3JVUkw7CiB9IFdLQnVuZGxlUGFnZUxv
YWRlckNsaWVudFY4OwogCit0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
OSB7CisgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBX
S0J1bmRsZVBhZ2VEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOworICAgIFdLQnVu
ZGxlUGFnZURpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1l
Q2FsbGJhY2sgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lOworICAgIFdLQnVuZGxlUGFnZURpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JGb3JG
cmFtZUNhbGxiYWNrICAgICAgICAgICAgIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3JG
b3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRDb21taXRMb2FkRm9yRnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDb21taXRMb2FkRm9yRnJhbWU7CisgICAg
V0tCdW5kbGVQYWdlRGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWU7CisgICAgV0tCdW5k
bGVQYWdlRGlkRmluaXNoTG9hZEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkRmluaXNoTG9hZEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZEZhaWxM
b2FkV2l0aEVycm9yRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZh
aWxMb2FkV2l0aEVycm9yRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkU2FtZURvY3VtZW50
TmF2aWdhdGlvbkZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgZGlkU2FtZURvY3Vt
ZW50TmF2aWdhdGlvbkZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZFJlY2VpdmVUaXRsZUZv
ckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlY2VpdmVUaXRs
ZUZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZEZpcnN0TGF5b3V0Rm9yRnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWU7Cisg
ICAgV0tCdW5kbGVQYWdlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU7
CisgICAgV0tCdW5kbGVQYWdlRGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5OworICAgIFdL
QnVuZGxlUGFnZURpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZTsKKyAgICBXS0J1
bmRsZVBhZ2VEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBh
Z2VEaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGRp
ZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZEhhbmRsZU9u
bG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGRpZEhhbmRs
ZU9ubG9hZEV2ZW50c0ZvckZyYW1lOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLQnVuZGxl
UGFnZURpZExheW91dEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZExheW91dEZvckZyYW1lOworICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5ld0ZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dF91bmF2YWlsYWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRE
ZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aWREZXRlY3RYU1NGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VTaG91bGRHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHb1RvQmFja0Zv
cndhcmRMaXN0SXRlbTsKKyAgICBXS0J1bmRsZVBhZ2VHbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZv
ckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICBnbG9iYWxPYmplY3RJc0F2YWlsYWJs
ZUZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZVdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5z
aW9uRnJvbUdsb2JhbE9iamVjdENhbGxiYWNrICAgIHdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0
ZW5zaW9uRnJvbUdsb2JhbE9iamVjdDsKKyAgICBXS0J1bmRsZVBhZ2VEaWRSZWNvbm5lY3RET01X
aW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVjdENhbGxiYWNrICAgICAgICBkaWRSZWNvbm5lY3RE
T01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVjdDsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsRGVz
dHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lvbkNhbGxiYWNrICAgICAgICB3aWxs
RGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdpbmRvd0V4dGVuc2lvbjsKKworICAgIC8vIFZlcnNp
b24gMgorICAgIFdLQnVuZGxlUGFnZURpZEZpbmlzaFByb2dyZXNzQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaFByb2dyZXNzOworICAgIFdLQnVuZGxl
UGFnZVNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxvY2FsVVJMQ2FsbGJhY2sgICAgICAg
ICAgICAgIHNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxvY2FsVVJMOworCisgICAgLy8g
VmVyc2lvbiAzCisgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZUludGVudEZvckZyYW1lX3Vu
YXZhaWxhYmxlOworICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZy
YW1lX3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiA0CisgICAgV0tCdW5kbGVQYWdlRGlk
TGF5b3V0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlkTGF5b3V0OworCisgICAgLy8gVmVyc2lvbiA1CisgICAgV0tCdW5kbGVQYWdlRmVhdHVyZXNV
c2VkSW5QYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVy
ZXNVc2VkSW5QYWdlOworCisgICAgLy8gVmVyc2lvbiA2CisgICAgV0tCdW5kbGVQYWdlV2lsbExv
YWRVUkxSZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ls
bExvYWRVUkxSZXF1ZXN0OworICAgIFdLQnVuZGxlUGFnZVdpbGxMb2FkRGF0YVJlcXVlc3RDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbGxMb2FkRGF0YVJlcXVlc3Q7
CisKKyAgICAvLyBWZXJzaW9uIDcKKyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsRGVzdHJveUZyYW1l
X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiA4CisgICAgV0tCdW5kbGVQYWdlVXNlckFn
ZW50Rm9yVVJMQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
ckFnZW50Rm9yVVJMOworCisgICAgLy8gVmVyc2lvbiA5CisgICAgV0tCdW5kbGVQYWdlV2lsbElu
amVjdFVzZXJTY3JpcHRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgd2ls
bEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZTsKK30gV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjk7
CisKICNlbmRpZiAvLyBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyLm1tCmluZGV4IDU3NzM5OGFhNWQyMjVmYWQzMDhmMWMwZGI4MjJiYmYyNWQw
ZTAwZjguLjE5MzUzMjJmMzY0MGU0ZWQyNGI5MWI2ZTFkMmE4MjYxYmFlZWQyYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgV0tT
dHJpbmdSZWYgdXNlckFnZW50Rm9yVVJMKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVm
IHVybCwgY29uc3QgdgogCiBzdGF0aWMgdm9pZCBzZXRVcFBhZ2VMb2FkZXJDbGllbnQoV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICpjb250ZXh0Q29udHJvbGxlciwg
V2ViUGFnZSYgcGFnZSkKIHsKLSAgICBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOCBjbGllbnQ7
CisgICAgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjkgY2xpZW50OwogICAgIG1lbXNldCgmY2xp
ZW50LCAwLCBzaXplb2YoY2xpZW50KSk7CiAKICAgICBjbGllbnQuYmFzZS52ZXJzaW9uID0gODsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
ZTQxZTgzMTgwOTkwNGJlZWM2YmVkYmQ5ZDAzNzI2ZmY4ODBkNDM5MC4uYjZmMzgwMGVjMTBkZGQ3
ZDc3YjA2ODgxNWQ4ZjljYzE2NjBjN2ZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTMwMywxMSArMzAzLDIwIEBAIHZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1l
KFdlYlBhZ2UmIHBhCiB7CiAgICAgaWYgKCFtX2NsaWVudC5nbG9iYWxPYmplY3RJc0F2YWlsYWJs
ZUZvckZyYW1lKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICBSZWZQdHI8SW5qZWN0ZWRC
dW5kbGVTY3JpcHRXb3JsZD4gaW5qZWN0ZWRXb3JsZCA9IEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQ6OmdldE9yQ3JlYXRlKHdvcmxkKTsKICAgICBtX2NsaWVudC5nbG9iYWxPYmplY3RJc0F2YWls
YWJsZUZvckZyYW1lKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkoaW5qZWN0ZWRX
b3JsZC5nZXQoKSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lKFdl
YlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK3sK
KyAgICBpZiAoIW1fY2xpZW50LndpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUpCisgICAgICAg
IHJldHVybjsKKworICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBpbmplY3Rl
ZFdvcmxkID0gSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Z2V0T3JDcmVhdGUod29ybGQpOwor
ICAgIG1fY2xpZW50LndpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0
b0FQSSgmZnJhbWUpLCB0b0FQSShpbmplY3RlZFdvcmxkLmdldCgpKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6Ondp
bGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdChXZWJQYWdlJiBw
YWdlLCBET01XaW5kb3dFeHRlbnNpb24qIGNvcmVFeHRlbnNpb24pCiB7CiAgICAgaWYgKCFtX2Ns
aWVudC53aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvbkZyb21HbG9iYWxPYmplY3QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggYTkwZWQ2
MGFmMWZlNjk1YTlhNTQ1NTY5ZjAzYTEwODAyNWY4ZDRlNi4uNDkzNTY2MWVlMjQ4OGY2MzgwMTRl
ODY5ZGQ4ZjExMjA5YTQ4YjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTdHJpbmc7CiBjbGFzcyBVUkw7
CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dFYwLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWMSwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
VjIsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYzLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
NCwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjUsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY2
LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNywgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjg+
IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnRWMCwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjEsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dFYyLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWMywgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
VjQsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY1LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
NiwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjcsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY4
LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOT4gVmVyc2lvbnM7CiB9OwogfQogCkBAIC04MSw2
ICs4MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY29ubmVjdERPTVdpbmRvd0V4dGVuc2lv
blRvR2xvYmFsT2JqZWN0KFdlYlBhZ2UmLCBXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBv
dmVycmlkZTsKICAgICB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0Rm9yRE9NV2luZG93RXh0
ZW5zaW9uKFdlYlBhZ2UmLCBXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBvdmVycmlkZTsK
IAorICAgIHZvaWQgd2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2Um
LCBXZWJLaXQ6OldlYkZyYW1lJiwgV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgZmluYWw7CisK
ICAgICBib29sIHNob3VsZEZvcmNlVW5pdmVyc2FsQWNjZXNzRnJvbUxvY2FsVVJMKFdlYlBhZ2Um
LCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBmZWF0dXJlc1VzZWRJ
blBhZ2UoV2ViUGFnZSYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDg0MzBmYjZhZDBkZTRjM2RiMjUzZjhj
MTE2NjBjZDkyNWQwN2QzMzAuLjU3NzdjMmIwYWIzODg5ZjljYmM1ZDY0MmQwZGNkMGM0YmE2N2Zi
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTY5MSw3ICsxNjkxLDYg
QEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVj
dEluV29ybGQoRE9NV3JhcHBlcldvcmxkJgogI2VuZGlmCiB9CiAKLQogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hHbG9iYWxPYmplY3RBdmFpbGFibGUoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwpAQCAt
MTcwMSw2ICsxNzAwLDE1IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoR2xv
YmFsT2JqZWN0QXZhaWxhYmxlKERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgd2ViUGFnZS0+
aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5nbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZy
YW1lKCp3ZWJQYWdlLCAqbV9mcmFtZSwgd29ybGQpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp3aWxsSW5qZWN0VXNlclNjcmlwdChET01XcmFwcGVyV29ybGQmIHdvcmxkKQorewor
ICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdl
KQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNs
aWVudCgpLndpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUoKndlYlBhZ2UsICptX2ZyYW1lLCB3
b3JsZCk7Cit9CisKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbERpc2Nv
bm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KFdlYkNvcmU6OkRPTVdpbmRv
d0V4dGVuc2lvbiogZXh0ZW5zaW9uKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDYzY2JiMTJmY2IxNGQ4
OTU0MGI2MWQ0YjQ1MjVmNmVkZWNjZWJkM2UuLmM4MGFmYzJkMGQ1ZTQzZDIyNDg1NmVlOTVhNzY2
MjNlZGNhMjU1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMzIsNyArMjMy
LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoV2lsbERpc2Nvbm5lY3RET01XaW5kb3dF
eHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0KFdlYkNvcmU6OkRPTVdpbmRvd0V4dGVuc2lvbiopIGZp
bmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0ds
b2JhbE9iamVjdChXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoV2lsbERlc3Ryb3lHbG9iYWxPYmplY3RGb3JET01XaW5kb3dFeHRlbnNpb24oV2Vi
Q29yZTo6RE9NV2luZG93RXh0ZW5zaW9uKikgZmluYWw7Ci0gICAgCisKKyAgICB2b2lkIHdpbGxJ
bmplY3RVc2VyU2NyaXB0KFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIGZpbmFsOworCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgUmVtb3RlQVhPYmplY3RSZWYgYWNjZXNzaWJpbGl0eVJlbW90
ZU9iamVjdCgpIGZpbmFsOwogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGZmMjU5MDM2ZGY0Zjc2ZTgyYTI5NzdmM2I4NjEyMmEyNjYyNDk1
MDEuLjU0ZTE1M2JkYTU5NmI3MTAzNzJiNGRhNDE1OGUyMTc5ZmI0ZTA5MGQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAor
MjAxOC0wNy0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGEgRnJhbWVMb2FkZXJDbGllbnQgd2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZSBjYWxs
YmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg3
NTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgbmV3IHRlc3QgcnVubmVyIEFQSSB0byBjaGVjayBmb3Igd2lsbEluamVjdFVzZXJTY3JpcHRG
b3JGcmFtZSBjYWxsYmFjay4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZTo6cmVzZXRVc2VyU2NyaXB0SW5qZWN0ZWRDb3VudCk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlOjppbmNyZWFzZVVzZXJTY3JpcHRJbmplY3RlZENvdW50KToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnVzZXJTY3JpcHRJbmplY3RlZENvdW50IGNvbnN0KToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQ
YWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpyZXNldEFmdGVyVGVzdCk6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEluamVjdFVzZXJTY3JpcHRG
b3JGcmFtZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjp1c2VyU2NyaXB0
SW5qZWN0ZWRDb3VudCBjb25zdCk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmluamVjdFVz
ZXJTY3JpcHQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5qZWN0VXNlclNjcmlwdCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5qZWN0VXNlclNjcmlwdCk6CisKIDIwMTgt
MDctMTAgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtl
d3MtYnVpbGRdIEFkZCBidWlsZCBzdGVwIHRvIFVuQXBwbHkgcGF0Y2gKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RS
dW5uZXIuaWRsCmluZGV4IGU2YWE0OWVjZmRhZjcxZWE3YTcwM2QxNGM3OGIxZGMzOTIyZTY0MWYu
LjZjNGI5ODkwYzVhN2I2YmFmM2Q3OTEzMmQ4YmU1ZWE4MzY5YWQ3YzQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbApAQCAtMzQzLDQgKzM0Myw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsK
ICAgICB2b2lkIGNsZWFyTW9ja01lZGlhRGV2aWNlcygpOwogICAgIHZvaWQgcmVtb3ZlTW9ja01l
ZGlhRGV2aWNlKERPTVN0cmluZyBwZXJzaXN0ZW50SWQpOwogICAgIHZvaWQgcmVzZXRNb2NrTWVk
aWFEZXZpY2VzKCk7CisKKyAgICB2b2lkIGluamVjdFVzZXJTY3JpcHQoRE9NU3RyaW5nIHN0cmlu
Zyk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdXNlclNjcmlwdEluamVj
dGVkQ291bnQ7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmluZGV4IDczMDdiNmM5ZWNkZTIwNjNhY2VlMmE5MThk
NTE0YjNjZTRjNDRmZTEuLjZkNGRlZDhlOGE1N2FhMDc4OGYxYjcwN2EwNjJkZTUwZjFlYzBlZDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmgKQEAgLTE0MCw2ICsxNDAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdGV4
dEZpZWxkRGlkQmVnaW5FZGl0aW5nKCk7CiAgICAgdm9pZCB0ZXh0RmllbGREaWRFbmRFZGl0aW5n
KCk7CiAKKyAgICB2b2lkIHJlc2V0VXNlclNjcmlwdEluamVjdGVkQ291bnQoKSB7IG1fdXNlclNj
cmlwdEluamVjdGVkQ291bnQgPSAwOyB9CisgICAgdm9pZCBpbmNyZWFzZVVzZXJTY3JpcHRJbmpl
Y3RlZENvdW50KCkgeyArK21fdXNlclNjcmlwdEluamVjdGVkQ291bnQ7IH0KKyAgICBzaXplX3Qg
dXNlclNjcmlwdEluamVjdGVkQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3VzZXJTY3JpcHRJbmpl
Y3RlZENvdW50OyB9CisKIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRCdW5kbGUoKTsKICAgICB+SW5q
ZWN0ZWRCdW5kbGUoKTsKQEAgLTE5OSw2ICsyMDMsOCBAQCBwcml2YXRlOgogICAgIFdLUmV0YWlu
UHRyPFdLQXJyYXlSZWY+IG1fcmVwYWludFJlY3RzOwogCiAgICAgVmVjdG9yPFN0cmluZz4gbV9h
bGxvd2VkSG9zdHM7CisKKyAgICBzaXplX3QgbV91c2VyU2NyaXB0SW5qZWN0ZWRDb3VudCB7IDAg
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4
IDY0MjdmZGE0ZDM2YWU3ZDk1N2I2MDFkNzk0YzJlYzkxMjAyZjExOTkuLjBmNTg2NWY2YzE1MzE5
MGQyZjg3NmMzZjkwMmZlNmIyZjdkODg2ZDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAg
LTI3NCw4ICsyNzQsOCBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV93b3JsZChB
ZG9wdFdLLCBXS0J1bmRsZVNjcmlwdFdvcmxkQ3JlYXRlV29ybGQoKSkKIHsKLSAgICBXS0J1bmRs
ZVBhZ2VMb2FkZXJDbGllbnRWOCBsb2FkZXJDbGllbnQgPSB7Ci0gICAgICAgIHsgOCwgdGhpcyB9
LAorICAgIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY5IGxvYWRlckNsaWVudCA9IHsKKyAgICAg
ICAgeyA5LCB0aGlzIH0sCiAgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUs
CiAgICAgICAgIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZy
YW1lLAogICAgICAgICBkaWRGYWlsUHJvdmlzaW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUsCkBA
IC0zMTIsNiArMzEyLDcgQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIDAsIC8vIHdpbGxMb2FkRGF0YVJlcXVlc3QK
ICAgICAgICAgMCwgLy8gd2lsbERlc3Ryb3lGcmFtZV91bmF2YWlsYWJsZQogICAgICAgICAwLCAv
LyB1c2VyQWdlbnRGb3JVUkwKKyAgICAgICAgd2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZQog
ICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2Fk
ZXJDbGllbnQuYmFzZSk7CiAKQEAgLTQ0Myw2ICs0NDQsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZTo6cmVzZXRBZnRlclRlc3QoKQogICAgIFdLQnVuZGxlUGFnZVJlbW92ZUFsbFVzZXJDb250
ZW50KG1fcGFnZSk7CiAKICAgICB1bmluc3RhbGxGYWtlSGVsdmV0aWNhKCk7CisKKyAgICBJbmpl
Y3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucmVzZXRVc2VyU2NyaXB0SW5qZWN0ZWRDb3VudCgpOwog
fQogCiAvLyBMb2FkZXIgQ2xpZW50IENhbGxiYWNrcwpAQCAtNTkyLDYgKzU5NSwxMSBAQCB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoUHJvZ3Jlc3MoV0tCdW5kbGVQYWdlUmVmLCBj
b25zdCB2b2lkICpjbGllbnRJbgogICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkRmluaXNoUHJvZ3Jlc3MoKTsKIH0K
IAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OndpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVm
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVu
ZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+d2lsbEluamVjdFVzZXJT
Y3JpcHRGb3JGcmFtZSgpOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNo
RG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgc3Rh
dGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShmcmFtZSk7CkBAIC03NTksNiArNzY3
LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWRGaW5pc2hQcm9ncmVzcygpCiAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgicG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRp
b25cbiIpOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6d2lsbEluamVjdFVzZXJTY3Jp
cHRGb3JGcmFtZSgpCit7CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmluY3JlYXNl
VXNlclNjcmlwdEluamVjdGVkQ291bnQoKTsKK30KKwogZW51bSBGcmFtZU5hbWVQb2xpY3kgeyBT
aG91bGROb3RJbmNsdWRlRnJhbWVOYW1lLCBTaG91bGRJbmNsdWRlRnJhbWVOYW1lIH07CiAKIHN0
YXRpYyB2b2lkIGR1bXBGcmFtZVNjcm9sbFBvc2l0aW9uKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUs
IFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxkZXIsIEZyYW1lTmFtZVBvbGljeSBzaG91bGRJbmNs
dWRlRnJhbWVOYW1lID0gU2hvdWxkTm90SW5jbHVkZUZyYW1lTmFtZSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5oCmluZGV4IDMwZTM3NWNiYTUwNjU2ZGJjMTZkOGUxNGI4MDc0ZTVlNGZhZmZhMmQuLjFjMTUz
ZDRjYWUzODhlYzAyOTJkOTYwNjEyMzEyMzc0ZDc3NjAyMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2Uu
aApAQCAtNzcsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExv
YWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90
IGlkZW50aWZpZXIsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZEZv
clJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRl
bnRpZmllciwgV0tFcnJvclJlZiwgY29uc3Qgdm9pZCopOwogICAgIHN0YXRpYyBib29sIHNob3Vs
ZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRf
dCBpZGVudGlmaWVyLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgd2lsbEluamVjdFVz
ZXJTY3JpcHRGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVu
ZGxlU2NyaXB0V29ybGRSZWYsIGNvbnN0IHZvaWQqKTsKIAogICAgIHZvaWQgZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVS
ZWYpOwpAQCAtOTUsNiArOTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYpOwogICAgIHZvaWQgZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tCdW5kbGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWREZXRl
Y3RYU1NGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKKyAgICB2b2lkIHdpbGxJbmplY3RVc2Vy
U2NyaXB0Rm9yRnJhbWUoKTsKIAogICAgIC8vIFJlc291cmNlIExvYWQgQ2xpZW50CiAgICAgdm9p
ZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJh
bWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIFdLVVJMUmVxdWVzdFJlZiwgYm9vbCBwYWdlTG9h
ZElzUHJvdmlzaW9uYWwpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNGRmYTc1OGI4YWZiZDUxZmE0NmViNjYzNTE2
ZThiMzdiMjdmYzEzOS4uYjNhZjcyYTQ5YjliNDhlNmZjMDlmYzRjMDE2YjQ3ZGQ0NTliMDQxMyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC0yMjY3LDQgKzIyNjcsMTcgQEAgdm9pZCBUZXN0UnVubmVyOjpkaWRHZXRB
cHBsaWNhdGlvbk1hbmlmZXN0KCkKICAgICBjYWxsVGVzdFJ1bm5lckNhbGxiYWNrKEdldEFwcGxp
Y2F0aW9uTWFuaWZlc3RDYWxsYmFja0lEKTsKIH0KIAorc2l6ZV90IFRlc3RSdW5uZXI6OnVzZXJT
Y3JpcHRJbmplY3RlZENvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6
OnNpbmdsZXRvbigpLnVzZXJTY3JpcHRJbmplY3RlZENvdW50KCk7Cit9CisKK3ZvaWQgVGVzdFJ1
bm5lcjo6aW5qZWN0VXNlclNjcmlwdChKU1N0cmluZ1JlZiBzY3JpcHQpCit7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJJbmplY3RVc2VyU2NyaXB0IikpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBtZXNzYWdlQm9keShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhz
Y3JpcHQpKTsKKyAgICBXS1R5cGVSZWYgcmV0dXJuRGF0YSA9IDA7CisgICAgV0tCdW5kbGVQYWdl
UG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRlc3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRv
bigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCks
ICZyZXR1cm5EYXRhKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDM3MWUxZGZh
YzFjNjg5MGE4NWRjMWNjZDM4MmYxODcwMDI0NmI5ZGQuLjI2MzliNGVlZDQ3Yzk3ZWY4ZDg0Nzlh
ZjU5NDBhNDM2MDJkYTYzOWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC00NTQsNiArNDU0LDkgQEAgcHVibGljOgogICAg
IHZvaWQgcmVtb3ZlTW9ja01lZGlhRGV2aWNlKEpTU3RyaW5nUmVmIHBlcnNpc3RlbnRJZCk7CiAg
ICAgdm9pZCByZXNldE1vY2tNZWRpYURldmljZXMoKTsKIAorICAgIHNpemVfdCB1c2VyU2NyaXB0
SW5qZWN0ZWRDb3VudCgpIGNvbnN0OworICAgIHZvaWQgaW5qZWN0VXNlclNjcmlwdChKU1N0cmlu
Z1JlZik7CisKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcigpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGMxNmRmNGVhNmE0Yjc2MDA5M2I3Mjk2ODcy
OTc3YTczNWU5MmZmMWIuLmU3NzJhZWJhZDVmZWEyZDU5Y2YwNzEzODAzZjI5NTEwZTViOGI1Yjgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yOTEyLDYg
KzI5MTIsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkK
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQWRkVGVzdE9wdGlvbnMoVGVzdE9wdGlvbnMm
KSBjb25zdAogewogfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbmplY3RVc2VyU2NyaXB0KFdL
U3RyaW5nUmVmKQoreworfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggNGFkZWJkNjc5ZmY5ZmZjMTg4NTY2
YmY4OGRkZDMxMDkyNGIzZTg3OC4uNTE5YmZiN2RhMDA5NzkzNmExMTkyZTliODM4NmFmODVmYzUw
MjAxZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjE4LDYg
KzIxOCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZU1vY2tNZWRpYURldmljZShXS1N0cmlu
Z1JlZiBwZXJzaXN0ZW50SUQpOwogICAgIHZvaWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CiAK
KyAgICB2b2lkIGluamVjdFVzZXJTY3JpcHQoV0tTdHJpbmdSZWYpOworCiBwcml2YXRlOgogICAg
IFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlUGFnZUNvbmZpZ3Vy
YXRpb24oV0tDb250ZXh0Q29uZmlndXJhdGlvblJlZik7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVDb250ZXh0Q29uZmlndXJhdGlvbigpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBmZTI0YTAx
ZjFlMThkMzM2YTg2YWE3NTM3NjVkNTI4NmI0Nzg3NDk4Li45ZWFkZDJjMWQ2ODhmNDkyZTc1N2Vk
MzZhYTliMzM4NDgyNjNiMWZiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcApAQCAtMTQxNCw2ICsxNDE0LDEzIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVz
dEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJbmplY3RVc2VyU2NyaXB0IikpIHsKKyAgICAgICAg
QVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJRCgpKTsK
KyAgICAgICAgV0tTdHJpbmdSZWYgc2NyaXB0ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KG1l
c3NhZ2VCb2R5KTsKKworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaW5qZWN0
VXNlclNjcmlwdChzY3JpcHQpOworICAgIH0KKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiR2V0QXBwbGljYXRpb25NYW5pZmVzdCIpKSB7CiAjaWZk
ZWYgX19CTE9DS1NfXwogICAgICAgICBXS1BhZ2VHZXRBcHBsaWNhdGlvbk1hbmlmZXN0X2IoVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBhZ2UoKSwgXnsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5t
bSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpp
bmRleCBjN2I3YWRjMGQ0MGYxNDU1ODA5YTZhZDZkODIyMmJkOTkxZmM4NTJhLi5hNGQ1MTFjNTI1
ODljMDcyYWVlNDEwM2MyYjJkMjNlMWU0YmMwMWY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0yODAsNCArMjgwLDEz
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCkKICNl
bmRpZgogfQogCit2b2lkIFRlc3RDb250cm9sbGVyOjppbmplY3RVc2VyU2NyaXB0KFdLU3RyaW5n
UmVmIHNjcmlwdCkKK3sKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIGF1dG8gdXNlclNjcmlwdCA9
IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGluaXRXaXRoU291cmNlOiB0b1dURlN0cmlu
ZyhzY3JpcHQpIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l
bnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PXSk7CisKKyAgICBbW2dsb2JhbFdlYlZpZXdDb25m
aWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkVXNlclNjcmlwdDogdXNlclNjcmlw
dC5nZXQoKV07CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzhhZDRi
OTI5ZDQ1MWE2NGNjYzRlMmY1Y2Q4NTEzMzg1NmQzMzhiNC4uNjI2YjllMjdmMGUxYzZiYzk3Mjlh
YzhlZTU2ODAzY2I1ZTI5NDlhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE4LTA3LTExICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxv
YWRlckNsaWVudCB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY29u
dGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2NyaXB0LWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9pbmplY3RlZC1zY3Jp
cHQtY2FsbGJhY2suaHRtbDogQWRkZWQuCisKIDIwMTgtMDctMTEgIE1zMmdlciAgPE1zMmdlckBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvaW5qZWN0
ZWQtc2NyaXB0LWNhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2NyaXB0LWNhbGxiYWNrLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40OGEwZTc4NWM5MGY5ZDE4ODZkOWJiNjhmZDUwN2M3MTI4ZjRiZmI4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9p
bmplY3RlZC1zY3JpcHQtY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorICAK
KworUEFTUyBUZXN0IHdpbGxJbmplY3RVc2VyU2NyaXB0IGNhbGxiYWNrIGJlaW5nIGNhbGxlZCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9p
bmplY3RlZC1zY3JpcHQtY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29u
dGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2NyaXB0LWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGI2NDM1Y2E0OGFkOGUzYzc1NmJlNzYxMmUyMDg2OTE5NzNhOTI4ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2Ny
aXB0LWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSw1MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRt
bD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8
dGl0bGU+VGVzdGluZyBuZXcgY2FsbGJhY2s8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+CitmdW5jdGlvbiB3YWl0Rm9yKGR1cmF0aW9u
KQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNv
bHZlLCBkdXJhdGlvbikpOworfQorCitmdW5jdGlvbiB3aXRoRnJhbWUodXJsKQoreworICAgIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICBsZXQgZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKKyAgICAgICAgZnJhbWUuc3JjID0gdXJsOwor
ICAgICAgICBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsgcmVzb2x2ZShmcmFtZSk7IH07Cisg
ICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCith
c3luYyBmdW5jdGlvbiB2ZXJpZnlVc2VyU2NyaXB0SW5qZWN0ZWRDb3VudChleHBlY3RlZCkKK3sK
KyAgICBsZXQgY291bnRlciA9IDA7CisgICAgd2hpbGUgKCsrY291bnRlciA8IDEwMCkgeworICAg
ICAgICBpZiAodGVzdFJ1bm5lci51c2VyU2NyaXB0SW5qZWN0ZWRDb3VudCA9PT0gZXhwZWN0ZWQp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF3YWl0IHdhaXRGb3IoMTApOworICAgIH0K
KyAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoIkRpZCBub3QgZ2V0IGV4cGVjdGVkIHZhbHVlICIg
KyBleHBlY3RlZCArICIgYnV0ICIgKyB0ZXN0UnVubmVyLnVzZXJTY3JpcHRJbmplY3RlZENvdW50
KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHJlamVjdCgiVGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJIik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXNzZXJ0X2VxdWFscyh0ZXN0UnVubmVyLnVz
ZXJTY3JpcHRJbmplY3RlZENvdW50LCAwKTsKKyAgICB0ZXN0UnVubmVyLmluamVjdFVzZXJTY3Jp
cHQoImZ1bmN0aW9uIGEoKSB7IH0iKTsKKworICAgIGF3YWl0IHdpdGhGcmFtZSgiLiIpOworICAg
IGF3YWl0IHZlcmlmeVVzZXJTY3JpcHRJbmplY3RlZENvdW50KDEpOworCisgICAgYXdhaXQgd2l0
aEZyYW1lKCIuIik7CisgICAgYXdhaXQgdmVyaWZ5VXNlclNjcmlwdEluamVjdGVkQ291bnQoMik7
Cit9LCAnVGVzdCB3aWxsSW5qZWN0VXNlclNjcmlwdCBjYWxsYmFjayBiZWluZyBjYWxsZWQnKTsK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344874</attachid>
            <date>2018-07-12 13:12:47 -0700</date>
            <delta_ts>2018-07-12 14:34:43 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-187565-20180712131245.patch</filename>
            <type>text/plain</type>
            <size>32105</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM3NDkzYjViYTg2Nzg4
NzY5NzU5YzQ3NDBkM2I5ZjU4MWYwMTQ2ZS4uMGUzYjQxZjA0ZjA4NzIzMTZlMWIyNjZhNWEyMjc0
NDdkZmEwY2VhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTA3LTEyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxvYWRl
ckNsaWVudCB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2Nv
bnRlbnRleHRlbnNpb25zL2luamVjdGVkLXNjcmlwdC1jYWxsYmFjay5odG1sLgorCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6aW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KToK
KyAgICAgICAgQ2FsbGluZyB0aGUgbmV3IGNhbGxiYWNrIHdoZW5ldmVyIGJlaW5nIGFib3V0IHRv
IGluamVjdCBhIG5ldyBzY3JpcHQuCisKIDIwMTgtMDctMTIgIE1lZ2FuIEdhcmRuZXIgIDxtZWdh
bl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBLZWVwIFNlbGVjdGlvbnMgd2l0aGluIFNo
YWRvdyBET00gYm91bmRhcmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlMTYwNTYxMTI5YWVlNWM1NmJmMTEyNDE0
MjQ2MGVjM2Y1MTcxZjVjLi4wZWFjN2I5Y2M3ZjEwYTgxZmQ2MGVhYjI4ZGZlYmFmODVkNjNhYzky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTA3LTEyICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxvYWRlckNsaWVudCB3aWxs
SW5qZWN0VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgV0tCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50IGNhbGxiYWNrIHRoYXQgaXMgY2FsbGVkIGV2ZXJ5dGltZSBhIHVzZXIgc2NyaXB0
IGlzIGluamVjdGVkLgorICAgICAgICBJbXBsZW1lbnQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6Ondp
bGxJbmplY3RVc2VyU2NyaXB0IGJ5IGNhbGxpbmcgdGhpcyBuZXcgY2FsbGJhY2suCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VMb2FkZXJD
bGllbnQ6OndpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKHNldFVwUGFnZUxvYWRlckNs
aWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQ6Omdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWUpOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OndpbGxJbmplY3RVc2Vy
U2NyaXB0Rm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsSW5qZWN0VXNlclNjcmlwdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE4LTA3
LTEyICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAg
S2VlcCBTZWxlY3Rpb25zIHdpdGhpbiBTaGFkb3cgRE9NIGJvdW5kYXJpZXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZjcyMjYxODY3NjczYjZjOTcyOGM5
NWMyYTFlNGUyNDJlYjczYzk1MC4uNWU3YTI5ZThjZDU0OTcwOGQzMTVkMDQwYjIxMDE1N2RmZTU1
YzIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMz
Miw2ICszMzIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjb25u
ZWN0RE9NV2luZG93RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3QoRE9NV2luZG93RXh0ZW5zaW9uKikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbERlc3Ryb3lHbG9iYWxPYmplY3RGb3JE
T01XaW5kb3dFeHRlbnNpb24oRE9NV2luZG93RXh0ZW5zaW9uKikgeyB9CiAKKyAgICB2aXJ0dWFs
IHZvaWQgd2lsbEluamVjdFVzZXJTY3JpcHQoRE9NV3JhcHBlcldvcmxkJikgeyB9CisKICNpZiBF
TkFCTEUoV0VCX1JUQykKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU3RhcnRVc2luZ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlcihSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIqKSB7IH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBkMjMwOTMwNzAwOGMwOTllZmI5NmY1NGE4ODAyNGY0
YzVjYzlmNjYyLi4yYjg3ZDYwNzEwNTExMjQzMWIzOWU5MDg2MDI2NDcyNDZjYjdmZGQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcApAQCAtNzUxLDYgKzc1MSw3IEBAIHZvaWQgRnJhbWU6OmluamVjdFVz
ZXJTY3JpcHRJbW1lZGlhdGVseShET01XcmFwcGVyV29ybGQmIHdvcmxkLCBjb25zdCBVc2VyU2Ny
aXB0CiAgICAgICAgIHJldHVybjsKICAgICBpZiAobV9wYWdlKQogICAgICAgICBtX3BhZ2UtPnNl
dEFzUnVubmluZ1VzZXJTY3JpcHRzKCk7CisgICAgbG9hZGVyKCkuY2xpZW50KCkud2lsbEluamVj
dFVzZXJTY3JpcHQod29ybGQpOwogICAgIG1fc2NyaXB0LT5ldmFsdWF0ZUluV29ybGQoU2NyaXB0
U291cmNlQ29kZShzY3JpcHQuc291cmNlKCksIHNjcmlwdC51cmwoKSksIHdvcmxkKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9B
UElJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmgKaW5kZXggNThjNjRkMjBkMTE2ODFjNGQ5NDI5Y2UyZmExY2U0MDg4N2E3YjU5MC4uMDhkZGJi
ZWE3MmJkZTdhNjg2Y2U3NWM0ZjRmYzk4NjhjNmFmYjQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC04OSw2ICs4OSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjb25uZWN0RE9NV2luZG93RXh0ZW5z
aW9uVG9HbG9iYWxPYmplY3QoV2ViS2l0OjpXZWJQYWdlJiwgV2ViQ29yZTo6RE9NV2luZG93RXh0
ZW5zaW9uKikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0Rm9y
RE9NV2luZG93RXh0ZW5zaW9uKFdlYktpdDo6V2ViUGFnZSYsIFdlYkNvcmU6OkRPTVdpbmRvd0V4
dGVuc2lvbiopIHsgfQogCisgICAgdmlydHVhbCB2b2lkIHdpbGxJbmplY3RVc2VyU2NyaXB0Rm9y
RnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFtZSYsIFdlYkNvcmU6OkRPTVdy
YXBwZXJXb3JsZCYpIHsgfQorCiAgICAgdmlydHVhbCBib29sIHNob3VsZEZvcmNlVW5pdmVyc2Fs
QWNjZXNzRnJvbUxvY2FsVVJMKFdlYktpdDo6V2ViUGFnZSYsIGNvbnN0IFdURjo6U3RyaW5nJikg
eyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBmZWF0dXJlc1VzZWRJblBhZ2Uo
V2ViS2l0OjpXZWJQYWdlJiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IGVlMTQyZGVkZjEw
NjBjYWJiYWM1YTg0YTAxZmQwNzQxYmEwZDNhM2MuLjA0MGY1OTFiN2U1YmU0MzE2ODZlYzJhOTYw
ZDE1Y2Q0N2VmN2FjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmgKQEAgLTUzLDYgKzUzLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGEKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgYm9vbCAoKldLQnVuZGxlUGFnZVNob3VsZEdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VHbG9iYWxPYmpl
Y3RJc0F2YWlsYWJsZUZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZUZyYW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVdpbGxJbmplY3RVc2VyU2NyaXB0Rm9y
RnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIFdL
QnVuZGxlU2NyaXB0V29ybGRSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tCdW5kbGVQYWdlV2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xv
YmFsT2JqZWN0Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZURPTVdpbmRv
d0V4dGVuc2lvblJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S0J1bmRsZVBhZ2VEaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9iamVjdENh
bGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb25S
ZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
V2lsbERlc3Ryb3lHbG9iYWxPYmplY3RGb3JET01XaW5kb3dFeHRlbnNpb25DYWxsYmFjaykoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKQEAgLTQ2NCw0ICs0NjUsNjUgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50VjggewogICAgIFdLQnVuZGxlUGFnZVVzZXJBZ2VudEZvclVS
TENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBZ2VudEZv
clVSTDsKIH0gV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjg7CiAKK3R5cGVkZWYgc3RydWN0IFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudFY5IHsKKyAgICBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRC
YXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisg
ICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZURpZFN0YXJ0UHJvdmlzaW9uYWxMb2Fk
Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjayAgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgZGlkRmFpbFBy
b3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZENvbW1p
dExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENv
bW1pdExvYWRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRGaW5pc2hMb2FkRm9yRnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7Cisg
ICAgV0tCdW5kbGVQYWdlRGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKKyAgICBXS0J1
bmRsZVBhZ2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU7CisgICAgV0tCdW5k
bGVQYWdlRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmly
c3RMYXlvdXRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlk
Rmlyc3RMYXlvdXRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRGaXJzdFZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICBkaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRSZW1vdmVGcmFtZUZy
b21IaWVyYXJjaHlDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZW1vdmVGcmFt
ZUZyb21IaWVyYXJjaHk7CisgICAgV0tCdW5kbGVQYWdlRGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZFJ1bkluc2VjdXJlQ29udGVudEZvckZy
YW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGRpZFJ1bkluc2VjdXJlQ29udGVudEZv
ckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWU7
CisgICAgV0tCdW5kbGVQYWdlRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTsKKyAg
ICBXS0J1bmRsZVBhZ2VXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU7CisgICAg
V0tCdW5kbGVQYWdlRGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWU7CisKKyAgICAvLyBW
ZXJzaW9uIDEuCisgICAgV0tCdW5kbGVQYWdlRGlkTGF5b3V0Rm9yRnJhbWVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTGF5b3V0Rm9yRnJhbWU7CisgICAgdm9p
ZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X3VuYXZhaWxhYmxl
OworICAgIFdLQnVuZGxlUGFnZURpZERldGVjdFhTU0ZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZERldGVjdFhTU0ZvckZyYW1lOworICAgIFdLQnVuZGxl
UGFnZVNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOworICAgIFdLQnVuZGxlUGFnZUds
b2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
IGdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlV2lsbERp
c2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0Q2FsbGJhY2sgICAgd2ls
bERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9tR2xvYmFsT2JqZWN0OworICAgIFdLQnVu
ZGxlUGFnZURpZFJlY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0Q2FsbGJh
Y2sgICAgICAgIGRpZFJlY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0Owor
ICAgIFdLQnVuZGxlUGFnZVdpbGxEZXN0cm95R2xvYmFsT2JqZWN0Rm9yRE9NV2luZG93RXh0ZW5z
aW9uQ2FsbGJhY2sgICAgICAgIHdpbGxEZXN0cm95R2xvYmFsT2JqZWN0Rm9yRE9NV2luZG93RXh0
ZW5zaW9uOworCisgICAgLy8gVmVyc2lvbiAyCisgICAgV0tCdW5kbGVQYWdlRGlkRmluaXNoUHJv
Z3Jlc3NDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNo
UHJvZ3Jlc3M7CisgICAgV0tCdW5kbGVQYWdlU2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NGcm9t
TG9jYWxVUkxDYWxsYmFjayAgICAgICAgICAgICAgc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nlc3NG
cm9tTG9jYWxVUkw7CisKKyAgICAvLyBWZXJzaW9uIDMKKyAgICB2b2lkICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRS
ZWNlaXZlSW50ZW50Rm9yRnJhbWVfdW5hdmFpbGFibGU7CisgICAgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVn
aXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9u
IDQKKyAgICBXS0J1bmRsZVBhZ2VEaWRMYXlvdXRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaWRMYXlvdXQ7CisKKyAgICAvLyBWZXJzaW9uIDUKKyAg
ICBXS0J1bmRsZVBhZ2VGZWF0dXJlc1VzZWRJblBhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmZWF0dXJlc1VzZWRJblBhZ2U7CisKKyAgICAvLyBWZXJzaW9uIDYK
KyAgICBXS0J1bmRsZVBhZ2VXaWxsTG9hZFVSTFJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsTG9hZFVSTFJlcXVlc3Q7CisgICAgV0tCdW5kbGVQYWdl
V2lsbExvYWREYXRhUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd2lsbExvYWREYXRhUmVxdWVzdDsKKworICAgIC8vIFZlcnNpb24gNworICAgIHZvaWQgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbGxEZXN0cm95RnJhbWVfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9uIDgK
KyAgICBXS0J1bmRsZVBhZ2VVc2VyQWdlbnRGb3JVUkxDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1c2VyQWdlbnRGb3JVUkw7CisKKyAgICAvLyBWZXJzaW9uIDkK
KyAgICBXS0J1bmRsZVBhZ2VXaWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lOworfSBXS0J1
bmRsZVBhZ2VMb2FkZXJDbGllbnRWOTsKKwogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZUxvYWRlckNs
aWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggNTc3Mzk4YWE1ZDIy
NWZhZDMwOGYxYzBkYjgyMmJiZjI1ZDBlMDBmOC4uMTkzNTMyMmYzNjQwZTRlZDI0YjkxYjZlMWQy
YTgyNjFiYWVlZDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtMjMy
LDcgKzIzMiw3IEBAIHN0YXRpYyBXS1N0cmluZ1JlZiB1c2VyQWdlbnRGb3JVUkwoV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgV0tVUkxSZWYgdXJsLCBjb25zdCB2CiAKIHN0YXRpYyB2b2lkIHNldFVw
UGFnZUxvYWRlckNsaWVudChXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xs
ZXIgKmNvbnRleHRDb250cm9sbGVyLCBXZWJQYWdlJiBwYWdlKQogewotICAgIFdLQnVuZGxlUGFn
ZUxvYWRlckNsaWVudFY4IGNsaWVudDsKKyAgICBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOSBj
bGllbnQ7CiAgICAgbWVtc2V0KCZjbGllbnQsIDAsIHNpemVvZihjbGllbnQpKTsKIAogICAgIGNs
aWVudC5iYXNlLnZlcnNpb24gPSA4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmNwcAppbmRleCBlNDFlODMxODA5OTA0YmVlYzZiZWRiZDlkMDM3MjZmZjg4
MGQ0MzkwLi5iNmYzODAwZWMxMGRkZDdkNzdiMDY4ODE1ZDhmOWNjMTY2MGM3ZmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcApAQCAtMzAzLDEx
ICszMDMsMjAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6Omdsb2JhbE9i
amVjdElzQXZhaWxhYmxlRm9yRnJhbWUoV2ViUGFnZSYgcGEKIHsKICAgICBpZiAoIW1fY2xpZW50
Lmdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICAK
KwogICAgIFJlZlB0cjxJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkPiBpbmplY3RlZFdvcmxkID0g
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDo6Z2V0T3JDcmVhdGUod29ybGQpOwogICAgIG1fY2xp
ZW50Lmdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0b0FQSSgm
ZnJhbWUpLCB0b0FQSShpbmplY3RlZFdvcmxkLmdldCgpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJ
bmZvKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OndpbGxJbmpl
Y3RVc2VyU2NyaXB0Rm9yRnJhbWUoV2ViUGFnZSYgcGFnZSwgV2ViRnJhbWUmIGZyYW1lLCBET01X
cmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIGlmICghbV9jbGllbnQud2lsbEluamVjdFVzZXJT
Y3JpcHRGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyPEluamVjdGVkQnVu
ZGxlU2NyaXB0V29ybGQ+IGluamVjdGVkV29ybGQgPSBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
OjpnZXRPckNyZWF0ZSh3b3JsZCk7CisgICAgbV9jbGllbnQud2lsbEluamVjdFVzZXJTY3JpcHRG
b3JGcmFtZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKGluamVjdGVkV29ybGQu
Z2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCiB2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudDo6d2lsbERpc2Nvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Gcm9t
R2xvYmFsT2JqZWN0KFdlYlBhZ2UmIHBhZ2UsIERPTVdpbmRvd0V4dGVuc2lvbiogY29yZUV4dGVu
c2lvbikKIHsKICAgICBpZiAoIW1fY2xpZW50LndpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5z
aW9uRnJvbUdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuaAppbmRleCBhOTBlZDYwYWYxZmU2OTVhOWE1NDU1NjlmMDNhMTA4MDI1ZjhkNGU2
Li40OTM1NjYxZWUyNDg4ZjYzODAxNGU4NjlkZDhmMTEyMDlhNDhiODEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC0zNyw3ICszNyw3IEBAIGNs
YXNzIFN0cmluZzsKIGNsYXNzIFVSTDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRz
PFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8
V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjAsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYxLCBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWMiwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjMsIFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudFY0LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNSwgV0tC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50VjYsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY3LCBXS0J1
bmRsZVBhZ2VMb2FkZXJDbGllbnRWOD4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYwLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWMSwg
V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjIsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYzLCBX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNCwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjUsIFdL
QnVuZGxlUGFnZUxvYWRlckNsaWVudFY2LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNywgV0tC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50VjgsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY5PiBWZXJz
aW9uczsKIH07CiB9CiAKQEAgLTgxLDYgKzgxLDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVj
b25uZWN0RE9NV2luZG93RXh0ZW5zaW9uVG9HbG9iYWxPYmplY3QoV2ViUGFnZSYsIFdlYkNvcmU6
OkRPTVdpbmRvd0V4dGVuc2lvbiopIG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbERlc3Ryb3lHbG9i
YWxPYmplY3RGb3JET01XaW5kb3dFeHRlbnNpb24oV2ViUGFnZSYsIFdlYkNvcmU6OkRPTVdpbmRv
d0V4dGVuc2lvbiopIG92ZXJyaWRlOwogCisgICAgdm9pZCB3aWxsSW5qZWN0VXNlclNjcmlwdEZv
ckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCBXZWJDb3JlOjpET01X
cmFwcGVyV29ybGQmKSBmaW5hbDsKKwogICAgIGJvb2wgc2hvdWxkRm9yY2VVbml2ZXJzYWxBY2Nl
c3NGcm9tTG9jYWxVUkwoV2ViUGFnZSYsIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIGZlYXR1cmVzVXNlZEluUGFnZShXZWJQYWdlJiwgY29uc3QgVmVjdG9yPFdURjo6
U3RyaW5nPiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
ODQzMGZiNmFkMGRlNGMzZGIyNTNmOGMxMTY2MGNkOTI1ZDA3ZDMzMC4uNTc3N2MyYjBhYjM4ODlm
OWNiYzVkNjQyZDBkY2QwYzRiYTY3ZmIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC0xNjkxLDcgKzE2OTEsNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChET01XcmFwcGVyV29ybGQmCiAjZW5kaWYK
IH0KIAotCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaEdsb2JhbE9iamVjdEF2
YWlsYWJsZShET01XcmFwcGVyV29ybGQmIHdvcmxkKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CkBAIC0xNzAxLDYgKzE3MDAsMTUgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hHbG9iYWxPYmplY3RBdmFpbGFibGUoRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCkKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmdsb2Jh
bE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWUoKndlYlBhZ2UsICptX2ZyYW1lLCB3b3JsZCk7CiB9
CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxJbmplY3RVc2VyU2NyaXB0KERPTVdy
YXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHdlYlBhZ2Ut
PmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkud2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFt
ZSgqd2ViUGFnZSwgKm1fZnJhbWUsIHdvcmxkKTsKK30KKwogdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hXaWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvbkZyb21HbG9iYWxP
YmplY3QoV2ViQ29yZTo6RE9NV2luZG93RXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CiAgICAgV2Vi
UGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggNjNjYmIxMmZjYjE0ZDg5NTQwYjYxZDRiNDUyNWY2ZWRlY2NlYmQzZS4uYzgwYWZj
MmQwZDVlNDNkMjI0ODU2ZWU5NWE3NjYyM2VkY2EyNTU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTIzMiw3ICsyMzIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hX
aWxsRGlzY29ubmVjdERPTVdpbmRvd0V4dGVuc2lvbkZyb21HbG9iYWxPYmplY3QoV2ViQ29yZTo6
RE9NV2luZG93RXh0ZW5zaW9uKikgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY29ubmVj
dERPTVdpbmRvd0V4dGVuc2lvblRvR2xvYmFsT2JqZWN0KFdlYkNvcmU6OkRPTVdpbmRvd0V4dGVu
c2lvbiopIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hXaWxsRGVzdHJveUdsb2JhbE9iamVjdEZv
ckRPTVdpbmRvd0V4dGVuc2lvbihXZWJDb3JlOjpET01XaW5kb3dFeHRlbnNpb24qKSBmaW5hbDsK
LSAgICAKKworICAgIHZvaWQgd2lsbEluamVjdFVzZXJTY3JpcHQoV2ViQ29yZTo6RE9NV3JhcHBl
cldvcmxkJikgZmluYWw7CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZW1vdGVBWE9iamVj
dFJlZiBhY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgZmluYWw7CiAgICAgCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y2OTA4ZjUwNzU0YzAx
ZTNmNDYwMWU3YTQxOTIyMzNmNTQyMjRlNS4uNjNiM2NiNGRmZjFhZjg3YWQ3ODkwOTY1ZmZkM2E4
ODI2NDRmM2Y2MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTA3LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxvYWRlckNsaWVudCB3aWxsSW5qZWN0
VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCBuZXcgdGVzdCBydW5uZXIgQVBJIHRvIGNoZWNrIGZv
ciB3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lIGNhbGxiYWNrLgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpyZXNldFVzZXJTY3JpcHRJbmplY3RlZENv
dW50KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmluY3JlYXNlVXNlclNjcmlwdElu
amVjdGVkQ291bnQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6dXNlclNjcmlwdElu
amVjdGVkQ291bnQgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnJlc2V0QWZ0ZXJUZXN0KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdl
Ojp3aWxsSW5qZWN0VXNlclNjcmlwdEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnVzZXJTY3JpcHRJbmplY3RlZENvdW50IGNvbnN0KToKKyAgICAgICAgKFdU
Ujo6VGVzdFJ1bm5lcjo6aW5qZWN0VXNlclNjcmlwdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpp
bmplY3RVc2VyU2NyaXB0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6Cisg
ICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbmpl
Y3RVc2VyU2NyaXB0KToKKwogMjAxOC0wNy0xMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxl
LmNvbT4KIAogICAgICAgICBJbmRleGVkREI6IGRhdGFiYXNlIGZpbGUgb2Ygc3ViZnJhbWUgY2Fu
bm90IGJlIHJlbW92ZWQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGU2YWE0OWVjZmRh
ZjcxZWE3YTcwM2QxNGM3OGIxZGMzOTIyZTY0MWYuLjZjNGI5ODkwYzVhN2I2YmFmM2Q3OTEzMmQ4
YmU1ZWE4MzY5YWQ3YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtMzQzLDQgKzM0
Myw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKICAgICB2b2lkIGNsZWFyTW9ja01lZGlhRGV2
aWNlcygpOwogICAgIHZvaWQgcmVtb3ZlTW9ja01lZGlhRGV2aWNlKERPTVN0cmluZyBwZXJzaXN0
ZW50SWQpOwogICAgIHZvaWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CisKKyAgICB2b2lkIGlu
amVjdFVzZXJTY3JpcHQoRE9NU3RyaW5nIHN0cmluZyk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgdXNlclNjcmlwdEluamVjdGVkQ291bnQ7CiB9OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCmlu
ZGV4IDczMDdiNmM5ZWNkZTIwNjNhY2VlMmE5MThkNTE0YjNjZTRjNDRmZTEuLjZkNGRlZDhlOGE1
N2FhMDc4OGYxYjcwN2EwNjJkZTUwZjFlYzBlZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTE0MCw2ICsx
NDAsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdGV4dEZpZWxkRGlkQmVnaW5FZGl0aW5nKCk7CiAg
ICAgdm9pZCB0ZXh0RmllbGREaWRFbmRFZGl0aW5nKCk7CiAKKyAgICB2b2lkIHJlc2V0VXNlclNj
cmlwdEluamVjdGVkQ291bnQoKSB7IG1fdXNlclNjcmlwdEluamVjdGVkQ291bnQgPSAwOyB9Cisg
ICAgdm9pZCBpbmNyZWFzZVVzZXJTY3JpcHRJbmplY3RlZENvdW50KCkgeyArK21fdXNlclNjcmlw
dEluamVjdGVkQ291bnQ7IH0KKyAgICBzaXplX3QgdXNlclNjcmlwdEluamVjdGVkQ291bnQoKSBj
b25zdCB7IHJldHVybiBtX3VzZXJTY3JpcHRJbmplY3RlZENvdW50OyB9CisKIHByaXZhdGU6CiAg
ICAgSW5qZWN0ZWRCdW5kbGUoKTsKICAgICB+SW5qZWN0ZWRCdW5kbGUoKTsKQEAgLTE5OSw2ICsy
MDMsOCBAQCBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLQXJyYXlSZWY+IG1fcmVwYWludFJl
Y3RzOwogCiAgICAgVmVjdG9yPFN0cmluZz4gbV9hbGxvd2VkSG9zdHM7CisKKyAgICBzaXplX3Qg
bV91c2VyU2NyaXB0SW5qZWN0ZWRDb3VudCB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDY0MjdmZGE0ZDM2YWU3ZDk1N2I2MDFkNzk0
YzJlYzkxMjAyZjExOTkuLjBmNTg2NWY2YzE1MzE5MGQyZjg3NmMzZjkwMmZlNmIyZjdkODg2ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTI3NCw4ICsyNzQsOCBAQCBJbmplY3RlZEJ1
bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSkKICAgICA6
IG1fcGFnZShwYWdlKQogICAgICwgbV93b3JsZChBZG9wdFdLLCBXS0J1bmRsZVNjcmlwdFdvcmxk
Q3JlYXRlV29ybGQoKSkKIHsKLSAgICBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOCBsb2FkZXJD
bGllbnQgPSB7Ci0gICAgICAgIHsgOCwgdGhpcyB9LAorICAgIFdLQnVuZGxlUGFnZUxvYWRlckNs
aWVudFY5IGxvYWRlckNsaWVudCA9IHsKKyAgICAgICAgeyA5LCB0aGlzIH0sCiAgICAgICAgIGRp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUsCiAgICAgICAgIGRpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lLAogICAgICAgICBkaWRGYWlsUHJvdmlz
aW9uYWxMb2FkV2l0aEVycm9yRm9yRnJhbWUsCkBAIC0zMTIsNiArMzEyLDcgQEAgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAg
ICAgIDAsIC8vIHdpbGxMb2FkRGF0YVJlcXVlc3QKICAgICAgICAgMCwgLy8gd2lsbERlc3Ryb3lG
cmFtZV91bmF2YWlsYWJsZQogICAgICAgICAwLCAvLyB1c2VyQWdlbnRGb3JVUkwKKyAgICAgICAg
d2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0
UGFnZUxvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQuYmFzZSk7CiAKQEAgLTQ0Myw2
ICs0NDQsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6cmVzZXRBZnRlclRlc3QoKQogICAg
IFdLQnVuZGxlUGFnZVJlbW92ZUFsbFVzZXJDb250ZW50KG1fcGFnZSk7CiAKICAgICB1bmluc3Rh
bGxGYWtlSGVsdmV0aWNhKCk7CisKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucmVz
ZXRVc2VyU2NyaXB0SW5qZWN0ZWRDb3VudCgpOwogfQogCiAvLyBMb2FkZXIgQ2xpZW50IENhbGxi
YWNrcwpAQCAtNTkyLDYgKzU5NSwxMSBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmlu
aXNoUHJvZ3Jlc3MoV0tCdW5kbGVQYWdlUmVmLCBjb25zdCB2b2lkICpjbGllbnRJbgogICAgIHN0
YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudElu
Zm8pKS0+ZGlkRmluaXNoUHJvZ3Jlc3MoKTsKIH0KIAordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OndpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZy
YW1lUmVmLCBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQor
eworICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+
KGNsaWVudEluZm8pKS0+d2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZSgpOworfQorCiB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiosIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdl
Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRGaW5pc2hEb2N1bWVudExvYWRG
b3JGcmFtZShmcmFtZSk7CkBAIC03NTksNiArNzY3LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpkaWRGaW5pc2hQcm9ncmVzcygpCiAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgi
cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOwogfQogCit2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6d2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZSgpCit7CisgICAgSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmluY3JlYXNlVXNlclNjcmlwdEluamVjdGVkQ291bnQoKTsK
K30KKwogZW51bSBGcmFtZU5hbWVQb2xpY3kgeyBTaG91bGROb3RJbmNsdWRlRnJhbWVOYW1lLCBT
aG91bGRJbmNsdWRlRnJhbWVOYW1lIH07CiAKIHN0YXRpYyB2b2lkIGR1bXBGcmFtZVNjcm9sbFBv
c2l0aW9uKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFN0cmluZ0J1aWxkZXImIHN0cmluZ0J1aWxk
ZXIsIEZyYW1lTmFtZVBvbGljeSBzaG91bGRJbmNsdWRlRnJhbWVOYW1lID0gU2hvdWxkTm90SW5j
bHVkZUZyYW1lTmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4IDMwZTM3NWNiYTUwNjU2ZGJj
MTZkOGUxNGI4MDc0ZTVlNGZhZmZhMmQuLjFjMTUzZDRjYWUzODhlYzAyOTJkOTYwNjEyMzEyMzc0
ZDc3NjAyMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAtNzcsNiArNzcsNyBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VS
ZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIGNvbnN0IHZvaWQqKTsK
ICAgICBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiwg
V0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwgV0tFcnJvclJlZiwgY29uc3Qg
dm9pZCopOwogICAgIHN0YXRpYyBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoV0tCdW5kbGVQYWdl
UmVmLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBjb25zdCB2b2lkKik7
CisgICAgc3RhdGljIHZvaWQgd2lsbEluamVjdFVzZXJTY3JpcHRGb3JGcmFtZShXS0J1bmRsZVBh
Z2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIFdLQnVuZGxlU2NyaXB0V29ybGRSZWYsIGNvbnN0IHZv
aWQqKTsKIAogICAgIHZvaWQgZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRs
ZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVSZWYpOwpAQCAtOTUsNiArOTYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxl
RnJhbWVSZWYpOwogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tCdW5k
bGVGcmFtZVJlZik7CiAgICAgdm9pZCBkaWREZXRlY3RYU1NGb3JGcmFtZShXS0J1bmRsZUZyYW1l
UmVmKTsKKyAgICB2b2lkIHdpbGxJbmplY3RVc2VyU2NyaXB0Rm9yRnJhbWUoKTsKIAogICAgIC8v
IFJlc291cmNlIExvYWQgQ2xpZW50CiAgICAgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJj
ZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IFdLVVJMUmVxdWVzdFJlZiwgYm9vbCBwYWdlTG9hZElzUHJvdmlzaW9uYWwpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5k
ZXggNGRmYTc1OGI4YWZiZDUxZmE0NmViNjYzNTE2ZThiMzdiMjdmYzEzOS4uYjNhZjcyYTQ5Yjli
NDhlNmZjMDlmYzRjMDE2YjQ3ZGQ0NTliMDQxMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yMjY3LDQgKzIyNjcs
MTcgQEAgdm9pZCBUZXN0UnVubmVyOjpkaWRHZXRBcHBsaWNhdGlvbk1hbmlmZXN0KCkKICAgICBj
YWxsVGVzdFJ1bm5lckNhbGxiYWNrKEdldEFwcGxpY2F0aW9uTWFuaWZlc3RDYWxsYmFja0lEKTsK
IH0KIAorc2l6ZV90IFRlc3RSdW5uZXI6OnVzZXJTY3JpcHRJbmplY3RlZENvdW50KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnVzZXJTY3JpcHRJbmpl
Y3RlZENvdW50KCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW5qZWN0VXNlclNjcmlwdChKU1N0
cmluZ1JlZiBzY3JpcHQpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VO
YW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmplY3RVc2VyU2Ny
aXB0IikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlQm9keShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhKU1N0cmluZyhzY3JpcHQpKTsKKyAgICBXS1R5cGVSZWYgcmV0
dXJuRGF0YSA9IDA7CisgICAgV0tCdW5kbGVQYWdlUG9zdFN5bmNocm9ub3VzTWVzc2FnZUZvclRl
c3RpbmcoSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLnBhZ2UoKS0+cGFnZSgpLCBtZXNzYWdl
TmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCksICZyZXR1cm5EYXRhKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCmluZGV4IDM3MWUxZGZhYzFjNjg5MGE4NWRjMWNjZDM4MmYxODcwMDI0
NmI5ZGQuLjI2MzliNGVlZDQ3Yzk3ZWY4ZDg0NzlhZjU5NDBhNDM2MDJkYTYzOWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBA
IC00NTQsNiArNDU0LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTW9ja01lZGlhRGV2aWNl
KEpTU3RyaW5nUmVmIHBlcnNpc3RlbnRJZCk7CiAgICAgdm9pZCByZXNldE1vY2tNZWRpYURldmlj
ZXMoKTsKIAorICAgIHNpemVfdCB1c2VyU2NyaXB0SW5qZWN0ZWRDb3VudCgpIGNvbnN0OworICAg
IHZvaWQgaW5qZWN0VXNlclNjcmlwdChKU1N0cmluZ1JlZik7CisKIHByaXZhdGU6CiAgICAgVGVz
dFJ1bm5lcigpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGMxNmRmNGVhNmE0Yjc2MDA5M2I3Mjk2ODcyOTc3YTczNWU5MmZmMWIuLmU3NzJhZWJhZDVm
ZWEyZDU5Y2YwNzEzODAzZjI5NTEwZTViOGI1YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yOTEyLDYgKzI5MTIsMTEgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6cmVzZXRNb2NrTWVkaWFEZXZpY2VzKCkKIHZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtQWRkVGVzdE9wdGlvbnMoVGVzdE9wdGlvbnMmKSBjb25zdAogewogfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjppbmplY3RVc2VyU2NyaXB0KFdLU3RyaW5nUmVmKQoreworfQorCiAjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKaW5kZXggNGFkZWJkNjc5ZmY5ZmZjMTg4NTY2YmY4OGRkZDMxMDkyNGIzZTg3OC4uNTE5YmZi
N2RhMDA5NzkzNmExMTkyZTliODM4NmFmODVmYzUwMjAxZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMjE4LDYgKzIxOCw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZU1vY2tNZWRpYURldmljZShXS1N0cmluZ1JlZiBwZXJzaXN0ZW50SUQpOwogICAgIHZv
aWQgcmVzZXRNb2NrTWVkaWFEZXZpY2VzKCk7CiAKKyAgICB2b2lkIGluamVjdFVzZXJTY3JpcHQo
V0tTdHJpbmdSZWYpOworCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWY+IGdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oV0tDb250ZXh0Q29uZmlndXJhdGlv
blJlZik7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJh
dGVDb250ZXh0Q29uZmlndXJhdGlvbigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAppbmRleCBmZTI0YTAxZjFlMThkMzM2YTg2YWE3NTM3NjVkNTI4NmI0
Nzg3NDk4Li45ZWFkZDJjMWQ2ODhmNDkyZTc1N2VkMzZhYTliMzM4NDgyNjNiMWZiIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTQxNCw2ICsxNDE0LDEz
IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJ
bmplY3RVc2VyU2NyaXB0IikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VC
b2R5KSA9PSBXS1N0cmluZ0dldFR5cGVJRCgpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgc2NyaXB0
ID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KG1lc3NhZ2VCb2R5KTsKKworICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuaW5qZWN0VXNlclNjcmlwdChzY3JpcHQpOworICAgIH0K
KwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiR2V0
QXBwbGljYXRpb25NYW5pZmVzdCIpKSB7CiAjaWZkZWYgX19CTE9DS1NfXwogICAgICAgICBXS1Bh
Z2VHZXRBcHBsaWNhdGlvbk1hbmlmZXN0X2IoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1h
aW5XZWJWaWV3KCktPnBhZ2UoKSwgXnsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBjN2I3YWRjMGQ0MGYxNDU1ODA5YTZh
ZDZkODIyMmJkOTkxZmM4NTJhLi5hNGQ1MTFjNTI1ODljMDcyYWVlNDEwM2MyYjJkMjNlMWU0YmMw
MWY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9s
bGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCkBAIC0yODAsNCArMjgwLDEzIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Omdl
dEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKCkKICNlbmRpZgogfQogCit2b2lkIFRlc3RDb250cm9s
bGVyOjppbmplY3RVc2VyU2NyaXB0KFdLU3RyaW5nUmVmIHNjcmlwdCkKK3sKKyNpZiBXS19BUElf
RU5BQkxFRAorICAgIGF1dG8gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxs
b2NdIGluaXRXaXRoU291cmNlOiB0b1dURlN0cmluZyhzY3JpcHQpIGluamVjdGlvblRpbWU6V0tV
c2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5P
XSk7CisKKyAgICBbW2dsb2JhbFdlYlZpZXdDb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkVXNlclNjcmlwdDogdXNlclNjcmlwdC5nZXQoKV07CisjZW5kaWYKK30KKwogfSAv
LyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGU5NTM3YWRiOTI3MDMwMTc0NzgxNDNhMGY5YWFiMDZm
ODA3MjhjZi4uZDNkNzJkNzcxZDIwMjUwZmI1NTI2ZWQyNDcwM2Q2ODY3NjkxYjBlOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE4LTA3LTEyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgYSBGcmFtZUxvYWRlckNsaWVudCB3aWxsSW5qZWN0VXNlclNj
cmlwdEZvckZyYW1lIGNhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODc1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2Ny
aXB0LWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9j
b250ZW50ZXh0ZW5zaW9ucy9pbmplY3RlZC1zY3JpcHQtY2FsbGJhY2suaHRtbDogQWRkZWQuCisK
IDIwMTgtMDctMTEgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAg
ICAgICAgIFVURi0xNiBYSFRNTCBmaWxlcyBuZWVkIHN2bjptaW1lLXR5cGUgdG8gYmUgaGFuZGxl
ZCBjb3JyZWN0bHkgYnkgV2luZG93cyBTVk4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2NyaXB0LWNhbGxiYWNrLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQt
c2NyaXB0LWNhbGxiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGEwZTc4NWM5MGY5ZDE4
ODZkOWJiNjhmZDUwN2M3MTI4ZjRiZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9pbmplY3RlZC1zY3JpcHQtY2FsbGJhY2stZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorICAKKworUEFTUyBUZXN0IHdpbGxJbmplY3RVc2Vy
U2NyaXB0IGNhbGxiYWNrIGJlaW5nIGNhbGxlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9jb250ZW50ZXh0ZW5zaW9ucy9pbmplY3RlZC1zY3JpcHQtY2FsbGJhY2suaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2Ny
aXB0LWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2NDM1Y2E0OGFkOGUzYzc1NmJlNzYxMmUy
MDg2OTE5NzNhOTI4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29udGVudGV4dGVuc2lvbnMvaW5qZWN0ZWQtc2NyaXB0LWNhbGxiYWNrLmh0bWwKQEAgLTAsMCAr
MSw1MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBuZXcgY2FsbGJhY2s8
L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3Jp
cHQ+CitmdW5jdGlvbiB3YWl0Rm9yKGR1cmF0aW9uKQoreworICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkdXJhdGlvbikpOworfQorCitmdW5j
dGlvbiB3aXRoRnJhbWUodXJsKQoreworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkg
PT4geworICAgICAgICBsZXQgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKKyAgICAgICAgZnJhbWUuc3JjID0gdXJsOworICAgICAgICBmcmFtZS5vbmxvYWQgPSBmdW5j
dGlvbigpIHsgcmVzb2x2ZShmcmFtZSk7IH07CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoZnJhbWUpOworICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiB2ZXJpZnlVc2VyU2Ny
aXB0SW5qZWN0ZWRDb3VudChleHBlY3RlZCkKK3sKKyAgICBsZXQgY291bnRlciA9IDA7CisgICAg
d2hpbGUgKCsrY291bnRlciA8IDEwMCkgeworICAgICAgICBpZiAodGVzdFJ1bm5lci51c2VyU2Ny
aXB0SW5qZWN0ZWRDb3VudCA9PT0gZXhwZWN0ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIGF3YWl0IHdhaXRGb3IoMTApOworICAgIH0KKyAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qo
IkRpZCBub3QgZ2V0IGV4cGVjdGVkIHZhbHVlICIgKyBleHBlY3RlZCArICIgYnV0ICIgKyB0ZXN0
UnVubmVyLnVzZXJTY3JpcHRJbmplY3RlZENvdW50KTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5j
ICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHJlamVjdCgi
VGVzdCByZXF1aXJlcyBpbnRlcm5hbHMgQVBJIik7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgYXNzZXJ0X2VxdWFscyh0ZXN0UnVubmVyLnVzZXJTY3JpcHRJbmplY3RlZENvdW50LCAwKTsK
KyAgICB0ZXN0UnVubmVyLmluamVjdFVzZXJTY3JpcHQoImZ1bmN0aW9uIGEoKSB7IH0iKTsKKwor
ICAgIGF3YWl0IHdpdGhGcmFtZSgiLiIpOworICAgIGF3YWl0IHZlcmlmeVVzZXJTY3JpcHRJbmpl
Y3RlZENvdW50KDEpOworCisgICAgYXdhaXQgd2l0aEZyYW1lKCIuIik7CisgICAgYXdhaXQgdmVy
aWZ5VXNlclNjcmlwdEluamVjdGVkQ291bnQoMik7Cit9LCAnVGVzdCB3aWxsSW5qZWN0VXNlclNj
cmlwdCBjYWxsYmFjayBiZWluZyBjYWxsZWQnKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>