<?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>109572</bug_id>
          
          <creation_ts>2013-02-12 05:31:47 -0800</creation_ts>
          <short_desc>Web Inspector: Local/session storage tree items in the Resources panel after page refresh are not shown</short_desc>
          <delta_ts>2013-02-21 06:10:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109801</dependson>
    
    <dependson>110105</dependson>
    
    <dependson>110232</dependson>
    
    <dependson>110457</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>timothy</cc>
    
    <cc>vivekg</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830818</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-12 05:31:47 -0800</bug_when>
    <thetext>1. open a page on localhost
2. run localStorage.setItem(&apos;foo&apos;, &apos;bar&apos;)
3. Navigate to the resources tab and select Local Storage &gt; localhost
4. Refresh the page

What is the expected result?
Local Storage &gt; localhost should still be selected

What happens instead?
localhost disappears from Local Storage until you run setItem or getItem.

Upstreaming https://code.google.com/p/chromium/issues/detail?id=104585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837393</commentid>
    <comment_count>1</comment_count>
      <attachid>189299</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-20 05:59:48 -0800</bug_when>
    <thetext>Created attachment 189299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837406</commentid>
    <comment_count>2</comment_count>
      <attachid>189299</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-20 06:14:50 -0800</bug_when>
    <thetext>Comment on attachment 189299
Patch

Attachment 189299 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/16647306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837408</commentid>
    <comment_count>3</comment_count>
      <attachid>189299</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-20 06:18:30 -0800</bug_when>
    <thetext>Comment on attachment 189299
Patch

Attachment 189299 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16648303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837409</commentid>
    <comment_count>4</comment_count>
      <attachid>189304</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-20 06:20:13 -0800</bug_when>
    <thetext>Created attachment 189304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837467</commentid>
    <comment_count>5</comment_count>
      <attachid>189304</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 07:42:02 -0800</bug_when>
    <thetext>Comment on attachment 189304
Patch

Attachment 189304 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16659298

New failing tests:
http/tests/inspector/appcache/appcache-iframe-manifests.html
http/tests/inspector/injected-script-for-origin.html
http/tests/inspector/extensions-network-redirect.html
http/tests/inspector/change-iframe-src.html
http/tests/inspector/modify-cross-domain-rule.html
http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html
http/tests/inspector/console-resource-errors.html
http/tests/inspector/resource-har-conversion.html
http/tests/inspector/extensions-headers.html
http/tests/inspector-enabled/injected-script-discard.html
http/tests/inspector/console-cross-origin-iframe-logging.html
http/tests/inspector/appcache/appcache-swap.html
http/tests/inspector/extensions-useragent.html
http/tests/inspector-enabled/dynamic-scripts.html
http/tests/inspector/stylesheet-source-mapping.html
http/tests/inspector-enabled/console-exception-while-no-inspector.html
http/tests/inspector/console-cd-completions.html
http/tests/inspector/compiler-script-mapping.html
http/tests/inspector/compiler-source-mapping-debug.html
http/tests/inspector/web-socket-frame-error.html
http/tests/inspector/console-xhr-logging.html
http/tests/inspector/console-xhr-logging-async.html
http/tests/inspector/console-cd.html
http/tests/inspector/resource-har-headers.html
http/tests/inspector/network-preflight-options.html
http/tests/inspector/inspect-iframe-from-different-domain.html
http/tests/inspector-enabled/console-log-before-frame-navigation.html
http/tests/inspector-enabled/dom-storage-open.html
http/tests/inspector/resource-parameters.html
http/tests/inspector-enabled/database-open.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837487</commentid>
    <comment_count>6</comment_count>
      <attachid>189304</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 08:28:31 -0800</bug_when>
    <thetext>Comment on attachment 189304
Patch

Attachment 189304 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16660321

New failing tests:
http/tests/inspector/appcache/appcache-iframe-manifests.html
http/tests/inspector/injected-script-for-origin.html
http/tests/inspector/extensions-network-redirect.html
http/tests/inspector/change-iframe-src.html
http/tests/inspector/modify-cross-domain-rule.html
http/tests/inspector/appcache/appcache-manifest-with-non-existing-file.html
http/tests/inspector/console-resource-errors.html
http/tests/inspector/resource-har-conversion.html
http/tests/inspector/extensions-headers.html
http/tests/inspector-enabled/injected-script-discard.html
http/tests/inspector/console-cross-origin-iframe-logging.html
http/tests/inspector/appcache/appcache-swap.html
http/tests/inspector/extensions-useragent.html
http/tests/inspector-enabled/dynamic-scripts.html
http/tests/inspector/stylesheet-source-mapping.html
http/tests/inspector-enabled/console-exception-while-no-inspector.html
http/tests/inspector/console-cd-completions.html
http/tests/inspector/compiler-script-mapping.html
http/tests/inspector/compiler-source-mapping-debug.html
http/tests/inspector/web-socket-frame-error.html
http/tests/inspector/console-xhr-logging.html
http/tests/inspector/console-xhr-logging-async.html
http/tests/inspector/console-cd.html
http/tests/inspector/resource-har-headers.html
http/tests/inspector/network-preflight-options.html
http/tests/inspector/inspect-iframe-from-different-domain.html
http/tests/inspector-enabled/console-log-before-frame-navigation.html
http/tests/inspector-enabled/dom-storage-open.html
http/tests/inspector/resource-parameters.html
http/tests/inspector-enabled/database-open.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837502</commentid>
    <comment_count>7</comment_count>
      <attachid>189330</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-20 08:51:56 -0800</bug_when>
    <thetext>Created attachment 189330
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837536</commentid>
    <comment_count>8</comment_count>
      <attachid>189330</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 10:08:14 -0800</bug_when>
    <thetext>Comment on attachment 189330
For EWS

Attachment 189330 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16654400

New failing tests:
http/tests/inspector-enabled/dom-storage-open.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837599</commentid>
    <comment_count>9</comment_count>
      <attachid>189330</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 11:22:38 -0800</bug_when>
    <thetext>Comment on attachment 189330
For EWS

Attachment 189330 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16647436

New failing tests:
http/tests/inspector-enabled/dom-storage-open.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837682</commentid>
    <comment_count>10</comment_count>
      <attachid>189330</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-20 13:16:36 -0800</bug_when>
    <thetext>Comment on attachment 189330
For EWS

Attachment 189330 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16660458

New failing tests:
http/tests/inspector-enabled/dom-storage-open.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838175</commentid>
    <comment_count>11</comment_count>
      <attachid>189464</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-20 23:52:58 -0800</bug_when>
    <thetext>Created attachment 189464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838213</commentid>
    <comment_count>12</comment_count>
      <attachid>189474</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-21 01:34:05 -0800</bug_when>
    <thetext>Created attachment 189474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838214</commentid>
    <comment_count>13</comment_count>
      <attachid>189464</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-21 01:35:40 -0800</bug_when>
    <thetext>Comment on attachment 189464
Patch

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

&gt; Source/WebCore/inspector/InjectedScriptSource.js:188
&gt; +                    hints.domStorageId = JSON.parse(storageId);

We should use InjectedScriptHost.evaluate
 instead.

&gt; Source/WebCore/inspector/InspectorDOMStorageAgent.cpp:118
&gt; +    restore();

You should not call restore from enable

&gt; Source/WebCore/inspector/InspectorDOMStorageAgent.cpp:160
&gt; +    ExceptionCode exception = 0;

Let&apos;s get rid of success parameter and use ErrorString for that.

&gt; Source/WebCore/inspector/front-end/DOMStorage.js:34
&gt; + * @param {string=} id

looks like id is not used

&gt; Source/WebCore/inspector/front-end/DOMStorageItemsView.js:62
&gt; +        this.update();

Why do you need this?

&gt; Source/WebCore/inspector/front-end/EmptyView.js:55
&gt; +    _processWillHide: function()

Redundant change?

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:286
&gt; +        WebInspector.domStorageModel.storages().forEach(this._addDOMStorage.bind(this));

I would expect that we receive OriginAdded events in this case and hence DOMStorageAdded events, so this line seems redundant.

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:344
&gt; +        if (this._domStorageTreeElements.get(domStorage))

I don&apos;t think this should ever happen, we should replace this check with a console.assert call.

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:506
&gt; +    _dropDOMStorage: function(domStorage)

Not used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838232</commentid>
    <comment_count>14</comment_count>
      <attachid>189478</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-21 01:59:58 -0800</bug_when>
    <thetext>Created attachment 189478
Comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838311</commentid>
    <comment_count>15</comment_count>
      <attachid>189478</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 03:58:45 -0800</bug_when>
    <thetext>Comment on attachment 189478
Comments addressed

Clearing flags on attachment: 189478

Committed r143581: &lt;http://trac.webkit.org/changeset/143581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838313</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 03:58:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838324</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 04:26:11 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 110457</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838371</commentid>
    <comment_count>18</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2013-02-21 06:10:20 -0800</bug_when>
    <thetext>Committed r143593: &lt;http://trac.webkit.org/changeset/143593&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189299</attachid>
            <date>2013-02-20 05:59:48 -0800</date>
            <delta_ts>2013-02-20 06:20:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109572-20130220175609.patch</filename>
            <type>text/plain</type>
            <size>75306</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdlMjc1OGNhYjJlNTM2
NzVlZTFhZDYyZWE0NGVkYThhMDcyZjI5Ni4uYTE0YTJhODQ5ZmI3MDFkYjRiNDA0MTQ3MGI4ODYx
NTNmODQyMjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk5IEBACiAyMDEzLTAyLTIwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUgaXRlbXMgaW4gdGhlIFJlc291cmNlcyBw
YW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBzaG93bgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVzdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6aXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OmdldERPTVN0b3JhZ2VJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OnNldERPTVN0b3JhZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFnZUl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzdG9yYWdlSWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRT
dG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmaW5kRnJhbWVXaXRoU2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yUGFnZUFnZW50KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5zdG9y
YWdlSWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlLmdldCBp
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUuZ2V0IHNlY3Vy
aXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5n
ZXRJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUuc2V0
SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUucmVtb3Zl
SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9zZWN1cml0eU9yaWdpbkFk
ZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9z
ZWN1cml0eU9yaWdpblJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUuX3N0b3JhZ2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZU1vZGVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZUl0ZW1SZW1v
dmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9k
b21TdG9yYWdlSXRlbUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9k
ZWwucHJvdG90eXBlLnN0b3JhZ2VGb3JJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZU1vZGVsLnByb3RvdHlwZS5zdG9yYWdlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9zaG93RE9NU3RvcmFnZUl0ZW1z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS5f
ZGF0YUdyaWRGb3JET01TdG9yYWdlSXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9yZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRW1wdHlWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1dpbGxIaWRlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUuX2luaXRpYWxpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZVJlbW92ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVET01TdG9yYWdlVHJl
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBpdGVt
VVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
bG9jYWxTdG9yYWdlKToKKworMjAxMy0wMi0yMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZA
Y2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBTZWN1cml0
eU9yaWdpbkFkZGVkIGFuZCBTZWN1cml0eU9yaWdpblJlbW92ZWQgZXZlbnRzIGludG8gUmVzb3Vy
Y2VUcmVlTW9kZWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDIzMgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZiYzBiZTJkZWQ2Y2I2YjJiZTE1
ZGYyNmY1NzM3NTNkNWY4OTUxYjMuLjY3OWZlNzk1OThlN2UyNjc4M2YyNGUwOGM3ODQ1MjBmZWQ3
NDAyMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjIzLDcgKzE2MjMsNiBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKICAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDVhMDg4Yzk5ZjdhOWU0NzQxODk3YzIzZThkMDM4MDFlY2ZhNThiOWMuLjY4OTg1MWU5
MWY0N2U5ZTE2NTdhNWJlZjBmY2M3ZWRjOGZiZWMzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMzgzOCw4ICszODM4LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBcCi0J
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggZTQyNTZjY2RlODFmNzE5OTY3MzJmZmExOGM2NmVjNzA5MDFiNDEyOS4u
MjQzYWNkZmM5NGQ0NThjNWRiMWJmNDY3ZjEyMDc3OGE5Nzg3MjExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC03OTgsNyArNzk4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBcCi0gICAgaW5z
cGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5jcHAgXApAQCAtMTk5OSw3ICsxOTk4LDYgQEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oIFwKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhNWUzNTQwMWJkM2Q3Y2U3Nzgw
NzNkMTVkOWE3MThhZWI3YmY5ZjEuLjVlYmI1ZGVlYmU5MTg0M2UxZDgyZGI4MTdiOWQ4MTcyMDQ2
NmI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NTksOCArMTg1OSw2IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCcsCi0gICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAnLAotICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VJbnN0cnVtZW50YXRpb24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA5NTU4
YWJiYTA2NzAwMTMwNjg0ODcwNjI0NDk0ZGI0NmNlZDZjOTY0Li41Zjk4MDA2MDZmYWNkMDljYzll
ZjNjYjcxOGVjM2RlNjIwMjc5Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE5MTg0LDcgKzE5
MTg0LDYgQEAgX19aTjNXVEYxN0hhc2hNYXBUcmFuc2xhdG9ySVN0NHBhaXJJTlNfNlJlZlB0cklO
N1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luRUVFTlMyX0kKIF9fWk43V2ViQ29yZTI0SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uMjBkaWRVc2VET01TdG9yYWdlSW1wbEVQTlNfMTlJbnN0cnVtZW50aW5n
QWdlbnRzRVBOU18xMVN0b3JhZ2VBcmVhRWJQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQxNmRpZFVzZURPTVN0b3JhZ2VFUE5TXzExU3RvcmFnZUFyZWFF
YlBOU181RnJhbWVFCiBfX1pON1dlYkNvcmU3U3RvcmFnZTZjcmVhdGVFUE5TXzVGcmFtZUVOM1dU
RjEwUGFzc1JlZlB0cklOU18xMVN0b3JhZ2VBcmVhRUVFCi1fX1pON1dlYkNvcmUyN0luc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZUMxRVBOU183U3RvcmFnZUViUE5TXzVGcmFtZUUKIF9fWk43V2Vi
Q29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzdT
dG9yYWdlRQogX19aTjdXZWJDb3JlNHdyYXBJTlNfOUpTU3RvcmFnZUVOU183U3RvcmFnZUVFRU4z
SlNDN0pTVmFsdWVFUE5TM185RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBUMF8K
IF9fWk43V2ViQ29yZTE1Z2V0RE9NU3RydWN0dXJlSU5TXzlKU1N0b3JhZ2VFRUVQTjNKU0M5U3Ry
dWN0dXJlRVBOUzJfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTE5MjA3
LDcgKzE5MjA2LDYgQEAgX19aTjdXZWJDb3JlMTRKU1N0b3JhZ2VPd25lcjI2aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHNFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm8KIF9fWk43V2ViQ29yZTE0SlNT
dG9yYWdlT3duZXI4ZmluYWxpemVFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm93bkVFRVB2CiBfX1pO
N1dlYkNvcmU5SlNTdG9yYWdlRDFFdgogX19aTjdXZWJDb3JlN1N0b3JhZ2VEMUV2Ci1fX1pON1dl
YkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUQwRXYKIF9fWk5LN1dlYkNvcmUxNFNl
Y3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCiBfX1pON1dlYkNvcmU5SlNTdG9yYWdlMTBuYW1lR2V0
dGVyRVBOM0pTQzlFeGVjU3RhdGVFTlMxXzdKU1ZhbHVlRVJLTlMxXzEwSWRlbnRpZmllckUKIF9f
Wk5LN1dlYkNvcmU3U3RvcmFnZTdnZXRJdGVtRVJLTjNXVEY2U3RyaW5nRQpAQCAtMjAzNzYsNyAr
MjAzNzQsNiBAQCBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5TXzI1SlNDU1NWYWx1
ZUxpc3RDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdAogX19aTjdXZWJDb3JlMzBqc0RPTVdp
bmRvd0ZpbGVMaXN0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktO
UzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMTBKU0ZpbGVMaXN0MTRnZXRDb25zdHJ1Y3Rv
ckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk43V2ViQ29yZTE3
Z2V0RE9NQ29uc3RydWN0b3JJTlNfMjFKU0ZpbGVMaXN0Q29uc3RydWN0b3JFRUVQTjNKU0M4SlNP
YmplY3RFUE5TMl85RXhlY1N0YXRlRVBLTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKLV9fWk5LN1dl
YkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTE3aXNTYW1lSG9zdEFuZFR5cGVFUE5T
XzVGcmFtZUViCiBfX1pON1dlYkNvcmU1M2pzRE9NV2luZG93U1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aFJlbENvbnN0cnVjdG9yRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoUmVsMTRnZXRDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9i
amVjdEUKIF9fWk43V2ViQ29yZTE3Z2V0RE9NQ29uc3RydWN0b3JJTlNfNDRKU1NWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhSZWxDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdEVQTlMyXzlF
eGVjU3RhdGVFUEtOU18xN0pTRE9NR2xvYmFsT2JqZWN0RQpAQCAtMjc0MDMsMjMgKzI3NDAwLDE0
IEBAIF9fWk43V2ViQ29yZTE4SW5zcGVjdG9yUGFnZUFnZW50MTBmcmFtZUZvcklkRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlMThJbnNwZWN0b3JQYWdlQWdlbnQxNXJlc291cmNlQ29udGVu
dEVQTjNXVEY2U3RyaW5nRVBOU181RnJhbWVFUktOU180S1VSTEVTM18KIF9fWk43V2ViQ29yZUwx
OGRlY29kZU1haW5SZXNvdXJjZUVQTlNfNUZyYW1lRVBOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmVMMThkZWNvZGVTaGFyZWRCdWZmZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTJTaGFyZWRCdWZm
ZXJFRUVSS05TMF82U3RyaW5nRVBTNF8KLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlNGJpbmRFUE5TXzE3SW5zcGVjdG9yRnJvbnRlbmRFCiBfX1pON1dlYkNvcmUxN0lu
c3BlY3RvckZyb250ZW5kMTBET01TdG9yYWdlMTNhZGRET01TdG9yYWdlRU4zV1RGMTBQYXNzUmVm
UHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUxNVN0b3JhZ2VBcmVhU3lu
YzEzc2NoZWR1bGVDbGVhckV2CiBfX1pON1dlYkNvcmUyNkluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyMzFET01TdG9yYWdlX2dldERPTVN0b3JhZ2VFbnRyaWVzRWxQTlNfMTVJbnNwZWN0b3JPYmpl
Y3RFCiBfX1pON1dlYkNvcmUyNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDIwZ2V0RE9NU3RvcmFn
ZUVudHJpZXNFUE4zV1RGNlN0cmluZ0VpUE5TMV82UmVmUHRySU5TXzE0SW5zcGVjdG9yQXJyYXlF
RUUKLV9fWk4zV1RGOUhhc2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0lu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9F
RU5TXzdJbnRIYXNoSWpFRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5T
Q19JUzVfRUVFRVNEX0UxNmxvb2t1cEZvcldyaXRpbmdFUktpCi1fX1pOM1dURjlIYXNoVGFibGVJ
aVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FM2FkZElpUzVf
TlNfMTdIYXNoTWFwVHJhbnNsYXRvcklTNl9TRl9TQV9FRUVFUzFfSU5TXzE3SGFzaFRhYmxlSXRl
cmF0b3JJaVM2X1M4X1NBX1NGX1NEX0VFYkVSS1RfUktUMF8KLV9fWk4zV1RGOUhhc2hUYWJsZUlp
U3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpFRU5TXzE0UGFp
ckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0U0ZmluZElpTlNf
MjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySWlTNl9TQV9FRUVFTlNfMTdIYXNoVGFibGVJdGVyYXRv
cklpUzZfUzhfU0FfU0ZfU0RfRUVSS1RfCi1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5T
XzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQ
YWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRz
SU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FNWNsZWFyRXYKLV9fWk4zV1RGOUhh
c2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpF
RU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0U2
cmVoYXNoRWkKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlMzFzdGFy
dFJlcG9ydGluZ0NoYW5nZXNUb0Zyb250ZW5kRXYKIF9fWk5LN1dlYkNvcmU3U3RvcmFnZTNrZXlF
agogX19aTks3V2ViQ29yZTE1U3RvcmFnZUFyZWFJbXBsM2tleUVqCiBfX1pON1dlYkNvcmUxMFN0
b3JhZ2VNYXAza2V5RWoKIF9fWk43V2ViQ29yZTEwU3RvcmFnZU1hcDE4c2V0SXRlcmF0b3JUb0lu
ZGV4RWoKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlZXFFUktOU18x
M0V2ZW50TGlzdGVuZXJFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZTZ1bmJpbmRFdgogX19aTjdXZWJDb3JlMTRDb25zb2xlTWVzc2FnZTEzYWRkVG9Gcm9udGVuZEVQ
TlNfMTdJbnNwZWN0b3JGcm9udGVuZDdDb25zb2xlRVBOU18yMUluamVjdGVkU2NyaXB0TWFuYWdl
ckUKIF9fWk43V2ViQ29yZTE3SW5zcGVjdG9yRnJvbnRlbmQ3Q29uc29sZTEybWVzc2FnZUFkZGVk
RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUy
Nkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyMTFQYWdlX3JlbG9hZEVsUE5TXzE1SW5zcGVjdG9y
T2JqZWN0RQpAQCAtMzY0MDcsMTAgKzM2Mzk1LDggQEAgX19aVFZON1dlYkNvcmUxMVR5cGVCdWls
ZGVyNUFycmF5SU5TMF8zRE9NNE5vZGVFRUUKIF9fWlRWTjdXZWJDb3JlMThJbnNwZWN0b3JCYXNl
QWdlbnRJTlNfMTdJbnNwZWN0b3JET01BZ2VudEVFRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNf
MjhSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVj
dG9yQmFzZUFnZW50SU5TXzI1SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudEVFRQotX19aVFZOM1dU
RjIxTWVtb3J5SW5zdHJ1bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2VFRUUKIF9fWlRWTjdXZWJDb3JlMTFUeXBlQnVpbGRlcjVBcnJheUlOUzFf
SU4zV1RGNlN0cmluZ0VFRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVjdG9yQmFzZUFnZW50SU5T
XzI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RUVFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZTE0c19uZXh0VW51c2VkSWRFCiBfX1pUVk4zV1RGMjFNZW1vcnlJbnN0
cnVtZW50YXRpb243V3JhcHBlcklON1dlYkNvcmUxMVN0b3JhZ2VBcmVhRUVFCiBfX1pUVk43V2Vi
Q29yZTVUaW1lcklOU18yOEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2tFRUUKIF9fWlRWTjdX
ZWJDb3JlMjBGcm9udGVuZE1lbnVQcm92aWRlckUKQEAgLTM4NDU2LDcgKzM4NDQyLDYgQEAgX19a
TjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXM5SW5zcGVjdG9yRQogX19aTjdXZWJDb3JlMThX
ZWJDb3JlTWVtb3J5VHlwZXMxOUluc3BlY3RvckNvbnRyb2xsZXJFCiBfX1pON1dlYkNvcmUxOFdl
YkNvcmVNZW1vcnlUeXBlczIwSW5zcGVjdG9yTWVtb3J5QWdlbnRFCiBfX1pON1dlYkNvcmUxOFdl
YkNvcmVNZW1vcnlUeXBlczI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RQotX19aTjdXZWJDb3Jl
MThXZWJDb3JlTWVtb3J5VHlwZXMyOEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXNFCiBfX1pO
N1dlYkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczE2SW5zcGVjdG9yT3ZlcmxheUUKIF9fWk43V2Vi
Q29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjJJbnNwZWN0b3JQcm9maWxlckFnZW50RQogX19aTjdX
ZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMyMkluc3BlY3RvckRlYnVnZ2VyQWdlbnRFCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDM2MzI0YmNh
OWE4YjhiNDQ4ZmM2MGFmNjM4ZTEzMjQxMzBjODBiOTguLjg3YmViYjAzMjc3ZTViMzIyZTM5YzUy
Y2U3ZTEzN2QxZDQxNWJmNzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC03NjEwMywzMCArNzYxMDMsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIgotCQkJCT4K
LQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRl
eCBhYzRjMDNmY2MzMzFjYjNlNjNmNzQ1NDRjMDdkOWQ5NzJiNzFhYzVmLi5mOTZhMGFjZTE3OTE0
OTMwYTE5Mzc0MzBhMjU5ZmM3YmQ4MzFjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTU2ODQsOSArNTY4NCw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgPC9DbENvbXBpbGU+CkBAIC04Mzc3LDcgKzgzNzQsNiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTUFnZW50LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2xpZW50
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNzcyNzY2Mjc2YjcyYjBiOGQ1Mzk2NDFlYjkwNjVmZjll
ZmZkMTUxZS4uNWI5NmYzYTJhZWMyMWI4OWFkOTBjZTcwZjdlZDA3ODNlM2M3ZTBkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtNjQ4Myw5ICs2NDgzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+
aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCI+Ci0gICAg
ICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAi
PgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTEzNzkxLDkgKzEzNzg4LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3Rv
clxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3Rvcjwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIj4KLSAgICAgIDxGaWx0ZXI+aW5z
cGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgiPgogICAgICAgPEZpbHRl
cj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNmNlYzQwMWZjNmMx
NGM4NmM4NDAzZTA5NmJlZDEwYzcxOTM4MThiLi4yMmVjZjVlZWQ0OWMzODU2MGVmNjM0ZGM1MDYw
NGY4MjZkZTJlYmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTE5LDggKzExMTksNiBAQAogCQk0MUUxQjFEMTBGRjU5ODY5
MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNCMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdv
cmtlci5oICovOyB9OwogCQk0MUUxQjFEMzBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFC
MUNEMEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuY3BwICovOyB9OwogCQk0MUUxQjFE
NDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDRTBGRjU5ODY5MDA1NzZCM0IgLyogU2hh
cmVkV29ya2VyLmggKi87IH07Ci0JCTQxRjA2MTc0MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuaCAqLzsgfTsKLQkJNDFGMDYxNzUwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE3MzBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlLmNwcCAqLzsgfTsKIAkJNDFGMDYxOEUwRjVGMDY5ODAwQTA3RUFDIC8q
IENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuaCAqLzsg
fTsKIAkJNDFGMDYxOEYwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MThEMEY1RjA2
OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi87IH07CiAJCTQxRjA2MjE0MEY1RjE5
MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjIxMjBGNUYxOTI2MDBBMDdFQUMg
LyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oICovOyB9OwpAQCAtODUwMiw4ICs4NTAwLDYg
QEAKIAkJNDFFMUIxQ0QwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRXb3JrZXIuY3BwOyBwYXRoID0g
d29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUUxQjFDRTBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZFdvcmtlci5oOyBwYXRoID0gd29ya2Vycy9TaGFyZWRX
b3JrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIxQ0YwRkY1OTg2OTAw
NTc2QjNCIC8qIFNoYXJlZFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU2hhcmVk
V29ya2VyLmlkbDsgcGF0aCA9IHdvcmtlcnMvU2hhcmVkV29ya2VyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDFGMDYxNzIwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDFGMDYxNzMwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYwNjE4QzBG
NUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ29uc29sZU1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGMDYxOEQwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNvbGVNZXNzYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTUyNjMsOCArMTUyNTksNiBAQAogCQkJCUYzRDRDNDc3MTJFMDc2NjMwMDNEQTE1MCAvKiBJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggKi8sCiAJCQkJN0E3NEVDQjgxMDE4MzlBNTAwQkY5
MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgKi8sCiAJCQkJN0E3NEVDQjkxMDE4
MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oICovLAotCQkJCTQxRjA2
MTczMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwICov
LAotCQkJCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2UuaCAqLywKIAkJCQkxNUQxN0QxRTE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50LmNwcCAqLywKIAkJCQkxNUQxN0QxRjE0NzIzMUVCMDA1RUJDQTYgLyogSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50LmggKi8sCiAJCQkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1
IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICovLApAQCAtMjQ3NjAsNyArMjQ3NTQsNiBA
QAogCQkJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjNENEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8qIEluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBNzRFQ0JCMTAxODM5QTYwMEJG
OTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
RjA2MTc0MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTE1RDE3RDIyMTQ3MjMxRUIwMDVFQkNBNiAvKiBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OERBMjBFMTUyMEVCOEMwMDYx
NDFDMSAvKiBJbnNwZWN0b3JGcm9udGVuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjI3Nzc3NjAx
MzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODA1NCw3ICsyODA0Nyw2IEBACiAJCQkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFB
IC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzRDRDNDc4MTJF
MDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdBNzRFQ0JBMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFGMDYxNzUwRjVGMDBBQzAwQTA3RUFDIC8q
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNUQx
N0QyMTE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9u
dGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyog
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRl
eCA0MTU5M2VhODY5MThkNTkwNzk4ZjQxMTZlMDhlODAxNmJjZDdjYWIyLi4yZDg1MWEyZjU1YTA5
ZGUzNWE2M2VmM2IzMzY0OGUzMzQyZjcwYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC02MCw3ICs2MCw2IEBAIE1l
bW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3IgPSAiV2ViSW5zcGVj
dG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JDb250
cm9sbGVyID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6SW5zcGVjdG9yTWVtb3J5QWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgPSAiV2Vi
SW5zcGVjdG9yIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2VzID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBl
IFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yT3ZlcmxheSA9ICJXZWJJbnNwZWN0b3IiOwog
TWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvclByb2ZpbGVyQWdl
bnQgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVz
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gIldlYkluc3BlY3RvciI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCBhYmNmMTc2
MTYxZGZmNTk2MDlhOTA4ZWNiNjE2MTcyNGI0YjE5YWVlLi4xMzY0MTlmZDI3MGY3MTk2YjA4NWY4
ZTEwZmVkNTY2ZjZmYzZmYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckNvbnRyb2xsZXI7CiAgICAgc3RhdGljIE1l
bW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yTWVtb3J5QWdlbnQ7CiAgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OwotICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXM7CiAgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgSW5zcGVjdG9yT3ZlcmxheTsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYzllNjNlZjQ5ODc2NWUyZTdkODFmZDYwMDA4ODFhMTJj
ZDU3MjZmNC4uNTZhZGM0MGJmZjkzOGZlYWQ3MzljY2UxMjE0MmI3ODQyNDNlYTBhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAt
MTg1LDcgKzE4NSw3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IGNhc2UgIlN0b3JhZ2UiOgogICAgICAgICAgICAgICAgIHZhciBzdG9yYWdlSWQgPSBJbmplY3Rl
ZFNjcmlwdEhvc3Quc3RvcmFnZUlkKG9iamVjdCkKICAgICAgICAgICAgICAgICBpZiAoc3RvcmFn
ZUlkKQotICAgICAgICAgICAgICAgICAgICBoaW50cy5kb21TdG9yYWdlSWQgPSBzdG9yYWdlSWQ7
CisgICAgICAgICAgICAgICAgICAgIGhpbnRzLmRvbVN0b3JhZ2VJZCA9IEpTT04ucGFyc2Uoc3Rv
cmFnZUlkKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBJbmpl
Y3RlZFNjcmlwdEhvc3QuaW5zcGVjdChvYmplY3RJZCwgaGludHMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGNiYTFlZGViZGJlODFiZmUxNWRjNzNhOTM4YjA4
N2VjNzYwMzhiYjAuLjQ2Y2Q5NjE1MmZiMGQ4Nzg3M2MyMWFjYTY2ODkyNDNkOTc3NDU2MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE0MjMsMjIgKzE0MjMs
MTYgQEAKICAgICB7CiAgICAgICAgICJkb21haW4iOiAiRE9NU3RvcmFnZSIsCiAgICAgICAgICJo
aWRkZW4iOiB0cnVlLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiUXVlcnkgYW5kIG1vZGlmeSBE
T00gc3RvcmFnZS4gU2Vzc2lvbi9sb2NhbCBzdG9yYWdlcyBhcmUgbWF0ZXJpYWxpemVkIHVwb24g
dGhlIGZpcnN0IGFjY2VzcyBpbnNpZGUgYSBmcmFtZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHNl
Y3VyaXR5IG9yaWdpbi4iLAogICAgICAgICAidHlwZXMiOiBbCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgImlkIjogIlN0b3JhZ2VJZCIsCi0gICAgICAgICAgICAgICAgInR5cGUiOiAi
c3RyaW5nIiwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGlkZW50aWZp
ZXIgb2YgRE9NIHN0b3JhZ2UgZW50cnkuIiwKLSAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAiaWQiOiAi
RW50cnkiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGVudHJ5LiIsCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGlkZW50aWZpZXIuIiwKICAgICAgICAgICAgICAg
ICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiRG9jdW1lbnQgb3JpZ2luLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc0xvY2FsU3RvcmFnZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24i
OiAiVHJ1ZSBmb3IgbG9jYWwgc3RvcmFnZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiLCAiZGVzY3JpcHRpb24iOiAiRW50cnkgaWQg
Zm9yIGZ1cnRoZXIgcmVmZXJlbmNlLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlY3VyaXR5T3JpZ2luIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNlY3Vy
aXR5IG9yaWdpbiBmb3IgdGhlIHN0b3JhZ2UuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImlzTG9jYWxTdG9yYWdlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6
ICJXaGV0aGVyIHRoZSBzdG9yYWdlIGlzIGxvY2FsIHN0b3JhZ2UgKG5vdCBzZXNzaW9uIHN0b3Jh
Z2UpLiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7
CkBAIC0xNDU5LDcgKzE0NTMsNyBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJE
aXNhYmxlcyBzdG9yYWdlIHRyYWNraW5nLCBwcmV2ZW50cyBzdG9yYWdlIGV2ZW50cyBmcm9tIGJl
aW5nIHNlbnQgdG8gdGhlIGNsaWVudC4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldERPTVN0b3JhZ2VFbnRyaWVzIiwKKyAgICAgICAg
ICAgICAgICAibmFtZSI6ICJnZXRET01TdG9yYWdlSXRlbXMiLAogICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIs
ICIkcmVmIjogIlN0b3JhZ2VJZCIgfQogICAgICAgICAgICAgICAgIF0sCkBAIC0xNDkxLDEyICsx
NDg1LDYgQEAKICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibmFtZSI6ICJhZGRET01TdG9yYWdlIiwKLSAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdG9yYWdl
IiwgIiRyZWYiOiAiRW50cnkiIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImRvbVN0b3JhZ2VJdGVtc0Ns
ZWFyZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIsICAiJHJlZiI6ICJTdG9yYWdlSWQiIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IDY3Y2Vh
NDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2YjgyMDk5MzkuLjFlYjhlMjE1YzVlNjQyOGU3OGNh
YWVmN2FkMGFiOTkyNmVkNzc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFsbEluT25lLmNwcApAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckRPTUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIgotI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggODU0ODM2MjMxMDFlZDdhNThm
OGMyYjQ5NTBlNTUxYzI4MzEwMzBkYy4uZmRjNDRjZjhjNzM3YWVmOGVkMDc0YjY0YTA2ZmRhZWVi
NTFkNzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2Vu
dCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCi0gICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIE93
blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
cGFnZUFnZW50LCBtX3N0YXRlLmdldCgpKSk7CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmluZGV4
IDA2YzQyNzBlNzIyYTkyNjU2NGU3YmJiZjdiMWNmOGJlNzZmNzFmM2EuLjI2ZjEyMWI0MWJmYzgz
ZDMyOGE3ZjlmNWRhMDlhNDVkZTg1ZjVjOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC0zOCwxMyArMzgsMTYg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFn
ZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKICNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgorI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNp
bmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAKQEAgLTcxLDEwICs3NCwxMCBAQCBzdGF0aWMgYm9vbCBoYWRFeGNlcHRpb24o
RXhjZXB0aW9uQ29kZSBlYywgRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nKQogICAgIH0KIH0KIAot
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3Rh
dGUqIHN0YXRlKQorSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9y
UGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKICAg
ICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+KCJET01TdG9y
YWdlIiwgaW5zdHJ1bWVudGluZ0FnZW50cywgc3RhdGUpCisgICAgLCBtX3BhZ2VBZ2VudChwYWdl
QWdlbnQpCiAgICAgLCBtX2Zyb250ZW5kKDApCi0gICAgLCBtX2VuYWJsZWQoZmFsc2UpCiB7CiAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQodGhp
cyk7CiB9CkBAIC05Miw1NSArOTUsNDMgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIAogdm9pZCBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OmNsZWFyRnJvbnRlbmQoKQogewotICAgIERPTVN0b3JhZ2VSZXNv
dXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0b3JhZ2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAg
ICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMu
YmVnaW4oKTsgaXQgIT0gZG9tU3RvcmFnZUVuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT51
bmJpbmQoKTsKICAgICBtX2Zyb250ZW5kID0gMDsKICAgICBkaXNhYmxlKDApOwogfQogCiB2b2lk
IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVzdG9yZSgpCiB7Ci0gICAgbV9lbmFibGVkID0g
IG1fc3RhdGUtPmdldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2Vu
dEVuYWJsZWQpOworfQorCitib29sIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6aXNFbmFibGVk
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0ZS0+Z2V0Qm9vbGVhbihET01TdG9yYWdlQWdl
bnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcqKQogewotICAgIGlmIChtX2VuYWJsZWQp
CisgICAgaWYgKGlzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9lbmFibGVkID0g
dHJ1ZTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21T
dG9yYWdlQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOwogCi0gICAgRE9NU3RvcmFnZVJlc291cmNl
c01hcDo6aXRlcmF0b3IgcmVzb3VyY2VzRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9y
IChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2lu
KCk7IGl0ICE9IHJlc291cmNlc0VuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT5iaW5kKG1f
ZnJvbnRlbmQpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6
OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIHRydWUpOworICAgIHJlc3RvcmUoKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogewotICAg
IGlmICghbV9lbmFibGVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9lbmFibGVkID0gZmFsc2U7
Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFn
ZUFnZW50RW5hYmxlZCwgbV9lbmFibGVkKTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0
b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkLCBmYWxzZSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpnZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgZW50cmllcykKK3Zv
aWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpnZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlk
LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4g
PiYgaXRlbXMpCiB7Ci0gICAgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBzdG9yYWdlUmVz
b3VyY2UgPSBnZXRET01TdG9yYWdlUmVzb3VyY2VGb3JJZChzdG9yYWdlSWQpOwotICAgIGlmICgh
c3RvcmFnZVJlc291cmNlKSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJTdG9yYWdlIHJlc291
cmNlIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVuIHN0b3JhZ2UgaWRlbnRpZmllciI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgRnJhbWUqIGZyYW1lID0gc3RvcmFnZVJlc291cmNlLT5mcmFt
ZSgpOwotICAgIGlmICghZnJhbWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkZyYW1lIG5v
dCBmb3VuZCI7CisgICAgRnJhbWUqIGZyYW1lOworICAgIFJlZlB0cjxTdG9yYWdlQXJlYT4gc3Rv
cmFnZUFyZWEgPSBmaW5kU3RvcmFnZUFyZWEoZXJyb3JTdHJpbmcsIHN0b3JhZ2VJZCwgZnJhbWUp
OworICAgIGlmICghc3RvcmFnZUFyZWEpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKLSAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiBz
dG9yYWdlRW50cmllcyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3Ry
aW5nPiA+OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWls
ZGVyOjpBcnJheTxTdHJpbmc+ID4gPiBzdG9yYWdlSXRlbXMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8
VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPjo6Y3JlYXRlKCk7CiAKICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICBTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEgPSBzdG9yYWdlUmVzb3Vy
Y2UtPnN0b3JhZ2VBcmVhKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0b3JhZ2VB
cmVhLT5sZW5ndGgoZWMsIGZyYW1lKTsgKytpKSB7CiAgICAgICAgIFN0cmluZyBuYW1lKHN0b3Jh
Z2VBcmVhLT5rZXkoaSwgZWMsIGZyYW1lKSk7CiAgICAgICAgIGlmIChoYWRFeGNlcHRpb24oZWMs
IGVycm9yU3RyaW5nKSkKQEAgLTE1MSw4NyArMTQyLDY0IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpnZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+IGVudHJ5ID0g
VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz46OmNyZWF0ZSgpOwogICAgICAgICBlbnRyeS0+YWRk
SXRlbShuYW1lKTsKICAgICAgICAgZW50cnktPmFkZEl0ZW0odmFsdWUpOwotICAgICAgICBzdG9y
YWdlRW50cmllcy0+YWRkSXRlbShlbnRyeSk7CisgICAgICAgIHN0b3JhZ2VJdGVtcy0+YWRkSXRl
bShlbnRyeSk7CiAgICAgfQotICAgIGVudHJpZXMgPSBzdG9yYWdlRW50cmllcy5yZWxlYXNlKCk7
CisgICAgaXRlbXMgPSBzdG9yYWdlSXRlbXMucmVsZWFzZSgpOwogfQogCi12b2lkIEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUs
IGJvb2wqIHN1Y2Nlc3MpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3Rv
cmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3Rv
cmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3Vj
Y2VzcykKIHsKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIHN0b3JhZ2VSZXNvdXJj
ZSA9IGdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKHN0b3Jh
Z2VSZXNvdXJjZSkgewotICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbiA9IDA7Ci0gICAg
ICAgIHN0b3JhZ2VSZXNvdXJjZS0+c3RvcmFnZUFyZWEoKS0+c2V0SXRlbShrZXksIHZhbHVlLCBl
eGNlcHRpb24sIHN0b3JhZ2VSZXNvdXJjZS0+ZnJhbWUoKSk7Ci0gICAgICAgICpzdWNjZXNzID0g
IWV4Y2VwdGlvbjsKLSAgICB9IGVsc2UKKyAgICBGcmFtZSogZnJhbWU7CisgICAgUmVmUHRyPFN0
b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJlYSgwLCBzdG9yYWdlSWQsIGZy
YW1lKTsKKyAgICBpZiAoIXN0b3JhZ2VBcmVhKSB7CiAgICAgICAgICpzdWNjZXNzID0gZmFsc2U7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbiA9
IDA7CisgICAgc3RvcmFnZUFyZWEtPnNldEl0ZW0oa2V5LCB2YWx1ZSwgZXhjZXB0aW9uLCBmcmFt
ZSk7CisgICAgKnN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGJvb2wqIHN1Y2Nlc3MpCit2b2lkIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcq
LCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcm
IGtleSwgYm9vbCogc3VjY2VzcykKIHsKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uq
IHN0b3JhZ2VSZXNvdXJjZSA9IGdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKHN0b3JhZ2VJZCk7
Ci0gICAgaWYgKHN0b3JhZ2VSZXNvdXJjZSkgewotICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2Vw
dGlvbiA9IDA7Ci0gICAgICAgIHN0b3JhZ2VSZXNvdXJjZS0+c3RvcmFnZUFyZWEoKS0+cmVtb3Zl
SXRlbShrZXksIGV4Y2VwdGlvbiwgc3RvcmFnZVJlc291cmNlLT5mcmFtZSgpKTsKLSAgICAgICAg
KnN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwotICAgIH0gZWxzZQorICAgIEZyYW1lKiBmcmFtZTsKKyAg
ICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhID0gZmluZFN0b3JhZ2VBcmVhKDAsIHN0
b3JhZ2VJZCwgZnJhbWUpOworICAgIGlmICghc3RvcmFnZUFyZWEpIHsKICAgICAgICAgKnN1Y2Nl
c3MgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEV4Y2VwdGlvbkNvZGUg
ZXhjZXB0aW9uID0gMDsKKyAgICBzdG9yYWdlQXJlYS0+cmVtb3ZlSXRlbShrZXksIGV4Y2VwdGlv
biwgZnJhbWUpOworICAgICpzdWNjZXNzID0gIWV4Y2VwdGlvbjsKIH0KIAogU3RyaW5nIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlkKFN0b3JhZ2UqIHN0b3JhZ2UpCiB7CiAgICAg
QVNTRVJUKHN0b3JhZ2UpOwotICAgIEZyYW1lKiBmcmFtZSA9IHN0b3JhZ2UtPmZyYW1lKCk7Ci0g
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCBpc0xvY2FsU3RvcmFnZSA9IChmcmFt
ZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZShlYykgPT0gc3RvcmFnZSAm
JiAhZWMpOwotICAgIHJldHVybiBzdG9yYWdlSWQoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIGlzTG9jYWxTdG9yYWdlKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdG9y
YWdlLT5mcmFtZSgpLT5kb2N1bWVudCgpOworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgRE9N
V2luZG93KiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCk7CisgICAgQVNTRVJUKHdpbmRv
dyk7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpOworICAgIGJvb2wgaXNMb2NhbFN0b3JhZ2UgPSB3aW5kb3ctPm9w
dGlvbmFsTG9jYWxTdG9yYWdlKCkgPT0gc3RvcmFnZTsKKyAgICByZXR1cm4gc3RvcmFnZUlkKHNl
Y3VyaXR5T3JpZ2luLmdldCgpLCBpc0xvY2FsU3RvcmFnZSktPnRvSlNPTlN0cmluZygpOwogfQog
Ci1TdHJpbmcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzdG9yYWdlSWQoU2VjdXJpdHlPcmln
aW4qIHNlY3VyaXR5T3JpZ2luLCBib29sIGlzTG9jYWxTdG9yYWdlKQorUGFzc1JlZlB0cjxUeXBl
QnVpbGRlcjo6RE9NU3RvcmFnZTo6U3RvcmFnZUlkPiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OnN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNMb2NhbFN0
b3JhZ2UpCiB7Ci0gICAgQVNTRVJUKHNlY3VyaXR5T3JpZ2luKTsKLSAgICBET01TdG9yYWdlUmVz
b3VyY2VzTWFwOjppdGVyYXRvciBkb21TdG9yYWdlRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0g
ICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2Vz
LmJlZ2luKCk7IGl0ICE9IGRvbVN0b3JhZ2VFbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52
YWx1ZS0+aXNTYW1lT3JpZ2luQW5kVHlwZShzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2Up
KQotICAgICAgICAgICAgcmV0dXJuIGl0LT5rZXk7Ci0gICAgfQotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OmdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKGNvbnN0IFN0cmluZyYgc3RvcmFnZUlk
KQotewotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJj
ZXMuZmluZChzdG9yYWdlSWQpOwotICAgIGlmIChpdCA9PSBtX3Jlc291cmNlcy5lbmQoKSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGl0LT52YWx1ZS5nZXQoKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRpZFVzZURPTVN0b3JhZ2UoU3RvcmFnZUFyZWEqIHN0
b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCi17Ci0gICAgRE9N
U3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2Vz
LmVuZCgpOwotICAgIGZvciAoRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkb21TdG9yYWdlRW5kOyArK2l0KSB7Ci0gICAgICAg
IGlmIChpdC0+dmFsdWUtPmlzU2FtZU9yaWdpbkFuZFR5cGUoZnJhbWUtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIGlzTG9jYWxTdG9yYWdlKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiByZXNvdXJjZSA9
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6Y3JlYXRlKHN0b3JhZ2VBcmVhLCBpc0xvY2Fs
U3RvcmFnZSwgZnJhbWUpOwotCi0gICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT5pZCgpLCBy
ZXNvdXJjZSk7Ci0KLSAgICAvLyBSZXNvdXJjZXMgYXJlIG9ubHkgYm91bmQgd2hpbGUgdmlzaWJs
ZS4KLSAgICBpZiAobV9lbmFibGVkKQotICAgICAgICByZXNvdXJjZS0+YmluZChtX2Zyb250ZW5k
KTsKKyAgICByZXR1cm4gVHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZDo6Y3JlYXRl
KCkKKyAgICAgICAgLnNldFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luLT50b1Jhd1N0cmlu
ZygpKQorICAgICAgICAuc2V0SXNMb2NhbFN0b3JhZ2UoaXNMb2NhbFN0b3JhZ2UpLnJlbGVhc2Uo
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRpZERpc3BhdGNoRE9NU3Rv
cmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmln
aW4qIHNlY3VyaXR5T3JpZ2luLCBQYWdlKikKIHsKLSAgICBpZiAoIW1fZnJvbnRlbmQgfHwgIW1f
ZW5hYmxlZCkKKyAgICBpZiAoIW1fZnJvbnRlbmQgfHwgIWlzRW5hYmxlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBTdHJpbmcgaWQgPSBzdG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4sIHN0b3Jh
Z2VUeXBlID09IExvY2FsU3RvcmFnZSk7Ci0KLSAgICBpZiAoaWQuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm47CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+
IGlkID0gc3RvcmFnZUlkKHNlY3VyaXR5T3JpZ2luLCBzdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3Jh
Z2UpOwogCiAgICAgaWYgKGtleS5pc051bGwoKSkKICAgICAgICAgbV9mcm9udGVuZC0+ZG9tc3Rv
cmFnZSgpLT5kb21TdG9yYWdlSXRlbXNDbGVhcmVkKGlkKTsKQEAgLTI0MywxNiArMjExLDM3IEBA
IHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVu
dChjb25zdCBTdHJpbmcmIGtleSwgY29uCiAgICAgICAgIG1fZnJvbnRlbmQtPmRvbXN0b3JhZ2Uo
KS0+ZG9tU3RvcmFnZUl0ZW1VcGRhdGVkKGlkLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSk7CiB9
CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhclJlc291cmNlcygpCitQYXNz
UmVmUHRyPFN0b3JhZ2VBcmVhPiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRTdG9yYWdl
QXJlYShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiBzdG9yYWdlSWQsIEZyYW1lKiYgdGFyZ2V0RnJhbWUpCiB7Ci0gICAgbV9yZXNvdXJjZXMu
Y2xlYXIoKTsKKyAgICBTdHJpbmcgc2VjdXJpdHlPcmlnaW47CisgICAgYm9vbCBpc0xvY2FsU3Rv
cmFnZTsKKyAgICBib29sIHN1Y2Nlc3MgPSBzdG9yYWdlSWQtPmdldFN0cmluZygic2VjdXJpdHlP
cmlnaW4iLCAmc2VjdXJpdHlPcmlnaW4pOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBzdWNj
ZXNzID0gc3RvcmFnZUlkLT5nZXRCb29sZWFuKCJpc0xvY2FsU3RvcmFnZSIsICZpc0xvY2FsU3Rv
cmFnZSk7CisgICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIGlmIChlcnJvclN0cmluZykKKyAg
ICAgICAgICAgICplcnJvclN0cmluZyA9ICJJbnZhbGlkIHN0b3JhZ2VJZCBmb3JtYXQiOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+
ZmluZEZyYW1lV2l0aFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKKyAgICBpZiAoIWZy
YW1lKSB7CisgICAgICAgIGlmIChlcnJvclN0cmluZykKKyAgICAgICAgICAgICplcnJvclN0cmlu
ZyA9ICJGcmFtZSBub3QgZm91bmQgZm9yIHRoZSBnaXZlbiBzZWN1cml0eSBvcmlnaW4iOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgdGFyZ2V0RnJhbWUgPSBmcmFtZTsKKworICAgIFBh
Z2UqIHBhZ2UgPSBtX3BhZ2VBZ2VudC0+cGFnZSgpOworICAgIGlmIChpc0xvY2FsU3RvcmFnZSkK
KyAgICAgICAgcmV0dXJuIHBhZ2UtPmdyb3VwKCkubG9jYWxTdG9yYWdlKCktPnN0b3JhZ2VBcmVh
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICByZXR1cm4gcGFnZS0+
c2Vzc2lvblN0b3JhZ2UoKS0+c3RvcmFnZUFyZWEoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCkpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCk7CiAgICAgSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD46OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9i
amVjdEluZm8pOwotICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzb3VyY2VzLCAicmVzb3VyY2VzIik7
CiAgICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2Zyb250ZW5kKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IGU5
OGUzOTIxZDA1Njg2OTUyMzdiZjliZWIwNzM4YzE0MzhjOTcxNTIuLjZjNDc4MmU0ODVhNzhkMWUw
OTBhZmVlNmJiYmQzMTZjMzI5YWJjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKQEAgLTM5LDggKzM5LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckFycmF5OwotY2xh
c3MgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7
CitjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNz
IEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBQYWdlOwpAQCAtNTEsOSArNTEsOSBAQCB0eXBl
ZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+LCBw
dWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OkRPTVN0b3JhZ2VDb21tYW5kSGFuZGxl
ciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDb21w
b3NpdGVTdGF0ZSogc3RhdGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkpOworICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIHN0YXRlKSk7CiAgICAgfQogICAgIH5JbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQoKTsKIApAQCAtNjEsMzQgKzYxLDMxIEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZvaWQgcmVzdG9yZSgpOwogCi0gICAgdm9p
ZCBjbGVhclJlc291cmNlcygpOwotCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4K
ICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RE9NU3RvcmFnZUVu
dHJpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgUmVmUHRyPFR5cGVC
dWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+ID4mIGVudHJpZXMpOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
Ym9vbCogc3VjY2Vzcyk7Ci0gICAgdmlydHVhbCB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBi
b29sKiBzdWNjZXNzKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9y
U3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+ID4mIGl0ZW1z
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25z
dCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7CisgICAgdmlydHVhbCB2b2lkIHJl
bW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4mIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGJvb2wqIHN1Y2Nlc3MpOwogCiAg
ICAgLy8gQ2FsbGVkIGZyb20gdGhlIGluamVjdGVkIHNjcmlwdC4KICAgICBTdHJpbmcgc3RvcmFn
ZUlkKFN0b3JhZ2UqKTsKLSAgICBTdHJpbmcgc3RvcmFnZUlkKFNlY3VyaXR5T3JpZ2luKiwgYm9v
bCBpc0xvY2FsU3RvcmFnZSk7CisgICAgUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NU3RvcmFn
ZTo6U3RvcmFnZUlkPiBzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9y
YWdlKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgotICAg
IHZvaWQgZGlkVXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3JhZ2Us
IEZyYW1lKik7CiAgICAgdm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwg
U3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiwgUGFnZSopOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKIAog
cHJpdmF0ZToKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CiAKLSAgICBJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UqIGdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKGNvbnN0IFN0cmluZyYgc3RvcmFn
ZUlkKTsKKyAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKik7CisKKyAgICBi
b29sIGlzRW5hYmxlZCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IGZpbmRT
dG9yYWdlQXJlYShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+Jiwg
RnJhbWUqJik7CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlPiA+IERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA7Ci0gICAgRE9NU3Rv
cmFnZVJlc291cmNlc01hcCBtX3Jlc291cmNlczsKKyAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1f
cGFnZUFnZW50OwogICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOwotICAgIGJvb2wg
bV9lbmFibGVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWYzY2ZlMTViNDBkYzc3NTk3NWRiYjg3NjYw
YjgyZTcwMjAzN2VlZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAwOCBNYXR0IExpbGVrIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJB
cHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2UuaCIKLQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0j
aW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMu
aCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1ZGUgIlN0b3JhZ2UuaCIKLSNp
bmNsdWRlICJTdG9yYWdlQXJlYS5oIgotI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgotCi11c2lu
ZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWludCBJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2U6OnNfbmV4dFVudXNlZElkID0gMTsKLQotSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlOjpJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UoU3RvcmFnZUFyZWEqIHN0
b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCi0gICAgOiBtX3N0
b3JhZ2VBcmVhKHN0b3JhZ2VBcmVhKQotICAgICwgbV9pc0xvY2FsU3RvcmFnZShpc0xvY2FsU3Rv
cmFnZSkKLSAgICAsIG1fZnJhbWUoZnJhbWUpCi0gICAgLCBtX2Zyb250ZW5kKDApCi0gICAgLCBt
X2lkKFN0cmluZzo6bnVtYmVyKHNfbmV4dFVudXNlZElkKyspKQotewotfQotCi1ib29sIEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6aXNTYW1lT3JpZ2luQW5kVHlwZShTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNMb2NhbFN0b3JhZ2UpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmVxdWFsKHNlY3VyaXR5
T3JpZ2luKSAmJiBtX2lzTG9jYWxTdG9yYWdlID09IGlzTG9jYWxTdG9yYWdlOwotfQotCi12b2lk
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6YmluZChJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpCi17Ci0gICAgQVNTRVJUKCFtX2Zyb250ZW5kKTsKLSAgICBtX2Zyb250ZW5kID0gZnJv
bnRlbmQtPmRvbXN0b3JhZ2UoKTsKLQotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6RE9NU3RvcmFn
ZTo6RW50cnk+IGpzb25PYmplY3QgPSBUeXBlQnVpbGRlcjo6RE9NU3RvcmFnZTo6RW50cnk6OmNy
ZWF0ZSgpCi0gICAgICAgIC5zZXRPcmlnaW4obV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKS0+dG9SYXdTdHJpbmcoKSkKLSAgICAgICAgLnNldElzTG9jYWxTdG9yYWdlKG1faXNM
b2NhbFN0b3JhZ2UpCi0gICAgICAgIC5zZXRJZChtX2lkKTsKLSAgICBtX2Zyb250ZW5kLT5hZGRE
T01TdG9yYWdlKGpzb25PYmplY3QpOwotfQotCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZTo6dW5iaW5kKCkKLXsKLSAgICBpZiAoIW1fZnJvbnRlbmQpCi0gICAgICAgIHJldHVybjsg
IC8vIEFscmVhZHkgdW5ib3VuZC4KLQotICAgIG1fZnJvbnRlbmQgPSAwOwotfQotCi12b2lkIElu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKLXsKLSAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZXMpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fc3RvcmFnZUFyZWEsICJz
dG9yYWdlQXJlYSIpOwotICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUsICJmcmFtZSIpOwotICAg
IGluZm8uYWRkV2Vha1BvaW50ZXIobV9mcm9udGVuZCk7Ci0gICAgaW5mby5hZGRNZW1iZXIobV9p
ZCwgImlkIik7Ci0gICAgaW5mby5hZGRQcml2YXRlQnVmZmVyKG1fc3RvcmFnZUFyZWEtPm1lbW9y
eUJ5dGVzVXNlZEJ5Q2FjaGUoKSwgMCwgIlN0b3JhZ2VBcmVhQ2FjaGUiLCAiY2FjaGUiKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMGQ0NmQ3NTBmYWE3
NjY2Y2FjNjRmMmQyNjhlNTY3ZWQyNGJiNzdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgot
ICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VfaAotI2RlZmluZSBJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2VfaAotCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLQotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNlY3Vy
aXR5T3JpZ2luOwotY2xhc3MgU3RvcmFnZUFyZWE7Ci1jbGFzcyBGcmFtZTsKLWNsYXNzIEluc3Bl
Y3RvckZyb250ZW5kOwotCi1jbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UgOiBwdWJs
aWMgUmVmQ291bnRlZDxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+IHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+IGNyZWF0ZShT
dG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFt
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlKHN0b3JhZ2VBcmVhLCBpc0xvY2FsU3RvcmFnZSwgZnJhbWUpKTsKLSAgICB9Ci0K
LSAgICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKLSAgICB2b2lkIHVuYmluZCgpOwot
Ci0gICAgYm9vbCBpc1NhbWVPcmlnaW5BbmRUeXBlKFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc0xv
Y2FsU3RvcmFnZSkgY29uc3Q7Ci0gICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsg
fQotICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFn
ZUFyZWEuZ2V0KCk7IH0KLSAgICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1l
LmdldCgpOyB9Ci0KLSAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UoU3Rv
cmFnZUFyZWEqLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSopOwotCi0gICAgUmVmUHRyPFN0
b3JhZ2VBcmVhPiBtX3N0b3JhZ2VBcmVhOwotICAgIGJvb2wgbV9pc0xvY2FsU3RvcmFnZTsKLSAg
ICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkRPTVN0b3Jh
Z2UqIG1fZnJvbnRlbmQ7Ci0gICAgU3RyaW5nIG1faWQ7Ci0KLSAgICBzdGF0aWMgaW50IHNfbmV4
dFVudXNlZElkOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNWFhYWIxOGFjNjdjNDJh
Mzg2Njg3MDdkOGNlNTRmMjRlMWUzYzU1Yy4uZGExMWEzYjVjNzdiMjhiOGU1MzQyOWYyNjkwYjRm
OTE3OTk0MThiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTkxNSw4ICs5MTUsNiBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudAogICAgICAgICBpZiAoSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCogZGF0YWJhc2VB
Z2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRhdGFiYXNlQWdlbnQoKSkKICAg
ICAgICAgICAgIGRhdGFiYXNlQWdlbnQtPmNsZWFyUmVzb3VyY2VzKCk7CiAjZW5kaWYKLSAgICAg
ICAgaWYgKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkpCi0gICAgICAgICAgICBk
b21TdG9yYWdlQWdlbnQtPmNsZWFyUmVzb3VyY2VzKCk7CiAgICAgICAgIGlmIChJbnNwZWN0b3JE
T01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2Vu
dCgpKQogICAgICAgICAgICAgZG9tQWdlbnQtPnNldERvY3VtZW50KG1haW5GcmFtZS0+ZG9jdW1l
bnQoKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtMTEwMSwxNSArMTA5
OSw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRPcGVuRGF0YWJhc2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lCiB9CiAjZW5kaWYKIAotdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFVzZURPTVN0b3JhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9vbCBp
c0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQotewotICAgIEluc3BlY3RvckFnZW50KiBpbnNw
ZWN0b3JBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckFnZW50KCk7Ci0gICAg
aWYgKCFpbnNwZWN0b3JBZ2VudCB8fCAhaW5zcGVjdG9yQWdlbnQtPmRldmVsb3BlckV4dHJhc0Vu
YWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudCgpKQotICAgICAgICBkb21TdG9yYWdlQWdlbnQtPmRpZFVzZURPTVN0b3JhZ2Uo
c3RvcmFnZUFyZWEsIGlzTG9jYWxTdG9yYWdlLCBmcmFtZSk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlIHN0
b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFBhZ2UqIHBhZ2UpCiB7
CiAgICAgaWYgKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXgg
ZmY2MzAwNTE2ZWYxMDMzNGIwMDIyMTA5Y2ZlZGIzNmYzZDYxMmYzYS4uN2ZmYmNmZmJkZTRiYmMz
MGY2M2Q5NmE0YmFjZGJmNjM3YzM4MzBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtMjUyLDcgKzI1Miw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8RGF0YWJhc2U+LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwogI2VuZGlmCiAKLSAgICBzdGF0
aWMgdm9pZCBkaWRVc2VET01TdG9yYWdlKFBhZ2UqLCBTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2Nh
bFN0b3JhZ2UsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdl
RXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0
cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiosIFBhZ2UqKTsKIAog
I2lmIEVOQUJMRShXT1JLRVJTKQpAQCAtNDUxLDcgKzQ1MCw2IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgZGlkT3BlbkRhdGFiYXNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFzc1Jl
ZlB0cjxEYXRhYmFzZT4sIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAjZW5kaWYKIAotICAgIHN0YXRpYyB2b2lkIGRpZFVz
ZURPTVN0b3JhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBTdG9yYWdlQXJlYSosIGJvb2wg
aXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hET01T
dG9yYWdlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5
cGUsIFNlY3VyaXR5T3JpZ2luKiwgUGFnZSopOwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC0x
NzUwLDE5ICsxNzQ4LDYgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRXcml0ZUhUTUwoY29uc3QgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW8KICNlbmRpZgogfQogCi1p
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFVzZURPTVN0b3JhZ2UoUGFn
ZSogcGFnZSwgU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBG
cmFtZSogZnJhbWUpCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQ
YWdlKHBhZ2UpKQotICAgICAgICBkaWRVc2VET01TdG9yYWdlSW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzLCBzdG9yYWdlQXJlYSwgaXNMb2NhbFN0b3JhZ2UsIGZyYW1lKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHBhZ2UpOwotICAgIFVOVVNFRF9QQVJBTShzdG9yYWdlQXJlYSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGlzTG9jYWxTdG9yYWdlKTsKLSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotI2Vu
ZGlmCi19Ci0KIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0
Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBTZWN1
cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFBhZ2UqIHBhZ2UpCiB7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2Vu
dC5jcHAKaW5kZXggNGFmOGFiZDc2N2ExMTFkNTk2MTU1MjdlZWNiZjIyYTU4ZDkxZDY2NS4uN2Ex
ZWIxNDQwOTI5ZmVjYTQ2NmEzOTJkYTQzNjJkNDAxM2Q3M2EyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKQEAgLTkxNiw2ICs5MTYsMjIg
QEAgU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2VudDo6bG9hZGVySWQoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlcikKICAgICByZXR1cm4gaWRlbnRpZmllcjsKIH0KIAorRnJhbWUqIEluc3BlY3RvclBhZ2VB
Z2VudDo6ZmluZEZyYW1lV2l0aFNlY3VyaXR5T3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luUmF3
U3RyaW5nKQoreworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW5QdHIg
PSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW5SYXdTdHJpbmcpOworICAg
IFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luUHRyLmdldCgp
OworICAgIGJvb2wgaXNMb2NhbCA9IHNlY3VyaXR5T3JpZ2luLT5pc0xvY2FsKCk7CisgICAgZm9y
IChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFt
ZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgeworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IGRvY3VtZW50T3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7
CisgICAgICAgIC8vIEVtdWxhdGUgdGhlICFlbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uIGZvciBz
ZWN1cml0eSBvcmlnaW5zLgorICAgICAgICBpZiAoaXNMb2NhbCAmJiBkb2N1bWVudE9yaWdpbi0+
aXNMb2NhbCgpKQorICAgICAgICAgICAgcmV0dXJuIGZyYW1lOworICAgICAgICBpZiAoZG9jdW1l
bnRPcmlnaW4tPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFt
ZTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIEZyYW1lKiBJbnNwZWN0b3JQYWdlQWdlbnQ6
OmFzc2VydEZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFt
ZUlkKQogewogICAgIEZyYW1lKiBmcmFtZSA9IGZyYW1lRm9ySWQoZnJhbWVJZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKaW5kZXggZDVjNWI5MDI1
MmZlMzE1ZGE1ZmE0ZjUxZDU4M2ZmOGUxZTI3NDVmZC4uZGUyNGZjNDdiMmQzODA1Yjc1N2EzOTBi
OGFkNzlmNzgwNWYzNmM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaApAQCAtMTczLDYgKzE3Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZnJh
bWVJZChGcmFtZSopOwogICAgIGJvb2wgaGFzSWRGb3JGcmFtZShGcmFtZSopIGNvbnN0OwogICAg
IFN0cmluZyBsb2FkZXJJZChEb2N1bWVudExvYWRlciopOworICAgIEZyYW1lKiBmaW5kRnJhbWVX
aXRoU2VjdXJpdHlPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5SYXdTdHJpbmcpOwogICAgIEZy
YW1lKiBhc3NlcnRGcmFtZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAg
ICAgU3RyaW5nIHNjcmlwdFByZXByb2Nlc3NvcigpIHsgcmV0dXJuIG1fc2NyaXB0UHJlcHJvY2Vz
c29yOyB9CiAgICAgc3RhdGljIERvY3VtZW50TG9hZGVyKiBhc3NlcnREb2N1bWVudExvYWRlcihF
cnJvclN0cmluZyosIEZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTVN0b3JhZ2UuanMKaW5kZXggYjEzNDQxOTU5OWUzNTI4NDk5MmMyYzBmYjA2MTEw
MmJiOGRiOGQ4OC4uYzdjNzEyYTEyZmU1NGMyOWIxMzMyMzE1NWJhYzNjOGI4MDVjYzFlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwpA
QCAtMjksMjUgKzI5LDM4IEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge3N0
cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UK
KyAqIEBwYXJhbSB7c3RyaW5nPX0gaWQKICAqLwotV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UgPSBm
dW5jdGlvbihpZCwgZG9tYWluLCBpc0xvY2FsU3RvcmFnZSkKK1dlYkluc3BlY3Rvci5ET01TdG9y
YWdlID0gZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4sIGlzTG9jYWxTdG9yYWdlLCBpZCkKIHsKLSAg
ICB0aGlzLl9pZCA9IGlkOwotICAgIHRoaXMuX2RvbWFpbiA9IGRvbWFpbjsKKyAgICB0aGlzLl9z
ZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3JpZ2luOwogICAgIHRoaXMuX2lzTG9jYWxTdG9yYWdl
ID0gaXNMb2NhbFN0b3JhZ2U7CiB9CiAKKy8qKgorICogQHBhcmFtIHtzdHJpbmd9IHNlY3VyaXR5
T3JpZ2luCisgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTG9jYWxTdG9yYWdlCisgKiBAcmV0dXJuIHtE
T01TdG9yYWdlQWdlbnQuU3RvcmFnZUlkfQorICovCitXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5z
dG9yYWdlSWQgPSBmdW5jdGlvbihzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpCit7Cisg
ICAgcmV0dXJuIHsgc2VjdXJpdHlPcmlnaW46IHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFn
ZTogaXNMb2NhbFN0b3JhZ2UgfTsKK30KKwogV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90
eXBlID0gewotICAgIC8qKiBAcmV0dXJuIHtzdHJpbmd9ICovCisKKyAgICAvKiogQHJldHVybiB7
RE9NU3RvcmFnZUFnZW50LlN0b3JhZ2VJZH0gKi8KICAgICBnZXQgaWQoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMuX2lkOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2Uuc3RvcmFnZUlkKHRoaXMuX3NlY3VyaXR5T3JpZ2luLCB0aGlzLl9pc0xvY2FsU3RvcmFnZSk7
CiAgICAgfSwKIAogICAgIC8qKiBAcmV0dXJuIHtzdHJpbmd9ICovCi0gICAgZ2V0IGRvbWFpbigp
CisgICAgZ2V0IHNlY3VyaXR5T3JpZ2luKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9k
b21haW47CisgICAgICAgIHJldHVybiB0aGlzLl9zZWN1cml0eU9yaWdpbjsKICAgICB9LAogCiAg
ICAgLyoqIEByZXR1cm4ge2Jvb2xlYW59ICovCkBAIC01NywxMSArNzAsMTEgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBA
cGFyYW0ge2Z1bmN0aW9uKD9Qcm90b2NvbC5FcnJvciwgQXJyYXkuPERPTVN0b3JhZ2VBZ2VudC5F
bnRyeT4pOnZvaWQ9fSBjYWxsYmFjaworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29s
LkVycm9yLCBBcnJheS48RE9NU3RvcmFnZUFnZW50Lkl0ZW0+KTp2b2lkPX0gY2FsbGJhY2sKICAg
ICAgKi8KLSAgICBnZXRFbnRyaWVzOiBmdW5jdGlvbihjYWxsYmFjaykKKyAgICBnZXRJdGVtczog
ZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewotICAgICAgICBET01TdG9yYWdlQWdlbnQuZ2V0RE9N
U3RvcmFnZUVudHJpZXModGhpcy5faWQsIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NU3RvcmFnZUFn
ZW50LmdldERPTVN0b3JhZ2VJdGVtcyh0aGlzLmlkLCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAg
IC8qKgpAQCAtNzEsNyArODQsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUg
PSB7CiAgICAgICovCiAgICAgc2V0SXRlbTogZnVuY3Rpb24oa2V5LCB2YWx1ZSwgY2FsbGJhY2sp
CiAgICAgewotICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0RE9NU3RvcmFnZUl0ZW0odGhpcy5f
aWQsIGtleSwgdmFsdWUsIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NU3RvcmFnZUFnZW50LnNldERP
TVN0b3JhZ2VJdGVtKHRoaXMuaWQsIGtleSwgdmFsdWUsIGNhbGxiYWNrKTsKICAgICB9LAogCiAg
ICAgLyoqCkBAIC04MCw3ICs5Myw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICByZW1vdmVJdGVtOiBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQog
ICAgIHsKLSAgICAgICAgRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMu
X2lkLCBrZXksIGNhbGxiYWNrKTsKKyAgICAgICAgRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0
b3JhZ2VJdGVtKHRoaXMuaWQsIGtleSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtOTMsMTAg
KzEwNiwxMyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsID0gZnVuY3Rpb24oKQogICAg
IHRoaXMuX3N0b3JhZ2VzID0ge307CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRPTVN0
b3JhZ2VEaXNwYXRjaGVyKG5ldyBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIodGhp
cykpOwogICAgIERPTVN0b3JhZ2VBZ2VudC5lbmFibGUoKTsKKyAgICBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5TZWN1cml0eU9yaWdpbkFkZGVkLCB0aGlzLl9zZWN1cml0eU9yaWdp
bkFkZGVkLCB0aGlzKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5TZWN1
cml0eU9yaWdpblJlbW92ZWQsIHRoaXMuX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZCwgdGhpcyk7CiB9
CiAKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzID0gewogICAgIERPTVN0b3Jh
Z2VBZGRlZDogIkRPTVN0b3JhZ2VBZGRlZCIsCisgICAgRE9NU3RvcmFnZVJlbW92ZWQ6ICJET01T
dG9yYWdlUmVtb3ZlZCIsCiAgICAgRE9NU3RvcmFnZUl0ZW1zQ2xlYXJlZDogIkRPTVN0b3JhZ2VJ
dGVtc0NsZWFyZWQiLAogICAgIERPTVN0b3JhZ2VJdGVtUmVtb3ZlZDogIkRPTVN0b3JhZ2VJdGVt
UmVtb3ZlZCIsCiAgICAgRE9NU3RvcmFnZUl0ZW1BZGRlZDogIkRPTVN0b3JhZ2VJdGVtQWRkZWQi
LApAQCAtMTA0LDEzICsxMjAsNTMgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVu
dHMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlID0gewor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAg
ICovCisgICAgX3NlY3VyaXR5T3JpZ2luQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdmFyIHNlY3VyaXR5T3JpZ2luID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChldmVudC5k
YXRhKTsKKyAgICAgICAgdmFyIGxvY2FsU3RvcmFnZUtleSA9IHRoaXMuX3N0b3JhZ2VLZXkoc2Vj
dXJpdHlPcmlnaW4sIHRydWUpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc3RvcmFn
ZXNbbG9jYWxTdG9yYWdlS2V5XSk7CisgICAgICAgIHZhciBsb2NhbFN0b3JhZ2UgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2Uoc2VjdXJpdHlPcmlnaW4sIHRydWUpOworICAgICAgICB0aGlz
Ll9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXldID0gbG9jYWxTdG9yYWdlOworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2
ZW50cy5ET01TdG9yYWdlQWRkZWQsIGxvY2FsU3RvcmFnZSk7CisKKyAgICAgICAgdmFyIHNlc3Np
b25TdG9yYWdlS2V5ID0gdGhpcy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgZmFsc2UpOwor
ICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXld
KTsKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlKHNlY3VyaXR5T3JpZ2luLCBmYWxzZSk7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VzW3Nlc3Np
b25TdG9yYWdlS2V5XSA9IHNlc3Npb25TdG9yYWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9y
YWdlQWRkZWQsIHNlc3Npb25TdG9yYWdlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NlY3VyaXR5T3Jp
Z2luUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VjdXJpdHlP
cmlnaW4gPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB2YXIg
bG9jYWxTdG9yYWdlS2V5ID0gdGhpcy5fc3RvcmFnZUlkKHNlY3VyaXR5T3JpZ2luLCB0cnVlKTsK
KyAgICAgICAgdmFyIGxvY2FsU3RvcmFnZSA9IHRoaXMuX3N0b3JhZ2VzW2xvY2FsU3RvcmFnZUtl
eV07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxvY2FsU3RvcmFnZSk7CisgICAgICAgIGRlbGV0
ZSB0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXldOworICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01T
dG9yYWdlUmVtb3ZlZCwgbG9jYWxTdG9yYWdlKTsKKworICAgICAgICB2YXIgc2Vzc2lvblN0b3Jh
Z2VLZXkgPSB0aGlzLl9zdG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4sIGZhbHNlKTsKKyAgICAgICAg
dmFyIHNlc3Npb25TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXldOwor
ICAgICAgICBjb25zb2xlLmFzc2VydChzZXNzaW9uU3RvcmFnZSk7CisgICAgICAgIGRlbGV0ZSB0
aGlzLl9zdG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV07CisgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0
b3JhZ2VSZW1vdmVkLCBzZXNzaW9uU3RvcmFnZSk7CisgICAgfSwKKwogICAgIC8qKgotICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2V9IGRvbVN0b3JhZ2UKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTG9j
YWxTdG9yYWdlCisgICAgICogQHJldHVybiB7c3RyaW5nfQogICAgICAqLwotICAgIF9hZGRET01T
dG9yYWdlOiBmdW5jdGlvbihkb21TdG9yYWdlKQorICAgIF9zdG9yYWdlSWQ6IGZ1bmN0aW9uKHNl
Y3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3N0b3Jh
Z2VzW2RvbVN0b3JhZ2UuaWRdID0gZG9tU3RvcmFnZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3Rv
cmFnZUFkZGVkLCBkb21TdG9yYWdlKTsKKyAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFdl
Ykluc3BlY3Rvci5ET01TdG9yYWdlLnN0b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0
b3JhZ2UpKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xMTgsNyArMTc0LDcgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3Jh
Z2VJdGVtc0NsZWFyZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCkKICAgICB7Ci0gICAgICAgIHZhciBk
b21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgdmFyIGRvbVN0
b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAgICB2YXIgc3RvcmFn
ZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlCiAgICAgICAgIH07CkBA
IC0xMzEsNyArMTg3LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VJdGVtUmVtb3ZlZDogZnVuY3Rpb24oc3RvcmFn
ZUlkLCBrZXkpCiAgICAgewotICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuX3N0b3JhZ2Vz
W3N0b3JhZ2VJZF07CisgICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5zdG9yYWdlRm9ySWQo
c3RvcmFnZUlkKTsKICAgICAgICAgdmFyIHN0b3JhZ2VEYXRhID0gewogICAgICAgICAgICAgc3Rv
cmFnZTogZG9tU3RvcmFnZSwKICAgICAgICAgICAgIGtleToga2V5CkBAIC0xNDYsNyArMjAyLDcg
QEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgX2RvbVN0b3JhZ2VJdGVtQWRkZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5LCBuZXdWYWx1
ZSkKICAgICB7Ci0gICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFn
ZUlkXTsKKyAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdl
SWQpOwogICAgICAgICB2YXIgc3RvcmFnZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBk
b21TdG9yYWdlLAogICAgICAgICAgICAga2V5OiBrZXksCkBAIC0xNzksNyArMjM1LDcgQEAgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc3Rv
cmFnZUZvcklkOiBmdW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhp
cy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2VzW0pT
T04uc3RyaW5naWZ5KHN0b3JhZ2VJZCldOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4OCw4ICsy
NDQsOCBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBz
dG9yYWdlczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAg
ICAgICBmb3IgKHZhciBzdG9yYWdlSWQgaW4gdGhpcy5fc3RvcmFnZXMpCi0gICAgICAgICAgICBy
ZXN1bHQucHVzaCh0aGlzLl9zdG9yYWdlc1tzdG9yYWdlSWRdKTsKKyAgICAgICAgZm9yICh2YXIg
aWQgaW4gdGhpcy5fc3RvcmFnZXMpCisgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl9zdG9y
YWdlc1tpZF0pOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCiAKQEAgLTIwOSwxOCAr
MjY1LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVyID0gZnVuY3Rpb24obW9k
ZWwpCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogCiAg
ICAgLyoqCi0gICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQuRW50cnl9IHBheWxvYWQKLSAg
ICAgKi8KLSAgICBhZGRET01TdG9yYWdlOiBmdW5jdGlvbihwYXlsb2FkKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fbW9kZWwuX2FkZERPTVN0b3JhZ2UobmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
KAotICAgICAgICAgICAgcGF5bG9hZC5pZCwKLSAgICAgICAgICAgIHBheWxvYWQub3JpZ2luLAot
ICAgICAgICAgICAgcGF5bG9hZC5pc0xvY2FsU3RvcmFnZSkpOwotICAgIH0sCi0KLSAgICAvKioK
LSAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9y
YWdlQWdlbnQuU3RvcmFnZUlkfSBzdG9yYWdlSWQKICAgICAgKi8KICAgICBkb21TdG9yYWdlSXRl
bXNDbGVhcmVkOiBmdW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewpAQCAtMjI4LDcgKzI3Myw3IEBA
IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwK
IAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFy
YW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9IHN0b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBrZXkKICAgICAgKi8KICAgICBkb21TdG9yYWdlSXRlbVJlbW92ZWQ6IGZ1bmN0aW9u
KHN0b3JhZ2VJZCwga2V5KQpAQCAtMjM3LDcgKzI4Miw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5T
dG9yYWdlSWR9IHN0b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30gbmV3VmFsdWUKICAgICAgKi8KQEAgLTI0Nyw3ICsyOTIsNyBAQCBXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtE
T01TdG9yYWdlQWdlbnQuU3RvcmFnZUlkfSBzdG9yYWdlSWQKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30ga2V5CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG9sZFZhbHVlCiAgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5ld1ZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1ZpZXcuanMKaW5kZXggNTM1ZGExMmMzNTNjYjFlNzA4
NjQ4ZmFhYTYyMzJhZGY3ZDNhMjhjYy4uNzE5ZDlkZmQyNDQxMjlhZjdkNzA0OTljNjQ0MDI3MWU2
NDkyMmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01TdG9yYWdlSXRlbXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qcwpAQCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVu
Y3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fdXBkYXRlKCk7CisgICAgICAgIHRoaXMudXBk
YXRlKCk7CiAgICAgfSwKIAogICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCkBAIC0xNTMsMjQgKzE1
MywyNCBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIH0KICAgICB9LAogCi0gICAgX3VwZGF0ZTogZnVuY3Rpb24oKQorICAgIHVwZGF0ZTog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5kZXRhY2hDaGlsZFZpZXdzKCk7Ci0gICAg
ICAgIHRoaXMuZG9tU3RvcmFnZS5nZXRFbnRyaWVzKHRoaXMuX3Nob3dET01TdG9yYWdlRW50cmll
cy5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5kb21TdG9yYWdlLmdldEl0ZW1zKHRoaXMuX3No
b3dET01TdG9yYWdlSXRlbXMuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIF9zaG93RE9NU3Rv
cmFnZUVudHJpZXM6IGZ1bmN0aW9uKGVycm9yLCBlbnRyaWVzKQorICAgIF9zaG93RE9NU3RvcmFn
ZUl0ZW1zOiBmdW5jdGlvbihlcnJvciwgaXRlbXMpCiAgICAgewogICAgICAgICBpZiAoZXJyb3Ip
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSB0aGlzLl9k
YXRhR3JpZEZvckRPTVN0b3JhZ2VFbnRyaWVzKGVudHJpZXMpOworICAgICAgICB0aGlzLl9kYXRh
R3JpZCA9IHRoaXMuX2RhdGFHcmlkRm9yRE9NU3RvcmFnZUl0ZW1zKGl0ZW1zKTsKICAgICAgICAg
dGhpcy5fZGF0YUdyaWQuc2hvdyh0aGlzLmVsZW1lbnQpOwogICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5hdXRvU2l6ZUNvbHVtbnMoMTApOwogICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi52aXNpYmxl
ID0gKHRoaXMuX2RhdGFHcmlkLnJvb3ROb2RlKCkuY2hpbGRyZW4ubGVuZ3RoID4gMSk7CiAgICAg
fSwKIAotICAgIF9kYXRhR3JpZEZvckRPTVN0b3JhZ2VFbnRyaWVzOiBmdW5jdGlvbihlbnRyaWVz
KQorICAgIF9kYXRhR3JpZEZvckRPTVN0b3JhZ2VJdGVtczogZnVuY3Rpb24oaXRlbXMpCiAgICAg
ewogICAgICAgICB2YXIgY29sdW1ucyA9IHtrZXk6IHt9LCB2YWx1ZToge319OwogCkBAIC0xODMs
MTAgKzE4MywxMCBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHZhciBub2RlcyA9IFtdOwogCiAgICAgICAgIHZhciBrZXlzID0gW107Ci0g
ICAgICAgIHZhciBsZW5ndGggPSBlbnRyaWVzLmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIga2V5ID0gZW50
cmllc1tpXVswXTsKLSAgICAgICAgICAgIHZhciB2YWx1ZSA9IGVudHJpZXNbaV1bMV07CisgICAg
ICAgIHZhciBsZW5ndGggPSBpdGVtcy5sZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgaXRlbXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBrZXkgPSBpdGVtc1tpXVsw
XTsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IGl0ZW1zW2ldWzFdOwogICAgICAgICAgICAgdmFy
IG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZSh7a2V5OiBrZXksIHZhbHVlOiB2
YWx1ZX0sIGZhbHNlKTsKICAgICAgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CiAgICAg
ICAgICAgICBub2Rlcy5wdXNoKG5vZGUpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9yZWZyZXNoQnV0dG9u
Q2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl91cGRhdGUoKTsK
KyAgICAgICAgdGhpcy51cGRhdGUoKTsKICAgICB9LAogCiAgICAgX2VkaXRpbmdDYWxsYmFjazog
ZnVuY3Rpb24oZWRpdGluZ05vZGUsIGNvbHVtbklkZW50aWZpZXIsIG9sZFRleHQsIG5ld1RleHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmll
dy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCmlu
ZGV4IGQ3YTY1YWYyNzFjOWFkZWNhNmMzZTIxMzgxNGQ2ZmE5OTBkN2IyM2UuLjJlY2YzODE1NWIw
NTY3OGMyZmM3ZjcxYmNjNTVjZGFkODY2OTdhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCkBAIC01Miw2ICs1MiwxMSBAQCBXZWJJbnNw
ZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC50
ZXh0Q29udGVudCA9IHRoaXMuX3RleHQ7CiAgICAgfSwKIAorICAgIF9wcm9jZXNzV2lsbEhpZGU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5f
cHJvY2Vzc1dpbGxIaWRlLmNhbGwodGhpcyk7CisgICAgfSwKKwogICAgIF9fcHJvdG9fXzogV2Vi
SW5zcGVjdG9yLlZpZXcucHJvdG90eXBlCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IGVhYWExYTJlZDRkZTFl
YTJlNjlmOGM3ZTQzMjYxMjg2Yjg3ZWE2NzEuLjY5Njc3NmMwZTg3NjVmZTkwMGYzZDA2NDAxOTI5
OGJkMGQ1NTBiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTE1LDkgKzExNSw2IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZXNQYW5lbCA9IGZ1bmN0aW9uKGRhdGFiYXNlKQogCiAgICAgV2ViSW5zcGVjdG9yLmRh
dGFiYXNlTW9kZWwuZGF0YWJhc2VzKCkuZm9yRWFjaCh0aGlzLl9hZGREYXRhYmFzZS5iaW5kKHRo
aXMpKTsKICAgICBXZWJJbnNwZWN0b3IuZGF0YWJhc2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EYXRhYmFzZU1vZGVsLkV2ZW50cy5EYXRhYmFzZUFkZGVkLCB0aGlzLl9kYXRh
YmFzZUFkZGVkLCB0aGlzKTsKLQotICAgIFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuc3Rv
cmFnZXMoKS5mb3JFYWNoKHRoaXMuX2FkZERPTVN0b3JhZ2UuYmluZCh0aGlzKSk7Ci0gICAgV2Vi
SW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VBZGRlZCwgdGhpcy5fZG9tU3RvcmFnZUFk
ZGVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9
IHsKQEAgLTEzNiw2ICsxMzMsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90
eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCAmJiB0aGlzLmlz
U2hvd2luZygpICYmIHRoaXMuX2NhY2hlZFJlc291cmNlc1dlcmVMb2FkZWQpIHsKICAgICAgICAg
ICAgIHRoaXMuX3BvcHVsYXRlUmVzb3VyY2VUcmVlKCk7CisgICAgICAgICAgICB0aGlzLl9wb3B1
bGF0ZURPTVN0b3JhZ2VUcmVlKCk7CiAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZUFwcGxpY2F0
aW9uQ2FjaGVUcmVlKCk7CiAgICAgICAgICAgICB0aGlzLl9pbml0RGVmYXVsdFNlbGVjdGlvbigp
OwogICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAtMjg0LDYgKzI4Miw4
IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZh
ciBhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX2FwcGxpY2F0aW9uQ2Fj
aGVGcmFtZUVsZW1lbnRzW2ZyYW1lSWRdOwogICAgICAgICBpZiAoYXBwbGljYXRpb25DYWNoZUZy
YW1lVHJlZUVsZW1lbnQpCiAgICAgICAgICAgICBhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxl
bWVudC5mcmFtZU5hdmlnYXRlZChmcmFtZSk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVN0
b3JhZ2VNb2RlbC5zdG9yYWdlcygpLmZvckVhY2godGhpcy5fYWRkRE9NU3RvcmFnZS5iaW5kKHRo
aXMpKTsKICAgICB9LAogCiAgICAgX2NhY2hlZFJlc291cmNlc0xvYWRlZDogZnVuY3Rpb24oKQpA
QCAtMzQxLDYgKzM0MSw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgX2FkZERPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2UpCiAgICAgewogICAg
ICAgICB2YXIgZG9tU3RvcmFnZVRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlVHJlZUVsZW1lbnQodGhpcywgZG9tU3RvcmFnZSwgKGRvbVN0b3JhZ2UuaXNMb2NhbFN0b3Jh
Z2UgPyAibG9jYWwtc3RvcmFnZSIgOiAic2Vzc2lvbi1zdG9yYWdlIikpOworICAgICAgICBpZiAo
dGhpcy5fZG9tU3RvcmFnZVRyZWVFbGVtZW50cy5nZXQoZG9tU3RvcmFnZSkpCisgICAgICAgICAg
ICByZXR1cm47CisKICAgICAgICAgdGhpcy5fZG9tU3RvcmFnZVRyZWVFbGVtZW50cy5wdXQoZG9t
U3RvcmFnZSwgZG9tU3RvcmFnZVRyZWVFbGVtZW50KTsKICAgICAgICAgaWYgKGRvbVN0b3JhZ2Uu
aXNMb2NhbFN0b3JhZ2UpCiAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUxpc3RUcmVlRWxl
bWVudC5hcHBlbmRDaGlsZChkb21TdG9yYWdlVHJlZUVsZW1lbnQpOwpAQCAtMzQ5LDYgKzM1Miwz
MCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIH0sCiAK
ICAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAg
Ki8KKyAgICBfZG9tU3RvcmFnZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdmFyIGRvbVN0b3JhZ2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5ET01TdG9yYWdlfSov
IChldmVudC5kYXRhKTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlRE9NU3RvcmFnZShkb21TdG9yYWdl
KTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZX0gZG9tU3RvcmFnZQorICAgICAqLworICAgIF9yZW1vdmVET01TdG9yYWdlOiBmdW5jdGlv
bihkb21TdG9yYWdlKQorICAgIHsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5fZG9t
U3RvcmFnZVRyZWVFbGVtZW50cy5nZXQoZG9tU3RvcmFnZSk7CisgICAgICAgIGlmICghdHJlZUVs
ZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB3YXNTZWxlY3RlZCA9IHRy
ZWVFbGVtZW50LnNlbGVjdGVkOworICAgICAgICB2YXIgcGFyZW50TGlzdFRyZWVFbGVtZW50ID0g
dHJlZUVsZW1lbnQucGFyZW50OworICAgICAgICBwYXJlbnRMaXN0VHJlZUVsZW1lbnQucmVtb3Zl
Q2hpbGQodHJlZUVsZW1lbnQpOworICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCisgICAgICAgICAg
ICBwYXJlbnRMaXN0VHJlZUVsZW1lbnQuc2VsZWN0KCk7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRhdGFiYXNlfSBkYXRhYmFzZQogICAgICAqLwogICAg
IHNlbGVjdERhdGFiYXNlOiBmdW5jdGlvbihkYXRhYmFzZSkKQEAgLTQ3Niw2ICs1MDMsMTkgQEAg
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
aW5uZXJTaG93Vmlldyh2aWV3KTsKICAgICB9LAogCisgICAgX2Ryb3BET01TdG9yYWdlOiBmdW5j
dGlvbihkb21TdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCFkb21TdG9yYWdlKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdmlldyA9IHRoaXMuX2RvbVN0b3JhZ2VWaWV3cy5n
ZXQoZG9tU3RvcmFnZSk7CisgICAgICAgIGlmICghdmlldykKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdGhpcy5fZG9tU3RvcmFnZVZpZXdzLnJlbW92ZShkb21TdG9yYWdlKTsKKyAgICAg
ICAgaWYgKCF2aWV3LmlzU2hvd2luZygpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0
aGlzLmNsb3NlVmlzaWJsZVZpZXcoKTsKKyAgICB9LAorCiAgICAgc2hvd0Nvb2tpZXM6IGZ1bmN0
aW9uKHRyZWVFbGVtZW50LCBjb29raWVEb21haW4pCiAgICAgewogICAgICAgICB2YXIgdmlldyA9
IHRoaXMuX2Nvb2tpZVZpZXdzW2Nvb2tpZURvbWFpbl07CkBAIC01NzIsNiArNjEyLDEzIEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGRhdGFiYXNl
LmdldFRhYmxlTmFtZXModGFibGVOYW1lc0NhbGxiYWNrKTsKICAgICB9LAogCisgICAgX3BvcHVs
YXRlRE9NU3RvcmFnZVRyZWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5kb21TdG9yYWdlTW9kZWwuc3RvcmFnZXMoKS5mb3JFYWNoKHRoaXMuX2FkZERPTVN0b3JhZ2Uu
YmluZCh0aGlzKSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdl
QWRkZWQsIHRoaXMuX2RvbVN0b3JhZ2VBZGRlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5kb21TdG9yYWdlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NU3RvcmFn
ZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlUmVtb3ZlZCwgdGhpcy5fZG9tU3RvcmFnZVJlbW92ZWQs
IHRoaXMpOworICAgIH0sCisKICAgICBfcG9wdWxhdGVBcHBsaWNhdGlvbkNhY2hlVHJlZTogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fYXBwbGljYXRpb25DYWNoZU1vZGVsID0gbmV3
IFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsKQEAgLTE4NTAsMTQgKzE4OTcs
MTQgQEAgV2ViSW5zcGVjdG9yLklEQkluZGV4VHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICov
CiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50ID0gZnVuY3Rpb24oc3RvcmFnZVBh
bmVsLCBkb21TdG9yYWdlLCBjbGFzc05hbWUpCiB7Ci0gICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9y
YWdlVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIGRvbVN0b3JhZ2Uu
ZG9tYWluID8gZG9tU3RvcmFnZS5kb21haW4gOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvY2Fs
IEZpbGVzIiksIFsiZG9tc3RvcmFnZS1zdG9yYWdlLXRyZWUtaXRlbSIsIGNsYXNzTmFtZV0pOwor
ICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LmNhbGwodGhpcywgc3RvcmFn
ZVBhbmVsLCBudWxsLCBkb21TdG9yYWdlLnNlY3VyaXR5T3JpZ2luID8gZG9tU3RvcmFnZS5zZWN1
cml0eU9yaWdpbiA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgRmlsZXMiKSwgWyJkb21z
dG9yYWdlLXN0b3JhZ2UtdHJlZS1pdGVtIiwgY2xhc3NOYW1lXSk7CiAgICAgdGhpcy5fZG9tU3Rv
cmFnZSA9IGRvbVN0b3JhZ2U7CiB9CiAKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogICAgIGdldCBpdGVtVVJMKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biAic3RvcmFnZTovLyIgKyB0aGlzLl9kb21TdG9yYWdlLmRvbWFpbiArICIvIiArICh0aGlzLl9k
b21TdG9yYWdlLmlzTG9jYWxTdG9yYWdlID8gImxvY2FsIiA6ICJzZXNzaW9uIik7CisgICAgICAg
IHJldHVybiAic3RvcmFnZTovLyIgKyB0aGlzLl9kb21TdG9yYWdlLnNlY3VyaXR5T3JpZ2luICsg
Ii8iICsgKHRoaXMuX2RvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2UgPyAibG9jYWwiIDogInNlc3Np
b24iKTsKICAgICB9LAogCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9uKHNlbGVjdGVkQnlVc2VyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGVhZGQzZDg3YmZmODk0NTg5OTY2NTMxMjM2
N2ZhNDBjOTYwZjI2OTkuLjNmMjZiMTE0N2YxNTZjOWI1MzQ5MTE2NDA0NjVjYzI4ZTYzZDcwNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc2Miw3ICs3NjIsNiBAQCBTdG9yYWdl
KiBET01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAg
ICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZShwYWdlLCBzdG9yYWdlQXJl
YS5nZXQoKSwgZmFsc2UsIG1fZnJhbWUpOwogCiAgICAgbV9zZXNzaW9uU3RvcmFnZSA9IFN0b3Jh
Z2U6OmNyZWF0ZShtX2ZyYW1lLCBzdG9yYWdlQXJlYS5yZWxlYXNlKCkpOwogICAgIHJldHVybiBt
X3Nlc3Npb25TdG9yYWdlLmdldCgpOwpAQCAtODAyLDcgKzgwMSw2IEBAIFN0b3JhZ2UqIERPTVdp
bmRvdzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgICAgICBlYyA9
IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZShwYWdlLCBzdG9yYWdlQXJlYS5nZXQoKSwg
dHJ1ZSwgbV9mcmFtZSk7CiAKICAgICBtX2xvY2FsU3RvcmFnZSA9IFN0b3JhZ2U6OmNyZWF0ZSht
X2ZyYW1lLCBzdG9yYWdlQXJlYS5yZWxlYXNlKCkpOwogICAgIHJldHVybiBtX2xvY2FsU3RvcmFn
ZS5nZXQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189304</attachid>
            <date>2013-02-20 06:20:13 -0800</date>
            <delta_ts>2013-02-20 08:51:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109572-20130220181634.patch</filename>
            <type>text/plain</type>
            <size>75335</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdlMjc1OGNhYjJlNTM2
NzVlZTFhZDYyZWE0NGVkYThhMDcyZjI5Ni4uYTE0YTJhODQ5ZmI3MDFkYjRiNDA0MTQ3MGI4ODYx
NTNmODQyMjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk5IEBACiAyMDEzLTAyLTIwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUgaXRlbXMgaW4gdGhlIFJlc291cmNlcyBw
YW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBzaG93bgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVzdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6aXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OmdldERPTVN0b3JhZ2VJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OnNldERPTVN0b3JhZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFnZUl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzdG9yYWdlSWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRT
dG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmaW5kRnJhbWVXaXRoU2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yUGFnZUFnZW50KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5zdG9y
YWdlSWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlLmdldCBp
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUuZ2V0IHNlY3Vy
aXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5n
ZXRJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUuc2V0
SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUucmVtb3Zl
SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9zZWN1cml0eU9yaWdpbkFk
ZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9z
ZWN1cml0eU9yaWdpblJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUuX3N0b3JhZ2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZU1vZGVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZUl0ZW1SZW1v
dmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9k
b21TdG9yYWdlSXRlbUFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9k
ZWwucHJvdG90eXBlLnN0b3JhZ2VGb3JJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZU1vZGVsLnByb3RvdHlwZS5zdG9yYWdlcyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9zaG93RE9NU3RvcmFnZUl0ZW1z
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS5f
ZGF0YUdyaWRGb3JET01TdG9yYWdlSXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9yZWZyZXNoQnV0dG9uQ2xpY2tlZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRW1wdHlWaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1dpbGxIaWRlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlJlc291cmNlc1BhbmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUuX2luaXRpYWxpemUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZS5fZnJhbWVOYXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZVJlbW92ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVET01TdG9yYWdlVHJl
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBpdGVt
VVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
bG9jYWxTdG9yYWdlKToKKworMjAxMy0wMi0yMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZA
Y2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBTZWN1cml0
eU9yaWdpbkFkZGVkIGFuZCBTZWN1cml0eU9yaWdpblJlbW92ZWQgZXZlbnRzIGludG8gUmVzb3Vy
Y2VUcmVlTW9kZWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMDIzMgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZiYzBiZTJkZWQ2Y2I2YjJiZTE1
ZGYyNmY1NzM3NTNkNWY4OTUxYjMuLjY3OWZlNzk1OThlN2UyNjc4M2YyNGUwOGM3ODQ1MjBmZWQ3
NDAyMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjIzLDcgKzE2MjMsNiBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKICAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDVhMDg4Yzk5ZjdhOWU0NzQxODk3YzIzZThkMDM4MDFlY2ZhNThiOWMuLjY4OTg1MWU5
MWY0N2U5ZTE2NTdhNWJlZjBmY2M3ZWRjOGZiZWMzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMzgzOCw4ICszODM4LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBcCi0J
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggZTQyNTZjY2RlODFmNzE5OTY3MzJmZmExOGM2NmVjNzA5MDFiNDEyOS4u
MjQzYWNkZmM5NGQ0NThjNWRiMWJmNDY3ZjEyMDc3OGE5Nzg3MjExYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC03OTgsNyArNzk4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRP
TUFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3Bw
IFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBcCi0gICAgaW5z
cGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5jcHAgXApAQCAtMTk5OSw3ICsxOTk4LDYgQEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oIFwKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhNWUzNTQwMWJkM2Q3Y2U3Nzgw
NzNkMTVkOWE3MThhZWI3YmY5ZjEuLjVlYmI1ZGVlYmU5MTg0M2UxZDgyZGI4MTdiOWQ4MTcyMDQ2
NmI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NTksOCArMTg1OSw2IEBACiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCcsCi0gICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAnLAotICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3Iv
SW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VJbnN0cnVtZW50YXRpb24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA5NTU4
YWJiYTA2NzAwMTMwNjg0ODcwNjI0NDk0ZGI0NmNlZDZjOTY0Li41Zjk4MDA2MDZmYWNkMDljYzll
ZjNjYjcxOGVjM2RlNjIwMjc5Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE5MTg0LDcgKzE5
MTg0LDYgQEAgX19aTjNXVEYxN0hhc2hNYXBUcmFuc2xhdG9ySVN0NHBhaXJJTlNfNlJlZlB0cklO
N1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luRUVFTlMyX0kKIF9fWk43V2ViQ29yZTI0SW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uMjBkaWRVc2VET01TdG9yYWdlSW1wbEVQTlNfMTlJbnN0cnVtZW50aW5n
QWdlbnRzRVBOU18xMVN0b3JhZ2VBcmVhRWJQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQxNmRpZFVzZURPTVN0b3JhZ2VFUE5TXzExU3RvcmFnZUFyZWFF
YlBOU181RnJhbWVFCiBfX1pON1dlYkNvcmU3U3RvcmFnZTZjcmVhdGVFUE5TXzVGcmFtZUVOM1dU
RjEwUGFzc1JlZlB0cklOU18xMVN0b3JhZ2VBcmVhRUVFCi1fX1pON1dlYkNvcmUyN0luc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZUMxRVBOU183U3RvcmFnZUViUE5TXzVGcmFtZUUKIF9fWk43V2Vi
Q29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzdT
dG9yYWdlRQogX19aTjdXZWJDb3JlNHdyYXBJTlNfOUpTU3RvcmFnZUVOU183U3RvcmFnZUVFRU4z
SlNDN0pTVmFsdWVFUE5TM185RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBUMF8K
IF9fWk43V2ViQ29yZTE1Z2V0RE9NU3RydWN0dXJlSU5TXzlKU1N0b3JhZ2VFRUVQTjNKU0M5U3Ry
dWN0dXJlRVBOUzJfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTE5MjA3
LDcgKzE5MjA2LDYgQEAgX19aTjdXZWJDb3JlMTRKU1N0b3JhZ2VPd25lcjI2aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHNFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm8KIF9fWk43V2ViQ29yZTE0SlNT
dG9yYWdlT3duZXI4ZmluYWxpemVFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm93bkVFRVB2CiBfX1pO
N1dlYkNvcmU5SlNTdG9yYWdlRDFFdgogX19aTjdXZWJDb3JlN1N0b3JhZ2VEMUV2Ci1fX1pON1dl
YkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUQwRXYKIF9fWk5LN1dlYkNvcmUxNFNl
Y3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCiBfX1pON1dlYkNvcmU5SlNTdG9yYWdlMTBuYW1lR2V0
dGVyRVBOM0pTQzlFeGVjU3RhdGVFTlMxXzdKU1ZhbHVlRVJLTlMxXzEwSWRlbnRpZmllckUKIF9f
Wk5LN1dlYkNvcmU3U3RvcmFnZTdnZXRJdGVtRVJLTjNXVEY2U3RyaW5nRQpAQCAtMjAzNzYsNyAr
MjAzNzQsNiBAQCBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5TXzI1SlNDU1NWYWx1
ZUxpc3RDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdAogX19aTjdXZWJDb3JlMzBqc0RPTVdp
bmRvd0ZpbGVMaXN0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktO
UzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMTBKU0ZpbGVMaXN0MTRnZXRDb25zdHJ1Y3Rv
ckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk43V2ViQ29yZTE3
Z2V0RE9NQ29uc3RydWN0b3JJTlNfMjFKU0ZpbGVMaXN0Q29uc3RydWN0b3JFRUVQTjNKU0M4SlNP
YmplY3RFUE5TMl85RXhlY1N0YXRlRVBLTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKLV9fWk5LN1dl
YkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTE3aXNTYW1lSG9zdEFuZFR5cGVFUE5T
XzVGcmFtZUViCiBfX1pON1dlYkNvcmU1M2pzRE9NV2luZG93U1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1Ntb290aFJlbENvbnN0cnVjdG9yRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMw
XzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21v
b3RoUmVsMTRnZXRDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9i
amVjdEUKIF9fWk43V2ViQ29yZTE3Z2V0RE9NQ29uc3RydWN0b3JJTlNfNDRKU1NWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGhSZWxDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdEVQTlMyXzlF
eGVjU3RhdGVFUEtOU18xN0pTRE9NR2xvYmFsT2JqZWN0RQpAQCAtMjc0MDMsMjMgKzI3NDAwLDE0
IEBAIF9fWk43V2ViQ29yZTE4SW5zcGVjdG9yUGFnZUFnZW50MTBmcmFtZUZvcklkRVJLTjNXVEY2
U3RyaW5nRQogX19aTjdXZWJDb3JlMThJbnNwZWN0b3JQYWdlQWdlbnQxNXJlc291cmNlQ29udGVu
dEVQTjNXVEY2U3RyaW5nRVBOU181RnJhbWVFUktOU180S1VSTEVTM18KIF9fWk43V2ViQ29yZUwx
OGRlY29kZU1haW5SZXNvdXJjZUVQTlNfNUZyYW1lRVBOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmVMMThkZWNvZGVTaGFyZWRCdWZmZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTJTaGFyZWRCdWZm
ZXJFRUVSS05TMF82U3RyaW5nRVBTNF8KLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlNGJpbmRFUE5TXzE3SW5zcGVjdG9yRnJvbnRlbmRFCiBfX1pON1dlYkNvcmUxN0lu
c3BlY3RvckZyb250ZW5kMTBET01TdG9yYWdlMTNhZGRET01TdG9yYWdlRU4zV1RGMTBQYXNzUmVm
UHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUxNVN0b3JhZ2VBcmVhU3lu
YzEzc2NoZWR1bGVDbGVhckV2CiBfX1pON1dlYkNvcmUyNkluc3BlY3RvckJhY2tlbmREaXNwYXRj
aGVyMzFET01TdG9yYWdlX2dldERPTVN0b3JhZ2VFbnRyaWVzRWxQTlNfMTVJbnNwZWN0b3JPYmpl
Y3RFCiBfX1pON1dlYkNvcmUyNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDIwZ2V0RE9NU3RvcmFn
ZUVudHJpZXNFUE4zV1RGNlN0cmluZ0VpUE5TMV82UmVmUHRySU5TXzE0SW5zcGVjdG9yQXJyYXlF
RUUKLV9fWk4zV1RGOUhhc2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0lu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9F
RU5TXzdJbnRIYXNoSWpFRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5T
Q19JUzVfRUVFRVNEX0UxNmxvb2t1cEZvcldyaXRpbmdFUktpCi1fX1pOM1dURjlIYXNoVGFibGVJ
aVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FM2FkZElpUzVf
TlNfMTdIYXNoTWFwVHJhbnNsYXRvcklTNl9TRl9TQV9FRUVFUzFfSU5TXzE3SGFzaFRhYmxlSXRl
cmF0b3JJaVM2X1M4X1NBX1NGX1NEX0VFYkVSS1RfUktUMF8KLV9fWk4zV1RGOUhhc2hUYWJsZUlp
U3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpFRU5TXzE0UGFp
ckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0U0ZmluZElpTlNf
MjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySWlTNl9TQV9FRUVFTlNfMTdIYXNoVGFibGVJdGVyYXRv
cklpUzZfUzhfU0FfU0ZfU0RfRUVSS1RfCi1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5T
XzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQ
YWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRz
SU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FNWNsZWFyRXYKLV9fWk4zV1RGOUhh
c2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpF
RU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0U2
cmVoYXNoRWkKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlMzFzdGFy
dFJlcG9ydGluZ0NoYW5nZXNUb0Zyb250ZW5kRXYKIF9fWk5LN1dlYkNvcmU3U3RvcmFnZTNrZXlF
agogX19aTks3V2ViQ29yZTE1U3RvcmFnZUFyZWFJbXBsM2tleUVqCiBfX1pON1dlYkNvcmUxMFN0
b3JhZ2VNYXAza2V5RWoKIF9fWk43V2ViQ29yZTEwU3RvcmFnZU1hcDE4c2V0SXRlcmF0b3JUb0lu
ZGV4RWoKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlZXFFUktOU18x
M0V2ZW50TGlzdGVuZXJFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZTZ1bmJpbmRFdgogX19aTjdXZWJDb3JlMTRDb25zb2xlTWVzc2FnZTEzYWRkVG9Gcm9udGVuZEVQ
TlNfMTdJbnNwZWN0b3JGcm9udGVuZDdDb25zb2xlRVBOU18yMUluamVjdGVkU2NyaXB0TWFuYWdl
ckUKIF9fWk43V2ViQ29yZTE3SW5zcGVjdG9yRnJvbnRlbmQ3Q29uc29sZTEybWVzc2FnZUFkZGVk
RU4zV1RGMTBQYXNzUmVmUHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUy
Nkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyMTFQYWdlX3JlbG9hZEVsUE5TXzE1SW5zcGVjdG9y
T2JqZWN0RQpAQCAtMzY0MDcsMTAgKzM2Mzk1LDggQEAgX19aVFZON1dlYkNvcmUxMVR5cGVCdWls
ZGVyNUFycmF5SU5TMF8zRE9NNE5vZGVFRUUKIF9fWlRWTjdXZWJDb3JlMThJbnNwZWN0b3JCYXNl
QWdlbnRJTlNfMTdJbnNwZWN0b3JET01BZ2VudEVFRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNf
MjhSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVj
dG9yQmFzZUFnZW50SU5TXzI1SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudEVFRQotX19aVFZOM1dU
RjIxTWVtb3J5SW5zdHJ1bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2VFRUUKIF9fWlRWTjdXZWJDb3JlMTFUeXBlQnVpbGRlcjVBcnJheUlOUzFf
SU4zV1RGNlN0cmluZ0VFRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVjdG9yQmFzZUFnZW50SU5T
XzI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RUVFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZTE0c19uZXh0VW51c2VkSWRFCiBfX1pUVk4zV1RGMjFNZW1vcnlJbnN0
cnVtZW50YXRpb243V3JhcHBlcklON1dlYkNvcmUxMVN0b3JhZ2VBcmVhRUVFCiBfX1pUVk43V2Vi
Q29yZTVUaW1lcklOU18yOEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2tFRUUKIF9fWlRWTjdX
ZWJDb3JlMjBGcm9udGVuZE1lbnVQcm92aWRlckUKQEAgLTM4NDU2LDcgKzM4NDQyLDYgQEAgX19a
TjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXM5SW5zcGVjdG9yRQogX19aTjdXZWJDb3JlMThX
ZWJDb3JlTWVtb3J5VHlwZXMxOUluc3BlY3RvckNvbnRyb2xsZXJFCiBfX1pON1dlYkNvcmUxOFdl
YkNvcmVNZW1vcnlUeXBlczIwSW5zcGVjdG9yTWVtb3J5QWdlbnRFCiBfX1pON1dlYkNvcmUxOFdl
YkNvcmVNZW1vcnlUeXBlczI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RQotX19aTjdXZWJDb3Jl
MThXZWJDb3JlTWVtb3J5VHlwZXMyOEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXNFCiBfX1pO
N1dlYkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczE2SW5zcGVjdG9yT3ZlcmxheUUKIF9fWk43V2Vi
Q29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjJJbnNwZWN0b3JQcm9maWxlckFnZW50RQogX19aTjdX
ZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMyMkluc3BlY3RvckRlYnVnZ2VyQWdlbnRFCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDM2MzI0YmNh
OWE4YjhiNDQ4ZmM2MGFmNjM4ZTEzMjQxMzBjODBiOTguLjg3YmViYjAzMjc3ZTViMzIyZTM5YzUy
Y2U3ZTEzN2QxZDQxNWJmNzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC03NjEwMywzMCArNzYxMDMsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIgotCQkJCT4K
LQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRl
eCBhYzRjMDNmY2MzMzFjYjNlNjNmNzQ1NDRjMDdkOWQ5NzJiNzFhYzVmLi5mOTZhMGFjZTE3OTE0
OTMwYTE5Mzc0MzBhMjU5ZmM3YmQ4MzFjZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTU2ODQsOSArNTY4NCw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdp
bjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNw
cCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+
CiAgICAgPC9DbENvbXBpbGU+CkBAIC04Mzc3LDcgKzgzNzQsNiBAQAogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTUFnZW50LmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2xpZW50
LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNzcyNzY2Mjc2YjcyYjBiOGQ1Mzk2NDFlYjkwNjVmZjll
ZmZkMTUxZS4uNWI5NmYzYTJhZWMyMWI4OWFkOTBjZTcwZjdlZDA3ODNlM2M3ZTBkYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtNjQ4Myw5ICs2NDgzLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+
aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCI+Ci0gICAg
ICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAi
PgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTEzNzkxLDkgKzEzNzg4LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3Rv
clxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3Rvcjwv
RmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIj4KLSAgICAgIDxGaWx0ZXI+aW5z
cGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgiPgogICAgICAgPEZpbHRl
cj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNmNlYzQwMWZjNmMx
NGM4NmM4NDAzZTA5NmJlZDEwYzcxOTM4MThiLi4yMmVjZjVlZWQ0OWMzODU2MGVmNjM0ZGM1MDYw
NGY4MjZkZTJlYmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMTE5LDggKzExMTksNiBAQAogCQk0MUUxQjFEMTBGRjU5ODY5
MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNCMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdv
cmtlci5oICovOyB9OwogCQk0MUUxQjFEMzBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFC
MUNEMEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuY3BwICovOyB9OwogCQk0MUUxQjFE
NDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDRTBGRjU5ODY5MDA1NzZCM0IgLyogU2hh
cmVkV29ya2VyLmggKi87IH07Ci0JCTQxRjA2MTc0MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuaCAqLzsgfTsKLQkJNDFGMDYxNzUwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE3MzBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlLmNwcCAqLzsgfTsKIAkJNDFGMDYxOEUwRjVGMDY5ODAwQTA3RUFDIC8q
IENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuaCAqLzsg
fTsKIAkJNDFGMDYxOEYwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MThEMEY1RjA2
OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi87IH07CiAJCTQxRjA2MjE0MEY1RjE5
MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjIxMjBGNUYxOTI2MDBBMDdFQUMg
LyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oICovOyB9OwpAQCAtODUwMiw4ICs4NTAwLDYg
QEAKIAkJNDFFMUIxQ0QwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRXb3JrZXIuY3BwOyBwYXRoID0g
d29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUUxQjFDRTBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZFdvcmtlci5oOyBwYXRoID0gd29ya2Vycy9TaGFyZWRX
b3JrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIxQ0YwRkY1OTg2OTAw
NTc2QjNCIC8qIFNoYXJlZFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gU2hhcmVk
V29ya2VyLmlkbDsgcGF0aCA9IHdvcmtlcnMvU2hhcmVkV29ya2VyLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNDFGMDYxNzIwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NDFGMDYxNzMwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUYwNjE4QzBG
NUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ29uc29sZU1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFGMDYxOEQwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNvbGVNZXNzYWdlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3Bl
Y3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTUyNjMsOCArMTUyNTksNiBAQAogCQkJCUYzRDRDNDc3MTJFMDc2NjMwMDNEQTE1MCAvKiBJ
bnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggKi8sCiAJCQkJN0E3NEVDQjgxMDE4MzlBNTAwQkY5
MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgKi8sCiAJCQkJN0E3NEVDQjkxMDE4
MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oICovLAotCQkJCTQxRjA2
MTczMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwICov
LAotCQkJCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2UuaCAqLywKIAkJCQkxNUQxN0QxRTE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50LmNwcCAqLywKIAkJCQkxNUQxN0QxRjE0NzIzMUVCMDA1RUJDQTYgLyogSW5z
cGVjdG9yRmlsZVN5c3RlbUFnZW50LmggKi8sCiAJCQkJMjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1
IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICovLApAQCAtMjQ3NjAsNyArMjQ3NTQsNiBA
QAogCQkJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JET01BZ2VudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjNENEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8qIEluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBNzRFQ0JCMTAxODM5QTYwMEJG
OTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
RjA2MTc0MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTE1RDE3RDIyMTQ3MjMxRUIwMDVFQkNBNiAvKiBJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OERBMjBFMTUyMEVCOEMwMDYx
NDFDMSAvKiBJbnNwZWN0b3JGcm9udGVuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjI3Nzc3NjAx
MzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODA1NCw3ICsyODA0Nyw2IEBACiAJCQkJN0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFB
IC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzRDRDNDc4MTJF
MDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdBNzRFQ0JBMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFGMDYxNzUwRjVGMDBBQzAwQTA3RUFDIC8q
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNUQx
N0QyMTE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJbnNwZWN0b3JGcm9u
dGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyog
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRl
eCA0MTU5M2VhODY5MThkNTkwNzk4ZjQxMTZlMDhlODAxNmJjZDdjYWIyLi4yZDg1MWEyZjU1YTA5
ZGUzNWE2M2VmM2IzMzY0OGUzMzQyZjcwYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC02MCw3ICs2MCw2IEBAIE1l
bW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3IgPSAiV2ViSW5zcGVj
dG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JDb250
cm9sbGVyID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6SW5zcGVjdG9yTWVtb3J5QWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgPSAiV2Vi
SW5zcGVjdG9yIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2VzID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBl
IFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yT3ZlcmxheSA9ICJXZWJJbnNwZWN0b3IiOwog
TWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvclByb2ZpbGVyQWdl
bnQgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVz
OjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gIldlYkluc3BlY3RvciI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCBhYmNmMTc2
MTYxZGZmNTk2MDlhOTA4ZWNiNjE2MTcyNGI0YjE5YWVlLi4xMzY0MTlmZDI3MGY3MTk2YjA4NWY4
ZTEwZmVkNTY2ZjZmYzZmYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckNvbnRyb2xsZXI7CiAgICAgc3RhdGljIE1l
bW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yTWVtb3J5QWdlbnQ7CiAgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OwotICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXM7CiAgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgSW5zcGVjdG9yT3ZlcmxheTsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJ
bnNwZWN0b3JQcm9maWxlckFnZW50OwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYzllNjNlZjQ5ODc2NWUyZTdkODFmZDYwMDA4ODFhMTJj
ZDU3MjZmNC4uNTZhZGM0MGJmZjkzOGZlYWQ3MzljY2UxMjE0MmI3ODQyNDNlYTBhZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAt
MTg1LDcgKzE4NSw3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IGNhc2UgIlN0b3JhZ2UiOgogICAgICAgICAgICAgICAgIHZhciBzdG9yYWdlSWQgPSBJbmplY3Rl
ZFNjcmlwdEhvc3Quc3RvcmFnZUlkKG9iamVjdCkKICAgICAgICAgICAgICAgICBpZiAoc3RvcmFn
ZUlkKQotICAgICAgICAgICAgICAgICAgICBoaW50cy5kb21TdG9yYWdlSWQgPSBzdG9yYWdlSWQ7
CisgICAgICAgICAgICAgICAgICAgIGhpbnRzLmRvbVN0b3JhZ2VJZCA9IEpTT04ucGFyc2Uoc3Rv
cmFnZUlkKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBJbmpl
Y3RlZFNjcmlwdEhvc3QuaW5zcGVjdChvYmplY3RJZCwgaGludHMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGNiYTFlZGViZGJlODFiZmUxNWRjNzNhOTM4YjA4
N2VjNzYwMzhiYjAuLjQ2Y2Q5NjE1MmZiMGQ4Nzg3M2MyMWFjYTY2ODkyNDNkOTc3NDU2MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE0MjMsMjIgKzE0MjMs
MTYgQEAKICAgICB7CiAgICAgICAgICJkb21haW4iOiAiRE9NU3RvcmFnZSIsCiAgICAgICAgICJo
aWRkZW4iOiB0cnVlLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiUXVlcnkgYW5kIG1vZGlmeSBE
T00gc3RvcmFnZS4gU2Vzc2lvbi9sb2NhbCBzdG9yYWdlcyBhcmUgbWF0ZXJpYWxpemVkIHVwb24g
dGhlIGZpcnN0IGFjY2VzcyBpbnNpZGUgYSBmcmFtZSB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHNl
Y3VyaXR5IG9yaWdpbi4iLAogICAgICAgICAidHlwZXMiOiBbCiAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgImlkIjogIlN0b3JhZ2VJZCIsCi0gICAgICAgICAgICAgICAgInR5cGUiOiAi
c3RyaW5nIiwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIGlkZW50aWZp
ZXIgb2YgRE9NIHN0b3JhZ2UgZW50cnkuIiwKLSAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAiaWQiOiAi
RW50cnkiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGVudHJ5LiIsCisgICAgICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGlkZW50aWZpZXIuIiwKICAgICAgICAgICAgICAg
ICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiRG9jdW1lbnQgb3JpZ2luLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc0xvY2FsU3RvcmFnZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24i
OiAiVHJ1ZSBmb3IgbG9jYWwgc3RvcmFnZS4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiLCAiZGVzY3JpcHRpb24iOiAiRW50cnkgaWQg
Zm9yIGZ1cnRoZXIgcmVmZXJlbmNlLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InNlY3VyaXR5T3JpZ2luIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlNlY3Vy
aXR5IG9yaWdpbiBmb3IgdGhlIHN0b3JhZ2UuIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImlzTG9jYWxTdG9yYWdlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6
ICJXaGV0aGVyIHRoZSBzdG9yYWdlIGlzIGxvY2FsIHN0b3JhZ2UgKG5vdCBzZXNzaW9uIHN0b3Jh
Z2UpLiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7
CkBAIC0xNDU5LDcgKzE0NTMsNyBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJE
aXNhYmxlcyBzdG9yYWdlIHRyYWNraW5nLCBwcmV2ZW50cyBzdG9yYWdlIGV2ZW50cyBmcm9tIGJl
aW5nIHNlbnQgdG8gdGhlIGNsaWVudC4iCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJuYW1lIjogImdldERPTVN0b3JhZ2VFbnRyaWVzIiwKKyAgICAgICAg
ICAgICAgICAibmFtZSI6ICJnZXRET01TdG9yYWdlSXRlbXMiLAogICAgICAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIs
ICIkcmVmIjogIlN0b3JhZ2VJZCIgfQogICAgICAgICAgICAgICAgIF0sCkBAIC0xNDkxLDEyICsx
NDg1LDYgQEAKICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibmFtZSI6ICJhZGRET01TdG9yYWdlIiwKLSAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdG9yYWdl
IiwgIiRyZWYiOiAiRW50cnkiIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImRvbVN0b3JhZ2VJdGVtc0Ns
ZWFyZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIsICAiJHJlZiI6ICJTdG9yYWdlSWQiIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IDY3Y2Vh
NDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2YjgyMDk5MzkuLjFlYjhlMjE1YzVlNjQyOGU3OGNh
YWVmN2FkMGFiOTkyNmVkNzc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckFsbEluT25lLmNwcApAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckRPTUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIgotI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VB
Z2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggODU0ODM2MjMxMDFlZDdhNThm
OGMyYjQ5NTBlNTUxYzI4MzEwMzBkYy4uZmRjNDRjZjhjNzM3YWVmOGVkMDc0YjY0YTA2ZmRhZWVi
NTFkNzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAj
aWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VBZ2Vu
dCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCi0gICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3Jl
YXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAgIE93
blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1f
cGFnZUFnZW50LCBtX3N0YXRlLmdldCgpKSk7CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmluZGV4
IDA2YzQyNzBlNzIyYTkyNjU2NGU3YmJiZjdiMWNmOGJlNzZmNzFmM2EuLmY5Yjg2MWU5YjMwODU2
NWExNDM1ZGEzZjQ3MTY5Mzg1YWFjM2ZkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC0zOCwxMyArMzgsMTcg
QEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yUGFn
ZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCisjaW5j
bHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAtNzEsMTAgKzc1LDEw
IEBAIHN0YXRpYyBib29sIGhhZEV4Y2VwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcpCiAgICAgfQogfQogCi1JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6Oklu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCitJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCwgSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudD4oIkRPTVN0b3JhZ2UiLCBpbnN0cnVtZW50aW5nQWdlbnRzLCBz
dGF0ZSkKKyAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJvbnRlbmQoMCkK
LSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCh0aGlzKTsKIH0KQEAgLTkyLDU1ICs5Niw0MyBAQCB2
b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRl
bmQqIGZyb250ZW5kKQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXJGcm9u
dGVuZCgpCiB7Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZG9tU3RvcmFn
ZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoRE9NU3RvcmFnZVJlc291cmNlc01h
cDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkb21TdG9yYWdlRW5k
OyArK2l0KQotICAgICAgICBpdC0+dmFsdWUtPnVuYmluZCgpOwogICAgIG1fZnJvbnRlbmQgPSAw
OwogICAgIGRpc2FibGUoMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpy
ZXN0b3JlKCkKIHsKLSAgICBtX2VuYWJsZWQgPSAgbV9zdGF0ZS0+Z2V0Qm9vbGVhbihET01TdG9y
YWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCk7Cit9CisKK2Jvb2wgSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50Ojppc0VuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0
YXRlLT5nZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFi
bGVkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmVuYWJsZShFcnJvclN0
cmluZyopCiB7Ci0gICAgaWYgKG1fZW5hYmxlZCkKKyAgICBpZiAoaXNFbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2VuYWJsZWQgPSB0cnVlOwotICAgIG1fc3RhdGUtPnNldEJvb2xl
YW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIG1fZW5hYmxl
ZCk7CiAKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciByZXNvdXJjZXNFbmQg
PSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0
ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gcmVzb3VyY2VzRW5kOyArK2l0
KQotICAgICAgICBpdC0+dmFsdWUtPmJpbmQobV9mcm9udGVuZCk7CisgICAgbV9zdGF0ZS0+c2V0
Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCwgdHJ1
ZSk7CisgICAgcmVzdG9yZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
ZGlzYWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAgaWYgKCFtX2VuYWJsZWQpCi0gICAgICAgIHJl
dHVybjsKLSAgICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERP
TVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkLCBtX2VuYWJsZWQpOwor
ICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VB
Z2VudEVuYWJsZWQsIGZhbHNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmdldERPTVN0b3JhZ2VFbnRyaWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBzdG9yYWdlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFy
cmF5PFN0cmluZz4gPiA+JiBlbnRyaWVzKQordm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmdldERPTVN0b3JhZ2VJdGVtcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8
VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiA+JiBpdGVtcykKIHsKLSAgICBJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UqIHN0b3JhZ2VSZXNvdXJjZSA9IGdldERPTVN0b3JhZ2VSZXNvdXJj
ZUZvcklkKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKCFzdG9yYWdlUmVzb3VyY2UpIHsKLSAgICAgICAg
KmVycm9yU3RyaW5nID0gIlN0b3JhZ2UgcmVzb3VyY2Ugbm90IGZvdW5kIGZvciB0aGUgZ2l2ZW4g
c3RvcmFnZSBpZGVudGlmaWVyIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBGcmFtZSog
ZnJhbWUgPSBzdG9yYWdlUmVzb3VyY2UtPmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkgewotICAg
ICAgICAqZXJyb3JTdHJpbmcgPSAiRnJhbWUgbm90IGZvdW5kIjsKKyAgICBGcmFtZSogZnJhbWU7
CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSA9IGZpbmRTdG9yYWdlQXJlYShl
cnJvclN0cmluZywgc3RvcmFnZUlkLCBmcmFtZSk7CisgICAgaWYgKCFzdG9yYWdlQXJlYSkKICAg
ICAgICAgcmV0dXJuOwotICAgIH0KIAotICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlw
ZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiA+IHN0b3JhZ2VFbnRyaWVzID0gVHlwZUJ1aWxkZXI6
OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID46OmNyZWF0ZSgpOworICAgIFJlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiA+IHN0b3Jh
Z2VJdGVtcyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+
OjpjcmVhdGUoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFN0b3JhZ2VBcmVh
KiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VSZXNvdXJjZS0+c3RvcmFnZUFyZWEoKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RvcmFnZUFyZWEtPmxlbmd0aChlYywgZnJhbWUpOyArK2kp
IHsKICAgICAgICAgU3RyaW5nIG5hbWUoc3RvcmFnZUFyZWEtPmtleShpLCBlYywgZnJhbWUpKTsK
ICAgICAgICAgaWYgKGhhZEV4Y2VwdGlvbihlYywgZXJyb3JTdHJpbmcpKQpAQCAtMTUxLDg3ICsx
NDMsNjQgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmdldERPTVN0b3JhZ2VFbnRy
aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY28KICAgICAgICAgUmVmUHRyPFR5cGVCdWls
ZGVyOjpBcnJheTxTdHJpbmc+ID4gZW50cnkgPSBUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPjo6
Y3JlYXRlKCk7CiAgICAgICAgIGVudHJ5LT5hZGRJdGVtKG5hbWUpOwogICAgICAgICBlbnRyeS0+
YWRkSXRlbSh2YWx1ZSk7Ci0gICAgICAgIHN0b3JhZ2VFbnRyaWVzLT5hZGRJdGVtKGVudHJ5KTsK
KyAgICAgICAgc3RvcmFnZUl0ZW1zLT5hZGRJdGVtKGVudHJ5KTsKICAgICB9Ci0gICAgZW50cmll
cyA9IHN0b3JhZ2VFbnRyaWVzLnJlbGVhc2UoKTsKKyAgICBpdGVtcyA9IHN0b3JhZ2VJdGVtcy5y
ZWxlYXNlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzZXRET01TdG9y
YWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2VzcykKK3ZvaWQgSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50OjpzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0
IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKQogewotICAgIEluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNlID0gZ2V0RE9NU3RvcmFnZVJlc291cmNlRm9y
SWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoc3RvcmFnZVJlc291cmNlKSB7Ci0gICAgICAgIEV4Y2Vw
dGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgc3RvcmFnZVJlc291cmNlLT5zdG9yYWdl
QXJlYSgpLT5zZXRJdGVtKGtleSwgdmFsdWUsIGV4Y2VwdGlvbiwgc3RvcmFnZVJlc291cmNlLT5m
cmFtZSgpKTsKLSAgICAgICAgKnN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwotICAgIH0gZWxzZQorICAg
IEZyYW1lKiBmcmFtZTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhID0gZmlu
ZFN0b3JhZ2VBcmVhKDAsIHN0b3JhZ2VJZCwgZnJhbWUpOworICAgIGlmICghc3RvcmFnZUFyZWEp
IHsKICAgICAgICAgKnN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKKyAgICBzdG9yYWdlQXJlYS0+c2V0SXRl
bShrZXksIHZhbHVlLCBleGNlcHRpb24sIGZyYW1lKTsKKyAgICAqc3VjY2VzcyA9ICFleGNlcHRp
b247CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZW1vdmVET01TdG9yYWdl
SXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcm
IGtleSwgYm9vbCogc3VjY2VzcykKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZW1v
dmVET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmpl
Y3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBib29sKiBzdWNjZXNzKQogewotICAg
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNlID0gZ2V0RE9NU3Rv
cmFnZVJlc291cmNlRm9ySWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoc3RvcmFnZVJlc291cmNlKSB7
Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgc3RvcmFnZVJl
c291cmNlLT5zdG9yYWdlQXJlYSgpLT5yZW1vdmVJdGVtKGtleSwgZXhjZXB0aW9uLCBzdG9yYWdl
UmVzb3VyY2UtPmZyYW1lKCkpOwotICAgICAgICAqc3VjY2VzcyA9ICFleGNlcHRpb247Ci0gICAg
fSBlbHNlCisgICAgRnJhbWUqIGZyYW1lOworICAgIFJlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFn
ZUFyZWEgPSBmaW5kU3RvcmFnZUFyZWEoMCwgc3RvcmFnZUlkLCBmcmFtZSk7CisgICAgaWYgKCFz
dG9yYWdlQXJlYSkgewogICAgICAgICAqc3VjY2VzcyA9IGZhbHNlOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb24gPSAwOworICAgIHN0b3JhZ2VB
cmVhLT5yZW1vdmVJdGVtKGtleSwgZXhjZXB0aW9uLCBmcmFtZSk7CisgICAgKnN1Y2Nlc3MgPSAh
ZXhjZXB0aW9uOwogfQogCiBTdHJpbmcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzdG9yYWdl
SWQoU3RvcmFnZSogc3RvcmFnZSkKIHsKICAgICBBU1NFUlQoc3RvcmFnZSk7Ci0gICAgRnJhbWUq
IGZyYW1lID0gc3RvcmFnZS0+ZnJhbWUoKTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAg
ICBib29sIGlzTG9jYWxTdG9yYWdlID0gKGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+
bG9jYWxTdG9yYWdlKGVjKSA9PSBzdG9yYWdlICYmICFlYyk7Ci0gICAgcmV0dXJuIHN0b3JhZ2VJ
ZChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgaXNMb2NhbFN0b3JhZ2UpOwor
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0b3JhZ2UtPmZyYW1lKCktPmRvY3VtZW50KCk7Cisg
ICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICBET01XaW5kb3cqIHdpbmRvdyA9IGRvY3VtZW50LT5k
b21XaW5kb3coKTsKKyAgICBBU1NFUlQod2luZG93KTsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgYm9v
bCBpc0xvY2FsU3RvcmFnZSA9IHdpbmRvdy0+b3B0aW9uYWxMb2NhbFN0b3JhZ2UoKSA9PSBzdG9y
YWdlOworICAgIHJldHVybiBzdG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4uZ2V0KCksIGlzTG9jYWxT
dG9yYWdlKS0+dG9KU09OU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OnN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNM
b2NhbFN0b3JhZ2UpCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdl
SWQ+IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlkKFNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbiwgYm9vbCBpc0xvY2FsU3RvcmFnZSkKIHsKLSAgICBBU1NFUlQoc2VjdXJp
dHlPcmlnaW4pOwotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0b3Jh
Z2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZG9tU3RvcmFnZUVu
ZDsgKytpdCkgewotICAgICAgICBpZiAoaXQtPnZhbHVlLT5pc1NhbWVPcmlnaW5BbmRUeXBlKHNl
Y3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkpCi0gICAgICAgICAgICByZXR1cm4gaXQtPmtl
eTsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1JbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UqIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Z2V0RE9NU3RvcmFnZVJlc291cmNl
Rm9ySWQoY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQpCi17Ci0gICAgRE9NU3RvcmFnZVJlc291cmNl
c01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5maW5kKHN0b3JhZ2VJZCk7Ci0gICAgaWYg
KGl0ID09IG1fcmVzb3VyY2VzLmVuZCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
aXQtPnZhbHVlLmdldCgpOwotfQotCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlk
VXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3Jh
Z2UsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRv
ciBkb21TdG9yYWdlRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdl
UmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGRv
bVN0b3JhZ2VFbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZS0+aXNTYW1lT3JpZ2lu
QW5kVHlwZShmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgaXNMb2NhbFN0b3Jh
Z2UpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlZlB0cjxJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2U+IHJlc291cmNlID0gSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
OjpjcmVhdGUoc3RvcmFnZUFyZWEsIGlzTG9jYWxTdG9yYWdlLCBmcmFtZSk7Ci0KLSAgICBtX3Jl
c291cmNlcy5zZXQocmVzb3VyY2UtPmlkKCksIHJlc291cmNlKTsKLQotICAgIC8vIFJlc291cmNl
cyBhcmUgb25seSBib3VuZCB3aGlsZSB2aXNpYmxlLgotICAgIGlmIChtX2VuYWJsZWQpCi0gICAg
ICAgIHJlc291cmNlLT5iaW5kKG1fZnJvbnRlbmQpOworICAgIHJldHVybiBUeXBlQnVpbGRlcjo6
RE9NU3RvcmFnZTo6U3RvcmFnZUlkOjpjcmVhdGUoKQorICAgICAgICAuc2V0U2VjdXJpdHlPcmln
aW4oc2VjdXJpdHlPcmlnaW4tPnRvUmF3U3RyaW5nKCkpCisgICAgICAgIC5zZXRJc0xvY2FsU3Rv
cmFnZShpc0xvY2FsU3RvcmFnZSkucmVsZWFzZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VU
eXBlIHN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIFBhZ2UqKQog
ewotICAgIGlmICghbV9mcm9udGVuZCB8fCAhbV9lbmFibGVkKQorICAgIGlmICghbV9mcm9udGVu
ZCB8fCAhaXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBpZCA9IHN0
b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgc3RvcmFnZVR5cGUgPT0gTG9jYWxTdG9yYWdlKTsKLQot
ICAgIGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZD4gaWQgPSBzdG9yYWdlSWQoc2VjdXJpdHlPcmln
aW4sIHN0b3JhZ2VUeXBlID09IExvY2FsU3RvcmFnZSk7CiAKICAgICBpZiAoa2V5LmlzTnVsbCgp
KQogICAgICAgICBtX2Zyb250ZW5kLT5kb21zdG9yYWdlKCktPmRvbVN0b3JhZ2VJdGVtc0NsZWFy
ZWQoaWQpOwpAQCAtMjQzLDE2ICsyMTIsMzcgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQ6OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb24KICAg
ICAgICAgbV9mcm9udGVuZC0+ZG9tc3RvcmFnZSgpLT5kb21TdG9yYWdlSXRlbVVwZGF0ZWQoaWQs
IGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OmNsZWFyUmVzb3VyY2VzKCkKK1Bhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6ZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwgRnJhbWUqJiB0YXJn
ZXRGcmFtZSkKIHsKLSAgICBtX3Jlc291cmNlcy5jbGVhcigpOworICAgIFN0cmluZyBzZWN1cml0
eU9yaWdpbjsKKyAgICBib29sIGlzTG9jYWxTdG9yYWdlOworICAgIGJvb2wgc3VjY2VzcyA9IHN0
b3JhZ2VJZC0+Z2V0U3RyaW5nKCJzZWN1cml0eU9yaWdpbiIsICZzZWN1cml0eU9yaWdpbik7Cisg
ICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgIHN1Y2Nlc3MgPSBzdG9yYWdlSWQtPmdldEJvb2xlYW4o
ImlzTG9jYWxTdG9yYWdlIiwgJmlzTG9jYWxTdG9yYWdlKTsKKyAgICBpZiAoIXN1Y2Nlc3MpIHsK
KyAgICAgICAgaWYgKGVycm9yU3RyaW5nKQorICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIklu
dmFsaWQgc3RvcmFnZUlkIGZvcm1hdCI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5maW5kRnJhbWVXaXRoU2VjdXJpdHlPcmlnaW4o
c2VjdXJpdHlPcmlnaW4pOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgaWYgKGVycm9yU3Ry
aW5nKQorICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkZyYW1lIG5vdCBmb3VuZCBmb3IgdGhl
IGdpdmVuIHNlY3VyaXR5IG9yaWdpbiI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICB0
YXJnZXRGcmFtZSA9IGZyYW1lOworCisgICAgUGFnZSogcGFnZSA9IG1fcGFnZUFnZW50LT5wYWdl
KCk7CisgICAgaWYgKGlzTG9jYWxTdG9yYWdlKQorICAgICAgICByZXR1cm4gcGFnZS0+Z3JvdXAo
KS5sb2NhbFN0b3JhZ2UoKS0+c3RvcmFnZUFyZWEoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCkpOworICAgIHJldHVybiBwYWdlLT5zZXNzaW9uU3RvcmFnZSgpLT5zdG9yYWdlQXJl
YShmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50KTsKICAgICBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
Pjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRNZW1i
ZXIobV9yZXNvdXJjZXMsICJyZXNvdXJjZXMiKTsKICAgICBpbmZvLmFkZFdlYWtQb2ludGVyKG1f
ZnJvbnRlbmQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50LmgKaW5kZXggZTk4ZTM5MjFkMDU2ODY5NTIzN2JmOWJlYjA3Mzhj
MTQzOGM5NzE1Mi4uNmM0NzgyZTQ4NWE3OGQxZTA5MGFmZWU2YmJiZDMxNmMzMjlhYmNiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaApAQCAtMzksOCArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZyYW1l
OwogY2xhc3MgSW5zcGVjdG9yQXJyYXk7Ci1jbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2U7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsK
IGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNz
IFBhZ2U7CkBAIC01MSw5ICs1MSw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCiBj
bGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yQmFzZUFnZW50
PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjo6RE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGNyZWF0ZShJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUp
CisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBjcmVhdGUo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFn
ZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3Ry
dW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBhZ2VBZ2VudCwgc3Rh
dGUpKTsKICAgICB9CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOwogCkBAIC02MSwz
NCArNjEsMzEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAg
ICAgdm9pZCByZXN0b3JlKCk7CiAKLSAgICB2b2lkIGNsZWFyUmVzb3VyY2VzKCk7Ci0KICAgICAv
LyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgogICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoRXJy
b3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0cmluZyopOwotICAg
IHZpcnR1YWwgdm9pZCBnZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpB
cnJheTxTdHJpbmc+ID4gPiYgZW50cmllcyk7Ci0gICAgdmlydHVhbCB2b2lkIHNldERPTVN0b3Jh
Z2VJdGVtKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQsIGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0
b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGJvb2wqIHN1Y2Nlc3MpOworICAgIHZpcnR1YWwg
dm9pZCBnZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWls
ZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgaXRlbXMpOworICAgIHZpcnR1YWwgdm9pZCBzZXRET01T
dG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBz
dG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBz
dWNjZXNzKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJp
bmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJp
bmcmIGtleSwgYm9vbCogc3VjY2Vzcyk7CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgaW5qZWN0
ZWQgc2NyaXB0LgogICAgIFN0cmluZyBzdG9yYWdlSWQoU3RvcmFnZSopOwotICAgIFN0cmluZyBz
dG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdlKTsKKyAgICBQYXNz
UmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IHN0b3JhZ2VJZChTZWN1
cml0eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpOwogCiAgICAgLy8gQ2FsbGVkIGZyb20g
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRVc2VET01TdG9yYWdlKFN0b3Jh
Z2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAgICB2b2lkIGRpZERpc3Bh
dGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4q
LCBQYWdlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUq
KTsKIAotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogZ2V0RE9NU3RvcmFnZVJlc291
cmNlRm9ySWQoY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQpOworICAgIEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVj
dG9yQ29tcG9zaXRlU3RhdGUqKTsKKworICAgIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CisgICAg
UGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5nKiwgY29u
c3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBGcmFtZSomKTsKIAotICAgIHR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+ID4gRE9NU3Rv
cmFnZVJlc291cmNlc01hcDsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwIG1fcmVzb3VyY2Vz
OworICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAgICAgSW5zcGVjdG9yRnJv
bnRlbmQqIG1fZnJvbnRlbmQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA5ZjNjZmUxNWI0MGRjNzc1OTc1ZGJiODc2NjBiODJlNzAyMDM3ZWVkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtp
dEBtYXR0bGlsZWsuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOU1BFQ1RP
UikKLQotI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIgotCi0jaW5jbHVk
ZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudE5h
bWVzLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5o
IgotI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiU3RvcmFnZS5oIgotI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCi0jaW5j
bHVkZSAiU3RvcmFnZUV2ZW50LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotaW50IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6c19uZXh0VW51
c2VkSWQgPSAxOwotCi1JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6Okluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3Jh
Z2UsIEZyYW1lKiBmcmFtZSkKLSAgICA6IG1fc3RvcmFnZUFyZWEoc3RvcmFnZUFyZWEpCi0gICAg
LCBtX2lzTG9jYWxTdG9yYWdlKGlzTG9jYWxTdG9yYWdlKQotICAgICwgbV9mcmFtZShmcmFtZSkK
LSAgICAsIG1fZnJvbnRlbmQoMCkKLSAgICAsIG1faWQoU3RyaW5nOjpudW1iZXIoc19uZXh0VW51
c2VkSWQrKykpCi17Ci19Ci0KLWJvb2wgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjppc1Nh
bWVPcmlnaW5BbmRUeXBlKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgYm9vbCBpc0xv
Y2FsU3RvcmFnZSkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pICYmIG1faXNMb2NhbFN0b3JhZ2Ug
PT0gaXNMb2NhbFN0b3JhZ2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
OjpiaW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKLXsKLSAgICBBU1NFUlQoIW1fZnJv
bnRlbmQpOwotICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+ZG9tc3RvcmFnZSgpOwotCi0gICAg
UmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpFbnRyeT4ganNvbk9iamVjdCA9IFR5cGVC
dWlsZGVyOjpET01TdG9yYWdlOjpFbnRyeTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldE9yaWdpbiht
X2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1Jhd1N0cmluZygpKQotICAg
ICAgICAuc2V0SXNMb2NhbFN0b3JhZ2UobV9pc0xvY2FsU3RvcmFnZSkKLSAgICAgICAgLnNldElk
KG1faWQpOwotICAgIG1fZnJvbnRlbmQtPmFkZERPTVN0b3JhZ2UoanNvbk9iamVjdCk7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjp1bmJpbmQoKQotewotICAgIGlmICgh
bV9mcm9udGVuZCkKLSAgICAgICAgcmV0dXJuOyAgLy8gQWxyZWFkeSB1bmJvdW5kLgotCi0gICAg
bV9mcm9udGVuZCA9IDA7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAotewotICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlcyk7Ci0gICAgaW5m
by5hZGRNZW1iZXIobV9zdG9yYWdlQXJlYSwgInN0b3JhZ2VBcmVhIik7Ci0gICAgaW5mby5hZGRN
ZW1iZXIobV9mcmFtZSwgImZyYW1lIik7Ci0gICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2Zyb250
ZW5kKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX2lkLCAiaWQiKTsKLSAgICBpbmZvLmFkZFByaXZh
dGVCdWZmZXIobV9zdG9yYWdlQXJlYS0+bWVtb3J5Qnl0ZXNVc2VkQnlDYWNoZSgpLCAwLCAiU3Rv
cmFnZUFyZWFDYWNoZSIsICJjYWNoZSIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEwZDQ2ZDc1MGZhYTc2NjZjYWM2NGYyZDI2OGU1NjdlZDI0YmI3N2Iu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCisrKyAvZGV2L251
bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0dCBM
aWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZV9oCi0jZGVmaW5lIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZV9oCi0KLSNpbmNsdWRl
ICJJbnNwZWN0b3JGcm9udGVuZC5oIgotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTdG9yYWdlQXJl
YTsKLWNsYXNzIEZyYW1lOwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci0KLWNsYXNzIEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZT4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZT4gY3JlYXRlKFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9v
bCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uoc3RvcmFnZUFyZWEsIGlzTG9j
YWxTdG9yYWdlLCBmcmFtZSkpOwotICAgIH0KLQotICAgIHZvaWQgYmluZChJbnNwZWN0b3JGcm9u
dGVuZCopOwotICAgIHZvaWQgdW5iaW5kKCk7Ci0KLSAgICBib29sIGlzU2FtZU9yaWdpbkFuZFR5
cGUoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdlKSBjb25zdDsKLSAgICBTdHJp
bmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgU3RvcmFnZUFyZWEqIHN0b3JhZ2VB
cmVhKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlQXJlYS5nZXQoKTsgfQotICAgIEZyYW1lKiBm
cmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUuZ2V0KCk7IH0KLQotICAgIHZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIElu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZShTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3Jh
Z2UsIEZyYW1lKik7Ci0KLSAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IG1fc3RvcmFnZUFyZWE7Ci0g
ICAgYm9vbCBtX2lzTG9jYWxTdG9yYWdlOwotICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKLSAg
ICBJbnNwZWN0b3JGcm9udGVuZDo6RE9NU3RvcmFnZSogbV9mcm9udGVuZDsKLSAgICBTdHJpbmcg
bV9pZDsKLQotICAgIHN0YXRpYyBpbnQgc19uZXh0VW51c2VkSWQ7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcAppbmRleCA1YWFhYjE4YWM2N2M0MmEzODY2ODcwN2Q4Y2U1NGYyNGUxZTNjNTVjLi5k
YTExYTNiNWM3N2IyOGI4ZTUzNDI5ZjI2OTBiNGY5MTc5OTQxOGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAt
OTE1LDggKzkxNSw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRM
b2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAgICAgICAgIGlmIChJbnNw
ZWN0b3JEYXRhYmFzZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+
aW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgpKQogICAgICAgICAgICAgZGF0YWJhc2VBZ2VudC0+Y2xl
YXJSZXNvdXJjZXMoKTsKICNlbmRpZgotICAgICAgICBpZiAoSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KiBkb21TdG9yYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQoKSkKLSAgICAgICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+Y2xlYXJSZXNvdXJj
ZXMoKTsKICAgICAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgICAgICBkb21BZ2VudC0+
c2V0RG9jdW1lbnQobWFpbkZyYW1lLT5kb2N1bWVudCgpKTsKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCkBAIC0xMTAxLDE1ICsxMDk5LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWUKIH0KICNlbmRpZgogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9N
U3RvcmFnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgU3Rv
cmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUp
Ci17Ci0gICAgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cy0+aW5zcGVjdG9yQWdlbnQoKTsKLSAgICBpZiAoIWluc3BlY3RvckFnZW50IHx8ICFpbnNw
ZWN0b3JBZ2VudC0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5zdHJ1
bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkpCi0gICAgICAgIGRvbVN0
b3JhZ2VBZ2VudC0+ZGlkVXNlRE9NU3RvcmFnZShzdG9yYWdlQXJlYSwgaXNMb2NhbFN0b3JhZ2Us
IGZyYW1lKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNo
RE9NU3RvcmFnZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3Ry
aW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBz
ZWN1cml0eU9yaWdpbiwgUGFnZSogcGFnZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBmZjYzMDA1MTZlZjEwMzM0YjAwMjIxMDljZmVk
YjM2ZjNkNjEyZjNhLi43ZmZiY2ZmYmRlNGJiYzMwZjYzZDk2YTRiYWNkYmY2MzdjMzgzMGQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0yNTIsNyArMjUyLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZE9w
ZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxEYXRhYmFzZT4s
IGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
dmVyc2lvbik7CiAjZW5kaWYKIAotICAgIHN0YXRpYyB2b2lkIGRpZFVzZURPTVN0b3JhZ2UoUGFn
ZSosIFN0b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAgICBzdGF0
aWMgdm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUs
IFNlY3VyaXR5T3JpZ2luKiwgUGFnZSopOwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC00NTEs
NyArNDUwLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYXNzUmVmUHRyPERhdGFiYXNlPiwgY29uc3QgU3RyaW5n
JiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKICNl
bmRpZgogCi0gICAgc3RhdGljIHZvaWQgZGlkVXNlRE9NU3RvcmFnZUltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIFN0b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7
CiAKICNpZiBFTkFCTEUoV09SS0VSUykKQEAgLTE3NTAsMTkgKzE3NDgsNiBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFdyaXRlSFRNTChjb25zdCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpbwogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZShQYWdlKiBwYWdlLCBTdG9yYWdlQXJlYSogc3RvcmFn
ZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLXsKLSNpZiBFTkFCTEUo
SU5TUEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCi0gICAgICAgIGRpZFVzZURP
TVN0b3JhZ2VJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHN0b3JhZ2VBcmVhLCBpc0xvY2FsU3Rv
cmFnZSwgZnJhbWUpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocGFnZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHN0b3JhZ2VBcmVhKTsKLSAgICBVTlVTRURfUEFSQU0oaXNMb2NhbFN0b3JhZ2UpOwot
ICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7Ci0jZW5kaWYKLX0KLQogaW5saW5lIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwg
U3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwg
UGFnZSogcGFnZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA0YWY4YWJkNzY3YTExMWQ1
OTYxNTUyN2VlY2JmMjJhNThkOTFkNjY1Li43YTFlYjE0NDA5MjlmZWNhNDY2YTM5MmRhNDM2MmQ0
MDEzZDczYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFn
ZUFnZW50LmNwcApAQCAtOTE2LDYgKzkxNiwyMiBAQCBTdHJpbmcgSW5zcGVjdG9yUGFnZUFnZW50
Ojpsb2FkZXJJZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVybiBpZGVudGlmaWVy
OwogfQogCitGcmFtZSogSW5zcGVjdG9yUGFnZUFnZW50OjpmaW5kRnJhbWVXaXRoU2VjdXJpdHlP
cmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5SYXdTdHJpbmcpCit7CisgICAgUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpblB0ciA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKG9yaWdpblJhd1N0cmluZyk7CisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luID0gc2VjdXJpdHlPcmlnaW5QdHIuZ2V0KCk7CisgICAgYm9vbCBpc0xvY2FsID0gc2VjdXJp
dHlPcmlnaW4tPmlzTG9jYWwoKTsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+bWFp
bkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7
CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gZG9jdW1lbnRPcmlnaW4gPSBmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgLy8gRW11bGF0ZSB0aGUgIWVu
Zm9yY2VGaWxlUGF0aFNlcGFyYXRpb24gZm9yIHNlY3VyaXR5IG9yaWdpbnMuCisgICAgICAgIGlm
IChpc0xvY2FsICYmIGRvY3VtZW50T3JpZ2luLT5pc0xvY2FsKCkpCisgICAgICAgICAgICByZXR1
cm4gZnJhbWU7CisgICAgICAgIGlmIChkb2N1bWVudE9yaWdpbi0+ZXF1YWwoc2VjdXJpdHlPcmln
aW4pKQorICAgICAgICAgICAgcmV0dXJuIGZyYW1lOworICAgIH0KKyAgICByZXR1cm4gMDsKK30K
KwogRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6YXNzZXJ0RnJhbWUoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0g
ZnJhbWVGb3JJZChmcmFtZUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JQYWdlQWdlbnQuaAppbmRleCBkNWM1YjkwMjUyZmUzMTVkYTVmYTRmNTFkNTgzZmY4ZTFlMjc0
NWZkLi5kZTI0ZmM0N2IyZDM4MDViNzU3YTM5MGI4YWQ3OWY3ODA1ZjM2Yzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xNzMsNiArMTcz
LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBmcmFtZUlkKEZyYW1lKik7CiAgICAgYm9vbCBoYXNJ
ZEZvckZyYW1lKEZyYW1lKikgY29uc3Q7CiAgICAgU3RyaW5nIGxvYWRlcklkKERvY3VtZW50TG9h
ZGVyKik7CisgICAgRnJhbWUqIGZpbmRGcmFtZVdpdGhTZWN1cml0eU9yaWdpbihjb25zdCBTdHJp
bmcmIG9yaWdpblJhd1N0cmluZyk7CiAgICAgRnJhbWUqIGFzc2VydEZyYW1lKEVycm9yU3RyaW5n
KiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKICAgICBTdHJpbmcgc2NyaXB0UHJlcHJvY2Vzc29y
KCkgeyByZXR1cm4gbV9zY3JpcHRQcmVwcm9jZXNzb3I7IH0KICAgICBzdGF0aWMgRG9jdW1lbnRM
b2FkZXIqIGFzc2VydERvY3VtZW50TG9hZGVyKEVycm9yU3RyaW5nKiwgRnJhbWUqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwppbmRleCBi
MTM0NDE5NTk5ZTM1Mjg0OTkyYzJjMGZiMDYxMTAyYmI4ZGI4ZDg4Li5jN2M3MTJhMTJmZTU0YzI5
YjEzMzIzMTU1YmFjM2M4YjgwNWNjMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCkBAIC0yOSwyNSArMjksMzggQEAKIAogLyoqCiAg
KiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgorICogQHBh
cmFtIHtib29sZWFufSBpc0xvY2FsU3RvcmFnZQorICogQHBhcmFtIHtzdHJpbmc9fSBpZAogICov
Ci1XZWJJbnNwZWN0b3IuRE9NU3RvcmFnZSA9IGZ1bmN0aW9uKGlkLCBkb21haW4sIGlzTG9jYWxT
dG9yYWdlKQorV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UgPSBmdW5jdGlvbihzZWN1cml0eU9yaWdp
biwgaXNMb2NhbFN0b3JhZ2UsIGlkKQogewotICAgIHRoaXMuX2lkID0gaWQ7Ci0gICAgdGhpcy5f
ZG9tYWluID0gZG9tYWluOworICAgIHRoaXMuX3NlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmln
aW47CiAgICAgdGhpcy5faXNMb2NhbFN0b3JhZ2UgPSBpc0xvY2FsU3RvcmFnZTsKIH0KIAorLyoq
CisgKiBAcGFyYW0ge3N0cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAqIEBwYXJhbSB7Ym9vbGVhbn0g
aXNMb2NhbFN0b3JhZ2UKKyAqIEByZXR1cm4ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9Cisg
Ki8KK1dlYkluc3BlY3Rvci5ET01TdG9yYWdlLnN0b3JhZ2VJZCA9IGZ1bmN0aW9uKHNlY3VyaXR5
T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkKK3sKKyAgICByZXR1cm4geyBzZWN1cml0eU9yaWdpbjog
c2VjdXJpdHlPcmlnaW4sIGlzTG9jYWxTdG9yYWdlOiBpc0xvY2FsU3RvcmFnZSB9OworfQorCiBX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoqIEByZXR1cm4ge3N0
cmluZ30gKi8KKworICAgIC8qKiBAcmV0dXJuIHtET01TdG9yYWdlQWdlbnQuU3RvcmFnZUlkfSAq
LwogICAgIGdldCBpZCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5faWQ7CisgICAgICAg
IHJldHVybiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5zdG9yYWdlSWQodGhpcy5fc2VjdXJpdHlP
cmlnaW4sIHRoaXMuX2lzTG9jYWxTdG9yYWdlKTsKICAgICB9LAogCiAgICAgLyoqIEByZXR1cm4g
e3N0cmluZ30gKi8KLSAgICBnZXQgZG9tYWluKCkKKyAgICBnZXQgc2VjdXJpdHlPcmlnaW4oKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2RvbWFpbjsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X3NlY3VyaXR5T3JpZ2luOwogICAgIH0sCiAKICAgICAvKiogQHJldHVybiB7Ym9vbGVhbn0gKi8K
QEAgLTU3LDExICs3MCwxMSBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUgPSB7
CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVy
cm9yLCBBcnJheS48RE9NU3RvcmFnZUFnZW50LkVudHJ5Pik6dm9pZD19IGNhbGxiYWNrCisgICAg
ICogQHBhcmFtIHtmdW5jdGlvbig/UHJvdG9jb2wuRXJyb3IsIEFycmF5LjxET01TdG9yYWdlQWdl
bnQuSXRlbT4pOnZvaWQ9fSBjYWxsYmFjawogICAgICAqLwotICAgIGdldEVudHJpZXM6IGZ1bmN0
aW9uKGNhbGxiYWNrKQorICAgIGdldEl0ZW1zOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0g
ICAgICAgIERPTVN0b3JhZ2VBZ2VudC5nZXRET01TdG9yYWdlRW50cmllcyh0aGlzLl9pZCwgY2Fs
bGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQuZ2V0RE9NU3RvcmFnZUl0ZW1zKHRoaXMu
aWQsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC03MSw3ICs4NCw3IEBAIFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzZXRJdGVtOiBm
dW5jdGlvbihrZXksIHZhbHVlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTVN0b3JhZ2VB
Z2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOwor
ICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0RE9NU3RvcmFnZUl0ZW0odGhpcy5pZCwga2V5LCB2
YWx1ZSwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICAvKioKQEAgLTgwLDcgKzkzLDcgQEAgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlbW92ZUl0
ZW06IGZ1bmN0aW9uKGtleSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBET01TdG9yYWdlQWdl
bnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgY2FsbGJhY2spOworICAgICAg
ICBET01TdG9yYWdlQWdlbnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5pZCwga2V5LCBjYWxs
YmFjayk7CiAgICAgfQogfQogCkBAIC05MywxMCArMTA2LDEzIEBAIFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fc3RvcmFnZXMgPSB7fTsKICAgICBJ
bnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRE9NU3RvcmFnZURpc3BhdGNoZXIobmV3IFdlYkluc3Bl
Y3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlcih0aGlzKSk7CiAgICAgRE9NU3RvcmFnZUFnZW50LmVu
YWJsZSgpOworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlNlY3VyaXR5T3Jp
Z2luQWRkZWQsIHRoaXMuX3NlY3VyaXR5T3JpZ2luQWRkZWQsIHRoaXMpOworICAgIFdlYkluc3Bl
Y3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlNlY3VyaXR5T3JpZ2luUmVtb3ZlZCwgdGhpcy5fc2Vj
dXJpdHlPcmlnaW5SZW1vdmVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5FdmVudHMgPSB7CiAgICAgRE9NU3RvcmFnZUFkZGVkOiAiRE9NU3RvcmFnZUFkZGVkIiwK
KyAgICBET01TdG9yYWdlUmVtb3ZlZDogIkRPTVN0b3JhZ2VSZW1vdmVkIiwKICAgICBET01TdG9y
YWdlSXRlbXNDbGVhcmVkOiAiRE9NU3RvcmFnZUl0ZW1zQ2xlYXJlZCIsCiAgICAgRE9NU3RvcmFn
ZUl0ZW1SZW1vdmVkOiAiRE9NU3RvcmFnZUl0ZW1SZW1vdmVkIiwKICAgICBET01TdG9yYWdlSXRl
bUFkZGVkOiAiRE9NU3RvcmFnZUl0ZW1BZGRlZCIsCkBAIC0xMDQsMTMgKzEyMCw1MyBAQCBXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cyA9IHsKIH0KIAogV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfc2VjdXJpdHlPcmlnaW5BZGRl
ZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSAv
KiogQHR5cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB2YXIgbG9jYWxTdG9y
YWdlS2V5ID0gdGhpcy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXldKTsKKyAgICAg
ICAgdmFyIGxvY2FsU3RvcmFnZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZShzZWN1cml0
eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VzW2xvY2FsU3RvcmFnZUtleV0g
PSBsb2NhbFN0b3JhZ2U7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VBZGRlZCwgbG9jYWxT
dG9yYWdlKTsKKworICAgICAgICB2YXIgc2Vzc2lvblN0b3JhZ2VLZXkgPSB0aGlzLl9zdG9yYWdl
S2V5KHNlY3VyaXR5T3JpZ2luLCBmYWxzZSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlz
Ll9zdG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV0pOworICAgICAgICB2YXIgc2Vzc2lvblN0b3Jh
Z2UgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uoc2VjdXJpdHlPcmlnaW4sIGZhbHNlKTsK
KyAgICAgICAgdGhpcy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXldID0gc2Vzc2lvblN0b3Jh
Z2U7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VBZGRlZCwgc2Vzc2lvblN0b3JhZ2UpOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZl
bnQKKyAgICAgKi8KKyAgICBfc2VjdXJpdHlPcmlnaW5SZW1vdmVkOiBmdW5jdGlvbihldmVudCkK
KyAgICB7CisgICAgICAgIHZhciBzZWN1cml0eU9yaWdpbiA9IC8qKiBAdHlwZSB7c3RyaW5nfSAq
LyAoZXZlbnQuZGF0YSk7CisgICAgICAgIHZhciBsb2NhbFN0b3JhZ2VLZXkgPSB0aGlzLl9zdG9y
YWdlSWQoc2VjdXJpdHlPcmlnaW4sIHRydWUpOworICAgICAgICB2YXIgbG9jYWxTdG9yYWdlID0g
dGhpcy5fc3RvcmFnZXNbbG9jYWxTdG9yYWdlS2V5XTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
bG9jYWxTdG9yYWdlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3N0b3JhZ2VzW2xvY2FsU3RvcmFn
ZUtleV07CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VSZW1vdmVkLCBsb2NhbFN0b3JhZ2Up
OworCisgICAgICAgIHZhciBzZXNzaW9uU3RvcmFnZUtleSA9IHRoaXMuX3N0b3JhZ2VJZChzZWN1
cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICB2YXIgc2Vzc2lvblN0b3JhZ2UgPSB0aGlzLl9z
dG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNlc3Np
b25TdG9yYWdlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3N0b3JhZ2VzW3Nlc3Npb25TdG9yYWdl
S2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9y
LkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQsIHNlc3Npb25TdG9yYWdl
KTsKKyAgICB9LAorCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZX0gZG9tU3RvcmFnZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgor
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UKKyAgICAgKiBAcmV0dXJuIHtz
dHJpbmd9CiAgICAgICovCi0gICAgX2FkZERPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2Up
CisgICAgX3N0b3JhZ2VJZDogZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4sIGlzTG9jYWxTdG9yYWdl
KQogICAgIHsKLSAgICAgICAgdGhpcy5fc3RvcmFnZXNbZG9tU3RvcmFnZS5pZF0gPSBkb21TdG9y
YWdlOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
RE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIGRvbVN0b3JhZ2UpOworICAg
ICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uuc3RvcmFn
ZUlkKHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkpOwogICAgIH0sCiAKICAgICAvKioK
QEAgLTExOCw3ICsxNzQsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICBfZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZDogZnVuY3Rpb24oc3Rv
cmFnZUlkKQogICAgIHsKLSAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLl9zdG9yYWdlc1tz
dG9yYWdlSWRdOworICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuc3RvcmFnZUZvcklkKHN0
b3JhZ2VJZCk7CiAgICAgICAgIHZhciBzdG9yYWdlRGF0YSA9IHsKICAgICAgICAgICAgIHN0b3Jh
Z2U6IGRvbVN0b3JhZ2UKICAgICAgICAgfTsKQEAgLTEzMSw3ICsxODcsNyBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfZG9tU3RvcmFn
ZUl0ZW1SZW1vdmVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSkKICAgICB7Ci0gICAgICAgIHZh
ciBkb21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgdmFyIGRv
bVN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAgICB2YXIgc3Rv
cmFnZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlLAogICAgICAgICAg
ICAga2V5OiBrZXkKQEAgLTE0Niw3ICsyMDIsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfZG9tU3RvcmFnZUl0ZW1BZGRlZDogZnVu
Y3Rpb24oc3RvcmFnZUlkLCBrZXksIG5ld1ZhbHVlKQogICAgIHsKLSAgICAgICAgdmFyIGRvbVN0
b3JhZ2UgPSB0aGlzLl9zdG9yYWdlc1tzdG9yYWdlSWRdOworICAgICAgICB2YXIgZG9tU3RvcmFn
ZSA9IHRoaXMuc3RvcmFnZUZvcklkKHN0b3JhZ2VJZCk7CiAgICAgICAgIHZhciBzdG9yYWdlRGF0
YSA9IHsKICAgICAgICAgICAgIHN0b3JhZ2U6IGRvbVN0b3JhZ2UsCiAgICAgICAgICAgICBrZXk6
IGtleSwKQEAgLTE3OSw3ICsyMzUsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzdG9yYWdlRm9ySWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJ
ZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdG9yYWdlc1tzdG9yYWdlSWRdOworICAg
ICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZXNbSlNPTi5zdHJpbmdpZnkoc3RvcmFnZUlkKV07CiAg
ICAgfSwKIAogICAgIC8qKgpAQCAtMTg4LDggKzI0NCw4IEBAIFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlTW9kZWwucHJvdG90eXBlID0gewogICAgIHN0b3JhZ2VzOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgICAgIGZvciAodmFyIHN0b3JhZ2VJZCBpbiB0
aGlzLl9zdG9yYWdlcykKLSAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuX3N0b3JhZ2VzW3N0
b3JhZ2VJZF0pOworICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9zdG9yYWdlcykKKyAgICAg
ICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuX3N0b3JhZ2VzW2lkXSk7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfSwKIApAQCAtMjA5LDE4ICsyNjUsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZURpc3BhdGNoZXIgPSBmdW5jdGlvbihtb2RlbCkKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
RGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0RPTVN0
b3JhZ2VBZ2VudC5FbnRyeX0gcGF5bG9hZAotICAgICAqLwotICAgIGFkZERPTVN0b3JhZ2U6IGZ1
bmN0aW9uKHBheWxvYWQpCi0gICAgewotICAgICAgICB0aGlzLl9tb2RlbC5fYWRkRE9NU3RvcmFn
ZShuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UoCi0gICAgICAgICAgICBwYXlsb2FkLmlkLAot
ICAgICAgICAgICAgcGF5bG9hZC5vcmlnaW4sCi0gICAgICAgICAgICBwYXlsb2FkLmlzTG9jYWxT
dG9yYWdlKSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9y
YWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9IHN0b3JhZ2VJ
ZAogICAgICAqLwogICAgIGRvbVN0b3JhZ2VJdGVtc0NsZWFyZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJ
ZCkKICAgICB7CkBAIC0yMjgsNyArMjczLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNw
YXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtz
dHJpbmd9IHN0b3JhZ2VJZAorICAgICAqIEBwYXJhbSB7RE9NU3RvcmFnZUFnZW50LlN0b3JhZ2VJ
ZH0gc3RvcmFnZUlkCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGtleQogICAgICAqLwogICAgIGRv
bVN0b3JhZ2VJdGVtUmVtb3ZlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXkpCkBAIC0yMzcsNyAr
MjgyLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VJZAorICAg
ICAqIEBwYXJhbSB7RE9NU3RvcmFnZUFnZW50LlN0b3JhZ2VJZH0gc3RvcmFnZUlkCiAgICAgICog
QHBhcmFtIHtzdHJpbmd9IGtleQogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWYWx1ZQogICAg
ICAqLwpAQCAtMjQ3LDcgKzI5Miw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9IHN0
b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gb2xkVmFsdWUKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFsdWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmll
dy5qcwppbmRleCA1MzVkYTEyYzM1M2NiMWU3MDg2NDhmYWFhNjIzMmFkZjdkM2EyOGNjLi43MTlk
OWRmZDI0NDEyOWFmN2Q3MDQ5OWM2NDQwMjcxZTY0OTIyYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1ZpZXcuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3Lmpz
CkBAIC01OSw3ICs1OSw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3Rv
dHlwZSA9IHsKIAogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB0aGlz
Ll91cGRhdGUoKTsKKyAgICAgICAgdGhpcy51cGRhdGUoKTsKICAgICB9LAogCiAgICAgd2lsbEhp
ZGU6IGZ1bmN0aW9uKCkKQEAgLTE1MywyNCArMTUzLDI0IEBAIFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfdXBk
YXRlOiBmdW5jdGlvbigpCisgICAgdXBkYXRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0
aGlzLmRldGFjaENoaWxkVmlld3MoKTsKLSAgICAgICAgdGhpcy5kb21TdG9yYWdlLmdldEVudHJp
ZXModGhpcy5fc2hvd0RPTVN0b3JhZ2VFbnRyaWVzLmJpbmQodGhpcykpOworICAgICAgICB0aGlz
LmRvbVN0b3JhZ2UuZ2V0SXRlbXModGhpcy5fc2hvd0RPTVN0b3JhZ2VJdGVtcy5iaW5kKHRoaXMp
KTsKICAgICB9LAogCi0gICAgX3Nob3dET01TdG9yYWdlRW50cmllczogZnVuY3Rpb24oZXJyb3Is
IGVudHJpZXMpCisgICAgX3Nob3dET01TdG9yYWdlSXRlbXM6IGZ1bmN0aW9uKGVycm9yLCBpdGVt
cykKICAgICB7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAg
ICAgICB0aGlzLl9kYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlkRm9yRE9NU3RvcmFnZUVudHJpZXMo
ZW50cmllcyk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gdGhpcy5fZGF0YUdyaWRGb3JET01T
dG9yYWdlSXRlbXMoaXRlbXMpOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5zaG93KHRoaXMuZWxl
bWVudCk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmF1dG9TaXplQ29sdW1ucygxMCk7CiAgICAg
ICAgIHRoaXMuZGVsZXRlQnV0dG9uLnZpc2libGUgPSAodGhpcy5fZGF0YUdyaWQucm9vdE5vZGUo
KS5jaGlsZHJlbi5sZW5ndGggPiAxKTsKICAgICB9LAogCi0gICAgX2RhdGFHcmlkRm9yRE9NU3Rv
cmFnZUVudHJpZXM6IGZ1bmN0aW9uKGVudHJpZXMpCisgICAgX2RhdGFHcmlkRm9yRE9NU3RvcmFn
ZUl0ZW1zOiBmdW5jdGlvbihpdGVtcykKICAgICB7CiAgICAgICAgIHZhciBjb2x1bW5zID0ge2tl
eToge30sIHZhbHVlOiB7fX07CiAKQEAgLTE4MywxMCArMTgzLDEwIEBAIFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIG5vZGVzID0gW107
CiAKICAgICAgICAgdmFyIGtleXMgPSBbXTsKLSAgICAgICAgdmFyIGxlbmd0aCA9IGVudHJpZXMu
bGVuZ3RoOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJpZXMubGVuZ3RoOyBpKysp
IHsKLSAgICAgICAgICAgIHZhciBrZXkgPSBlbnRyaWVzW2ldWzBdOwotICAgICAgICAgICAgdmFy
IHZhbHVlID0gZW50cmllc1tpXVsxXTsKKyAgICAgICAgdmFyIGxlbmd0aCA9IGl0ZW1zLmxlbmd0
aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykgeworICAg
ICAgICAgICAgdmFyIGtleSA9IGl0ZW1zW2ldWzBdOworICAgICAgICAgICAgdmFyIHZhbHVlID0g
aXRlbXNbaV1bMV07CiAgICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0
YUdyaWROb2RlKHtrZXk6IGtleSwgdmFsdWU6IHZhbHVlfSwgZmFsc2UpOwogICAgICAgICAgICAg
bm9kZS5zZWxlY3RhYmxlID0gdHJ1ZTsKICAgICAgICAgICAgIG5vZGVzLnB1c2gobm9kZSk7CkBA
IC0yMTMsNyArMjEzLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90
eXBlID0gewogCiAgICAgX3JlZnJlc2hCdXR0b25DbGlja2VkOiBmdW5jdGlvbihldmVudCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZSgpOworICAgICAgICB0aGlzLnVwZGF0ZSgpOwogICAg
IH0sCiAKICAgICBfZWRpdGluZ0NhbGxiYWNrOiBmdW5jdGlvbihlZGl0aW5nTm9kZSwgY29sdW1u
SWRlbnRpZmllciwgb2xkVGV4dCwgbmV3VGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMKaW5kZXggZDdhNjVhZjI3MWM5YWRlY2E2YzNlMjEz
ODE0ZDZmYTk5MGQ3YjIzZS4uMmVjZjM4MTU1YjA1Njc4YzJmYzdmNzFiY2M1NWNkYWQ4NjY5N2Fm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcu
anMKQEAgLTUyLDYgKzUyLDExIEBAIFdlYkluc3BlY3Rvci5FbXB0eVZpZXcucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fdGV4dDsKICAg
ICB9LAogCisgICAgX3Byb2Nlc3NXaWxsSGlkZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
V2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9wcm9jZXNzV2lsbEhpZGUuY2FsbCh0aGlzKTsK
KyAgICB9LAorCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmlldy5wcm90b3R5cGUKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJj
ZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2Vz
UGFuZWwuanMKaW5kZXggZWFhYTFhMmVkNGRlMWVhMmU2OWY4YzdlNDMyNjEyODZiODdlYTY3MS4u
Njk2Nzc2YzBlODc2NWZlOTAwZjNkMDY0MDE5Mjk4YmQwZDU1MGJiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCkBAIC0x
MTUsOSArMTE1LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsID0gZnVuY3Rpb24oZGF0
YWJhc2UpCiAKICAgICBXZWJJbnNwZWN0b3IuZGF0YWJhc2VNb2RlbC5kYXRhYmFzZXMoKS5mb3JF
YWNoKHRoaXMuX2FkZERhdGFiYXNlLmJpbmQodGhpcykpOwogICAgIFdlYkluc3BlY3Rvci5kYXRh
YmFzZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFiYXNlTW9kZWwuRXZl
bnRzLkRhdGFiYXNlQWRkZWQsIHRoaXMuX2RhdGFiYXNlQWRkZWQsIHRoaXMpOwotCi0gICAgV2Vi
SW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpLmZvckVhY2godGhpcy5fYWRkRE9N
U3RvcmFnZS5iaW5kKHRoaXMpKTsKLSAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3Rv
cmFnZUFkZGVkLCB0aGlzLl9kb21TdG9yYWdlQWRkZWQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewpAQCAtMTM2LDYgKzEzMyw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBpZiAo
IXRoaXMuX2luaXRpYWxpemVkICYmIHRoaXMuaXNTaG93aW5nKCkgJiYgdGhpcy5fY2FjaGVkUmVz
b3VyY2VzV2VyZUxvYWRlZCkgewogICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGVSZXNvdXJjZVRy
ZWUoKTsKKyAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlRE9NU3RvcmFnZVRyZWUoKTsKICAgICAg
ICAgICAgIHRoaXMuX3BvcHVsYXRlQXBwbGljYXRpb25DYWNoZVRyZWUoKTsKICAgICAgICAgICAg
IHRoaXMuX2luaXREZWZhdWx0U2VsZWN0aW9uKCk7CiAgICAgICAgICAgICB0aGlzLl9pbml0aWFs
aXplZCA9IHRydWU7CkBAIC0yODQsNiArMjgyLDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVF
bGVtZW50ID0gdGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxlbWVudHNbZnJhbWVJZF07CiAg
ICAgICAgIGlmIChhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudCkKICAgICAgICAgICAg
IGFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmZyYW1lTmF2aWdhdGVkKGZyYW1lKTsK
KworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLnN0b3JhZ2VzKCkuZm9yRWFj
aCh0aGlzLl9hZGRET01TdG9yYWdlLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfY2FjaGVk
UmVzb3VyY2VzTG9hZGVkOiBmdW5jdGlvbigpCkBAIC0zNDEsNiArMzQxLDkgQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfYWRkRE9NU3RvcmFnZTogZnVu
Y3Rpb24oZG9tU3RvcmFnZSkKICAgICB7CiAgICAgICAgIHZhciBkb21TdG9yYWdlVHJlZUVsZW1l
bnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudCh0aGlzLCBkb21TdG9y
YWdlLCAoZG9tU3RvcmFnZS5pc0xvY2FsU3RvcmFnZSA/ICJsb2NhbC1zdG9yYWdlIiA6ICJzZXNz
aW9uLXN0b3JhZ2UiKSk7CisgICAgICAgIGlmICh0aGlzLl9kb21TdG9yYWdlVHJlZUVsZW1lbnRz
LmdldChkb21TdG9yYWdlKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlzLl9k
b21TdG9yYWdlVHJlZUVsZW1lbnRzLnB1dChkb21TdG9yYWdlLCBkb21TdG9yYWdlVHJlZUVsZW1l
bnQpOwogICAgICAgICBpZiAoZG9tU3RvcmFnZS5pc0xvY2FsU3RvcmFnZSkKICAgICAgICAgICAg
IHRoaXMubG9jYWxTdG9yYWdlTGlzdFRyZWVFbGVtZW50LmFwcGVuZENoaWxkKGRvbVN0b3JhZ2VU
cmVlRWxlbWVudCk7CkBAIC0zNDksNiArMzUyLDMwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqLworICAgIF9kb21TdG9yYWdlUmVtb3ZlZDog
ZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IC8qKiBAdHlw
ZSB7V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2V9Ki8gKGV2ZW50LmRhdGEpOworICAgICAgICB0aGlz
Ll9yZW1vdmVET01TdG9yYWdlKGRvbVN0b3JhZ2UpOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5ET01TdG9yYWdlfSBkb21TdG9yYWdlCisgICAgICovCisg
ICAgX3JlbW92ZURPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2UpCisgICAgeworICAgICAg
ICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl9kb21TdG9yYWdlVHJlZUVsZW1lbnRzLmdldChkb21T
dG9yYWdlKTsKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdmFyIHdhc1NlbGVjdGVkID0gdHJlZUVsZW1lbnQuc2VsZWN0ZWQ7CisgICAgICAg
IHZhciBwYXJlbnRMaXN0VHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudC5wYXJlbnQ7CisgICAgICAg
IHBhcmVudExpc3RUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisgICAgICAg
IGlmICh3YXNTZWxlY3RlZCkKKyAgICAgICAgICAgIHBhcmVudExpc3RUcmVlRWxlbWVudC5zZWxl
Y3QoKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRGF0
YWJhc2V9IGRhdGFiYXNlCiAgICAgICovCiAgICAgc2VsZWN0RGF0YWJhc2U6IGZ1bmN0aW9uKGRh
dGFiYXNlKQpAQCAtNDc2LDYgKzUwMywxOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9pbm5lclNob3dWaWV3KHZpZXcpOwogICAgIH0s
CiAKKyAgICBfZHJvcERPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2UpCisgICAgeworICAg
ICAgICBpZiAoIWRvbVN0b3JhZ2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB2
aWV3ID0gdGhpcy5fZG9tU3RvcmFnZVZpZXdzLmdldChkb21TdG9yYWdlKTsKKyAgICAgICAgaWYg
KCF2aWV3KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9kb21TdG9yYWdlVmll
d3MucmVtb3ZlKGRvbVN0b3JhZ2UpOworICAgICAgICBpZiAoIXZpZXcuaXNTaG93aW5nKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuY2xvc2VWaXNpYmxlVmlldygpOworICAg
IH0sCisKICAgICBzaG93Q29va2llczogZnVuY3Rpb24odHJlZUVsZW1lbnQsIGNvb2tpZURvbWFp
bikKICAgICB7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy5fY29va2llVmlld3NbY29va2llRG9t
YWluXTsKQEAgLTU3Miw2ICs2MTIsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZGF0YWJhc2UuZ2V0VGFibGVOYW1lcyh0YWJsZU5hbWVzQ2Fs
bGJhY2spOwogICAgIH0sCiAKKyAgICBfcG9wdWxhdGVET01TdG9yYWdlVHJlZTogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygp
LmZvckVhY2godGhpcy5fYWRkRE9NU3RvcmFnZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VBZGRlZCwgdGhpcy5fZG9tU3RvcmFnZUFkZGVk
LCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VSZW1v
dmVkLCB0aGlzLl9kb21TdG9yYWdlUmVtb3ZlZCwgdGhpcyk7CisgICAgfSwKKwogICAgIF9wb3B1
bGF0ZUFwcGxpY2F0aW9uQ2FjaGVUcmVlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlz
Ll9hcHBsaWNhdGlvbkNhY2hlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2Fj
aGVNb2RlbCgpOwpAQCAtMTg1MCwxNCArMTg5NywxNCBAQCBXZWJJbnNwZWN0b3IuSURCSW5kZXhU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJl
ZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9yYWdlUGFuZWwsIGRvbVN0b3JhZ2UsIGNsYXNzTmFtZSkK
IHsKLSAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0
b3JhZ2VQYW5lbCwgbnVsbCwgZG9tU3RvcmFnZS5kb21haW4gPyBkb21TdG9yYWdlLmRvbWFpbiA6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgRmlsZXMiKSwgWyJkb21zdG9yYWdlLXN0b3Jh
Z2UtdHJlZS1pdGVtIiwgY2xhc3NOYW1lXSk7CisgICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdl
VHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIGRvbVN0b3JhZ2Uuc2Vj
dXJpdHlPcmlnaW4gPyBkb21TdG9yYWdlLnNlY3VyaXR5T3JpZ2luIDogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJMb2NhbCBGaWxlcyIpLCBbImRvbXN0b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0iLCBj
bGFzc05hbWVdKTsKICAgICB0aGlzLl9kb21TdG9yYWdlID0gZG9tU3RvcmFnZTsKIH0KIAogV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IGl0
ZW1VUkwoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlOi8vIiArIHRoaXMuX2RvbVN0
b3JhZ2UuZG9tYWluICsgIi8iICsgKHRoaXMuX2RvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2UgPyAi
bG9jYWwiIDogInNlc3Npb24iKTsKKyAgICAgICAgcmV0dXJuICJzdG9yYWdlOi8vIiArIHRoaXMu
X2RvbVN0b3JhZ2Uuc2VjdXJpdHlPcmlnaW4gKyAiLyIgKyAodGhpcy5fZG9tU3RvcmFnZS5pc0xv
Y2FsU3RvcmFnZSA/ICJsb2NhbCIgOiAic2Vzc2lvbiIpOwogICAgIH0sCiAKICAgICBvbnNlbGVj
dDogZnVuY3Rpb24oc2VsZWN0ZWRCeVVzZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZWFkZDNkODdiZmY4OTQ1ODk5NjY1MzEyMzY3ZmE0MGM5NjBmMjY5OS4uM2YyNmIxMTQ3ZjE1
NmM5YjUzNDkxMTY0MDQ2NWNjMjhlNjNkNzA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtNzYyLDcgKzc2Miw2IEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6c2Vzc2lvblN0b3JhZ2Uo
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRV
c2VET01TdG9yYWdlKHBhZ2UsIHN0b3JhZ2VBcmVhLmdldCgpLCBmYWxzZSwgbV9mcmFtZSk7CiAK
ICAgICBtX3Nlc3Npb25TdG9yYWdlID0gU3RvcmFnZTo6Y3JlYXRlKG1fZnJhbWUsIHN0b3JhZ2VB
cmVhLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG1fc2Vzc2lvblN0b3JhZ2UuZ2V0KCk7CkBAIC04
MDIsNyArODAxLDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9u
Q29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVc2VET01TdG9y
YWdlKHBhZ2UsIHN0b3JhZ2VBcmVhLmdldCgpLCB0cnVlLCBtX2ZyYW1lKTsKIAogICAgIG1fbG9j
YWxTdG9yYWdlID0gU3RvcmFnZTo6Y3JlYXRlKG1fZnJhbWUsIHN0b3JhZ2VBcmVhLnJlbGVhc2Uo
KSk7CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189330</attachid>
            <date>2013-02-20 08:51:56 -0800</date>
            <delta_ts>2013-02-20 23:52:51 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-109572-20130220204817.patch</filename>
            <type>text/plain</type>
            <size>75666</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdlMjc1OGNhYjJlNTM2
NzVlZTFhZDYyZWE0NGVkYThhMDcyZjI5Ni4uYTc4ZTdjZGRhN2FmMTk5NGM5MjNiMzU3ZDU3MWYy
ZmE2MWUyOTQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk5IEBACiAyMDEzLTAyLTIwICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUgaXRlbXMgaW4gdGhlIFJlc291cmNlcyBw
YW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBzaG93bgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVzdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6aXNFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6OmdldERPTVN0b3JhZ2VJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OnNldERPTVN0b3JhZ2VJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFnZUl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzdG9yYWdlSWQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRT
dG9yYWdlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjpmaW5kRnJhbWVXaXRoU2Vj
dXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclBhZ2VBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yUGFnZUFnZW50KToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5zdG9y
YWdlSWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlLmdldCBp
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUuZ2V0IHNlY3Vy
aXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5n
ZXRJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUuc2V0
SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUucmVtb3Zl
SXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9zZWN1cml0eU9yaWdpbkFk
ZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9z
ZWN1cml0eU9yaWdpblJlbW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUuX3N0b3JhZ2VLZXkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VNb2RlbC5wcm90b3R5cGUuX2RvbVN0b3JhZ2VJdGVtc0NsZWFyZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUuX2RvbVN0b3JhZ2VJdGVtUmVt
b3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5f
ZG9tU3RvcmFnZUl0ZW1BZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1v
ZGVsLnByb3RvdHlwZS5zdG9yYWdlRm9ySWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VNb2RlbC5wcm90b3R5cGUuc3RvcmFnZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS53YXNTaG93bik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS5fc2hvd0RPTVN0b3JhZ2VJdGVt
cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUu
X2RhdGFHcmlkRm9yRE9NU3RvcmFnZUl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS5fcmVmcmVzaEJ1dHRvbkNsaWNrZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkVtcHR5Vmlldy5wcm90b3R5cGUuX3Byb2Nlc3NXaWxsSGlkZSk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlLl9pbml0aWFsaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQ
YW5lbC5wcm90b3R5cGUuX2ZyYW1lTmF2aWdhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2RvbVN0b3JhZ2VSZW1vdmVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX3BvcHVsYXRlRE9NU3RvcmFnZVRy
ZWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgaXRl
bVVSTCk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpzZXNzaW9uU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6
OmxvY2FsU3RvcmFnZSk6CisKKzIwMTMtMDItMjAgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92
QGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnRyb2R1Y2UgU2VjdXJp
dHlPcmlnaW5BZGRlZCBhbmQgU2VjdXJpdHlPcmlnaW5SZW1vdmVkIGV2ZW50cyBpbnRvIFJlc291
cmNlVHJlZU1vZGVsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTAyMzIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2YmMwYmUyZGVkNmNiNmIyYmUx
NWRmMjZmNTczNzUzZDVmODk1MWIzLi42NzlmZTc5NTk4ZTdlMjY3ODNmMjRlMDhjNzg0NTIwZmVk
NzQwMjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMyw3ICsxNjIzLDYgQEAgc2V0KFdl
YkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3Bw
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCA1YTA4OGM5OWY3YTllNDc0MTg5N2MyM2U4ZDAzODAxZWNmYTU4YjljLi42ODk4NTFl
OTFmNDdlOWUxNjU3YTViZWYwZmNjN2VkYzhmYmVjM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTM4MzgsOCArMzgzOCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBcCi0JU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgXAot
CVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IGU0MjU2Y2NkZTgxZjcxOTk2NzMyZmZhMThjNjZlYzcwOTAxYjQxMjku
LjI0M2FjZGZjOTRkNDU4YzVkYjFiZjQ2N2YxMjA3NzhhOTc4NzIxMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtNzk4LDcgKzc5OCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01BZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNw
cCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgXAotICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9ySGVhcFByb2ZpbGVy
QWdlbnQuY3BwIFwKQEAgLTE5OTksNyArMTk5OCw2IEBAIEhFQURFUlMgKz0gXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaCBcCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBiYTVlMzU0MDFiZDNkN2NlNzc4
MDczZDE1ZDlhNzE4YWViN2JmOWYxLi41ZWJiNWRlZWJlOTE4NDNlMWQ4MmRiODE3YjlkODE3MjA0
NjZiOTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODU5LDggKzE4NTksNiBAQAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmgnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdp
bnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgnLAotICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwJywKLSAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgnLAogICAgICAgICAgICAgJ2luc3Bl
Y3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3Bl
Y3RvckRhdGFiYXNlSW5zdHJ1bWVudGF0aW9uLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggOTU1
OGFiYmEwNjcwMDEzMDY4NDg3MDYyNDQ5NGRiNDZjZWQ2Yzk2NC4uNWY5ODAwNjA2ZmFjZDA5Y2M5
ZWYzY2I3MThlYzNkZTYyMDI3OWNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xOTE4NCw3ICsx
OTE4NCw2IEBAIF9fWk4zV1RGMTdIYXNoTWFwVHJhbnNsYXRvcklTdDRwYWlySU5TXzZSZWZQdHJJ
TjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbkVFRU5TMl9JCiBfX1pON1dlYkNvcmUyNEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjIwZGlkVXNlRE9NU3RvcmFnZUltcGxFUE5TXzE5SW5zdHJ1bWVudGlu
Z0FnZW50c0VQTlNfMTFTdG9yYWdlQXJlYUViUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTI0SW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50MTZkaWRVc2VET01TdG9yYWdlRVBOU18xMVN0b3JhZ2VBcmVh
RWJQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlN1N0b3JhZ2U2Y3JlYXRlRVBOU181RnJhbWVFTjNX
VEYxMFBhc3NSZWZQdHJJTlNfMTFTdG9yYWdlQXJlYUVFRQotX19aTjdXZWJDb3JlMjdJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2VDMUVQTlNfN1N0b3JhZ2VFYlBOU181RnJhbWVFCiBfX1pON1dl
YkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBOU183
U3RvcmFnZUUKIF9fWk43V2ViQ29yZTR3cmFwSU5TXzlKU1N0b3JhZ2VFTlNfN1N0b3JhZ2VFRUVO
M0pTQzdKU1ZhbHVlRVBOUzNfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQVDBf
CiBfX1pON1dlYkNvcmUxNWdldERPTVN0cnVjdHVyZUlOU185SlNTdG9yYWdlRUVFUE4zSlNDOVN0
cnVjdHVyZUVQTlMyXzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFCkBAIC0xOTIw
Nyw3ICsxOTIwNiw2IEBAIF9fWk43V2ViQ29yZTE0SlNTdG9yYWdlT3duZXIyNmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzRU4zSlNDNkhhbmRsZUlOUzFfN1Vua25vCiBfX1pON1dlYkNvcmUxNEpT
U3RvcmFnZU93bmVyOGZpbmFsaXplRU4zSlNDNkhhbmRsZUlOUzFfN1Vua25vd25FRUVQdgogX19a
TjdXZWJDb3JlOUpTU3RvcmFnZUQxRXYKIF9fWk43V2ViQ29yZTdTdG9yYWdlRDFFdgotX19aTjdX
ZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VEMEV2CiBfX1pOSzdXZWJDb3JlMTRT
ZWN1cml0eU9yaWdpbjVlcXVhbEVQS1MwXwogX19aTjdXZWJDb3JlOUpTU3RvcmFnZTEwbmFtZUdl
dHRlckVQTjNKU0M5RXhlY1N0YXRlRU5TMV83SlNWYWx1ZUVSS05TMV8xMElkZW50aWZpZXJFCiBf
X1pOSzdXZWJDb3JlN1N0b3JhZ2U3Z2V0SXRlbUVSS04zV1RGNlN0cmluZ0UKQEAgLTIwMzc2LDcg
KzIwMzc0LDYgQEAgX19aTjdXZWJDb3JlMTdnZXRET01Db25zdHJ1Y3RvcklOU18yNUpTQ1NTVmFs
dWVMaXN0Q29uc3RydWN0b3JFRUVQTjNKU0M4SlNPYmplY3QKIF9fWk43V2ViQ29yZTMwanNET01X
aW5kb3dGaWxlTGlzdENvbnN0cnVjdG9yRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJL
TlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTEwSlNGaWxlTGlzdDE0Z2V0Q29uc3RydWN0
b3JFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pON1dlYkNvcmUx
N2dldERPTUNvbnN0cnVjdG9ySU5TXzIxSlNGaWxlTGlzdENvbnN0cnVjdG9yRUVFUE4zSlNDOEpT
T2JqZWN0RVBOUzJfOUV4ZWNTdGF0ZUVQS05TXzE3SlNET01HbG9iYWxPYmplY3RFCi1fX1pOSzdX
ZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UxN2lzU2FtZUhvc3RBbmRUeXBlRVBO
U181RnJhbWVFYgogX19aTjdXZWJDb3JlNTNqc0RPTVdpbmRvd1NWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWNTbW9vdGhSZWxDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1ZUVSS05T
MF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzM0pTU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aFJlbDE0Z2V0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0SlNHbG9iYWxP
YmplY3RFCiBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5TXzQ0SlNTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoUmVsQ29uc3RydWN0b3JFRUVQTjNKU0M4SlNPYmplY3RFUE5TMl85
RXhlY1N0YXRlRVBLTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTI3NDAzLDIzICsyNzQwMCwx
NCBAQCBfX1pON1dlYkNvcmUxOEluc3BlY3RvclBhZ2VBZ2VudDEwZnJhbWVGb3JJZEVSS04zV1RG
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4SW5zcGVjdG9yUGFnZUFnZW50MTVyZXNvdXJjZUNvbnRl
bnRFUE4zV1RGNlN0cmluZ0VQTlNfNUZyYW1lRVJLTlNfNEtVUkxFUzNfCiBfX1pON1dlYkNvcmVM
MThkZWNvZGVNYWluUmVzb3VyY2VFUE5TXzVGcmFtZUVQTjNXVEY2U3RyaW5nRQogX19aTjdXZWJD
b3JlTDE4ZGVjb2RlU2hhcmVkQnVmZmVyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEyU2hhcmVkQnVm
ZmVyRUVFUktOUzBfNlN0cmluZ0VQUzRfCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZTRiaW5kRVBOU18xN0luc3BlY3RvckZyb250ZW5kRQogX19aTjdXZWJDb3JlMTdJ
bnNwZWN0b3JGcm9udGVuZDEwRE9NU3RvcmFnZTEzYWRkRE9NU3RvcmFnZUVOM1dURjEwUGFzc1Jl
ZlB0cklOU18xNUluc3BlY3Rvck9iamVjdEVFRQogX19aTjdXZWJDb3JlMTVTdG9yYWdlQXJlYVN5
bmMxM3NjaGVkdWxlQ2xlYXJFdgogX19aTjdXZWJDb3JlMjZJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjMxRE9NU3RvcmFnZV9nZXRET01TdG9yYWdlRW50cmllc0VsUE5TXzE1SW5zcGVjdG9yT2Jq
ZWN0RQogX19aTjdXZWJDb3JlMjRJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQyMGdldERPTVN0b3Jh
Z2VFbnRyaWVzRVBOM1dURjZTdHJpbmdFaVBOUzFfNlJlZlB0cklOU18xNEluc3BlY3RvckFycmF5
RUVFCi1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZf
RUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVO
U0NfSVM1X0VFRUVTRF9FMTZsb29rdXBGb3JXcml0aW5nRVJLaQotX19aTjNXVEY5SGFzaFRhYmxl
SWlTdDRwYWlySWlOU182UmVmUHRySU43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlRUVFRU5TXzE4UGFpckZpcnN0RXh0cmFjdG9ySVM2X0VFTlNfN0ludEhhc2hJakVFTlNfMTRQ
YWlySGFzaFRyYWl0c0lOU18xMEhhc2hUcmFpdHNJaUVFTlNDX0lTNV9FRUVFU0RfRTNhZGRJaVM1
X05TXzE3SGFzaE1hcFRyYW5zbGF0b3JJUzZfU0ZfU0FfRUVFRVMxX0lOU18xN0hhc2hUYWJsZUl0
ZXJhdG9ySWlTNl9TOF9TQV9TRl9TRF9FRWJFUktUX1JLVDBfCi1fX1pOM1dURjlIYXNoVGFibGVJ
aVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FNGZpbmRJaU5T
XzIySWRlbnRpdHlIYXNoVHJhbnNsYXRvcklpUzZfU0FfRUVFRU5TXzE3SGFzaFRhYmxlSXRlcmF0
b3JJaVM2X1M4X1NBX1NGX1NEX0VFUktUXwotX19aTjNXVEY5SGFzaFRhYmxlSWlTdDRwYWlySWlO
U182UmVmUHRySU43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlRUVFRU5TXzE4
UGFpckZpcnN0RXh0cmFjdG9ySVM2X0VFTlNfN0ludEhhc2hJakVFTlNfMTRQYWlySGFzaFRyYWl0
c0lOU18xMEhhc2hUcmFpdHNJaUVFTlNDX0lTNV9FRUVFU0RfRTVjbGVhckV2Ci1fX1pOM1dURjlI
YXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElq
RUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9F
NnJlaGFzaEVpCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTMxc3Rh
cnRSZXBvcnRpbmdDaGFuZ2VzVG9Gcm9udGVuZEV2CiBfX1pOSzdXZWJDb3JlN1N0b3JhZ2Uza2V5
RWoKIF9fWk5LN1dlYkNvcmUxNVN0b3JhZ2VBcmVhSW1wbDNrZXlFagogX19aTjdXZWJDb3JlMTBT
dG9yYWdlTWFwM2tleUVqCiBfX1pON1dlYkNvcmUxMFN0b3JhZ2VNYXAxOHNldEl0ZXJhdG9yVG9J
bmRleEVqCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZWVxRVJLTlNf
MTNFdmVudExpc3RlbmVyRQotX19aTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2U2dW5iaW5kRXYKIF9fWk43V2ViQ29yZTE0Q29uc29sZU1lc3NhZ2UxM2FkZFRvRnJvbnRlbmRF
UE5TXzE3SW5zcGVjdG9yRnJvbnRlbmQ3Q29uc29sZUVQTlNfMjFJbmplY3RlZFNjcmlwdE1hbmFn
ZXJFCiBfX1pON1dlYkNvcmUxN0luc3BlY3RvckZyb250ZW5kN0NvbnNvbGUxMm1lc3NhZ2VBZGRl
ZEVOM1dURjEwUGFzc1JlZlB0cklOU18xNUluc3BlY3Rvck9iamVjdEVFRQogX19aTjdXZWJDb3Jl
MjZJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjExUGFnZV9yZWxvYWRFbFBOU18xNUluc3BlY3Rv
ck9iamVjdEUKQEAgLTM2NDA3LDEwICszNjM5NSw4IEBAIF9fWlRWTjdXZWJDb3JlMTFUeXBlQnVp
bGRlcjVBcnJheUlOUzBfM0RPTTROb2RlRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVjdG9yQmFz
ZUFnZW50SU5TXzE3SW5zcGVjdG9yRE9NQWdlbnRFRUUKIF9fWlRWTjdXZWJDb3JlNVRpbWVySU5T
XzI4UmV2YWxpZGF0ZVN0eWxlQXR0cmlidXRlVGFza0VFRQogX19aVFZON1dlYkNvcmUxOEluc3Bl
Y3RvckJhc2VBZ2VudElOU18yNUluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnRFRUUKLV9fWlRWTjNX
VEYyMU1lbW9yeUluc3RydW1lbnRhdGlvbjdXcmFwcGVySU43V2ViQ29yZTI3SW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlRUVFCiBfX1pUVk43V2ViQ29yZTExVHlwZUJ1aWxkZXI1QXJyYXlJTlMx
X0lOM1dURjZTdHJpbmdFRUVFRQogX19aVFZON1dlYkNvcmUxOEluc3BlY3RvckJhc2VBZ2VudElO
U18yNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudEVFRQotX19aTjdXZWJDb3JlMjdJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UxNHNfbmV4dFVudXNlZElkRQogX19aVFZOM1dURjIxTWVtb3J5SW5z
dHJ1bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMTFTdG9yYWdlQXJlYUVFRQogX19aVFZON1dl
YkNvcmU1VGltZXJJTlNfMjhJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrRUVFCiBfX1pUVk43
V2ViQ29yZTIwRnJvbnRlbmRNZW51UHJvdmlkZXJFCkBAIC0zODQ1Niw3ICszODQ0Miw2IEBAIF9f
Wk43V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzOUluc3BlY3RvckUKIF9fWk43V2ViQ29yZTE4
V2ViQ29yZU1lbW9yeVR5cGVzMTlJbnNwZWN0b3JDb250cm9sbGVyRQogX19aTjdXZWJDb3JlMThX
ZWJDb3JlTWVtb3J5VHlwZXMyMEluc3BlY3Rvck1lbW9yeUFnZW50RQogX19aTjdXZWJDb3JlMThX
ZWJDb3JlTWVtb3J5VHlwZXMyNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudEUKLV9fWk43V2ViQ29y
ZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjhJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VzRQogX19a
TjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMxNkluc3BlY3Rvck92ZXJsYXlFCiBfX1pON1dl
YkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczIySW5zcGVjdG9yUHJvZmlsZXJBZ2VudEUKIF9fWk43
V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50RQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzNjMyNGJj
YTlhOGI4YjQ0OGZjNjBhZjYzOGUxMzI0MTMwYzgwYjk4Li44N2JlYmIwMzI3N2U1YjMyMmUzOWM1
MmNlN2UxMzdkMWQ0MTViZjcxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagpAQCAtNzYxMDMsMzAgKzc2MTAzLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZS5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCIKLQkJCQk+
Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggYWM0YzAzZmNjMzMxY2IzZTYzZjc0NTQ0YzA3ZDlkOTcyYjcxYWM1Zi4uZjk2YTBhY2UxNzkx
NDkzMGExOTM3NDMwYTI1OWZjN2JkODMxY2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC01Njg0LDkgKzU2ODQsNiBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5j
cHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1
aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxX
aW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5j
cHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgpAQCAtODM3Nyw3ICs4Mzc0LDYgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01BZ2VudC5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVu
dC5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDc3Mjc2NjI3NmI3MmIwYjhkNTM5NjQxZWI5MDY1ZmY5
ZWZmZDE1MWUuLjViOTZmM2EyYWVjMjFiODlhZDkwY2U3MGY3ZWQwNzgzZTNjN2UwZGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmls
dGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKQEAgLTY0ODMsOSArNjQ4Myw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCI+CiAgICAgICA8RmlsdGVy
Pmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiPgotICAg
ICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBA
IC0xMzc5MSw5ICsxMzc4OCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGlu
c3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCI+Ci0gICAgICA8RmlsdGVyPmlu
c3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIj4KICAgICAgIDxGaWx0
ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTZjZWM0MDFmYzZj
MTRjODZjODQwM2UwOTZiZWQxMGM3MTkzODE4Yi4uMjJlY2Y1ZWVkNDljMzg1NjBlZjYzNGRjNTA2
MDRmODI2ZGUyZWJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTExOSw4ICsxMTE5LDYgQEAKIAkJNDFFMUIxRDEwRkY1OTg2
OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RX
b3JrZXIuaCAqLzsgfTsKIAkJNDFFMUIxRDMwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUx
QjFDRDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmNwcCAqLzsgfTsKIAkJNDFFMUIx
RDQwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMUIxQ0UwRkY1OTg2OTAwNTc2QjNCIC8qIFNo
YXJlZFdvcmtlci5oICovOyB9OwotCQk0MUYwNjE3NDBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUYwNjE3MjBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmggKi87IH07Ci0JCTQxRjA2MTc1MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFGMDYxNzMwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZS5jcHAgKi87IH07CiAJCTQxRjA2MThFMEY1RjA2OTgwMEEwN0VBQyAv
KiBDb25zb2xlTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDFGMDYxOEMwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggKi87
IH07CiAJCTQxRjA2MThGMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE4RDBGNUYw
Njk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuY3BwICovOyB9OwogCQk0MUYwNjIxNDBGNUYx
OTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFD
IC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLzsgfTsKQEAgLTg1MDIsOCArODUwMCw2
IEBACiAJCTQxRTFCMUNEMEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU2hhcmVkV29ya2VyLmNwcDsgcGF0aCA9
IHdvcmtlcnMvU2hhcmVkV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFFMUIxQ0UwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBTaGFyZWRXb3JrZXIuaDsgcGF0aCA9IHdvcmtlcnMvU2hhcmVk
V29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFCMUNGMEZGNTk4Njkw
MDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNoYXJl
ZFdvcmtlci5pZGw7IHBhdGggPSB3b3JrZXJzL1NoYXJlZFdvcmtlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTQxRjA2MTczMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYxOEMw
RjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbnNvbGVNZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRjA2MThEMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25zb2xlTWVzc2FnZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjA2MjEyMEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNw
ZWN0b3JEYXRhYmFzZVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE1MjYzLDggKzE1MjU5LDYgQEAKIAkJCQlGM0Q0QzQ3NzEyRTA3NjYzMDAzREExNTAgLyog
SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oICovLAogCQkJCTdBNzRFQ0I4MTAxODM5QTUwMEJG
OTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwICovLAogCQkJCTdBNzRFQ0I5MTAx
ODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCAqLywKLQkJCQk0MUYw
NjE3MzBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCAq
LywKLQkJCQk0MUYwNjE3MjBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlLmggKi8sCiAJCQkJMTVEMTdEMUUxNDcyMzFFQjAwNUVCQ0E2IC8qIEluc3BlY3RvckZp
bGVTeXN0ZW1BZ2VudC5jcHAgKi8sCiAJCQkJMTVEMTdEMUYxNDcyMzFFQjAwNUVCQ0E2IC8qIElu
c3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oICovLAogCQkJCTIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1
NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCAqLywKQEAgLTI0NzYwLDcgKzI0NzU0LDYg
QEAKIAkJCQk3QTI0NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVjdG9yRE9NQWdlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUYzRDRDNDc5MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTc0RUNCQjEwMTgzOUE2MDBC
RjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MUYwNjE3NDBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxNUQxN0QyMjE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzhEQTIwRTE1MjBFQjhDMDA2
MTQxQzEgLyogSW5zcGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIyNzc3NzYw
MTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjgwNTQsNyArMjgwNDcsNiBAQAogCQkJCTdBMjQ1ODdCMTAyMUVBRjQwMDBBMDBB
QSAvKiBJbnNwZWN0b3JET01BZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGM0Q0QzQ3ODEy
RTA3NjYzMDAzREExNTAgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQxRjA2MTc1MEY1RjAwQUMwMEEwN0VBQyAv
KiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTVE
MTdEMjExNDcyMzFFQjAwNUVCQ0E2IC8qIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogSW5zcGVjdG9yRnJv
bnRlbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjM0NEM3NTgxMTI5NEZGNjAwRjI2RUVFIC8q
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5k
ZXggNDE1OTNlYTg2OTE4ZDU5MDc5OGY0MTE2ZTA4ZTgwMTZiY2Q3Y2FiMi4uMmQ4NTFhMmY1NWEw
OWRlMzVhNjNlZjNiMzM2NDhlMzM0MmY3MGE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjAsNyArNjAsNiBAQCBN
ZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yID0gIldlYkluc3Bl
Y3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yQ29u
dHJvbGxlciA9ICJXZWJJbnNwZWN0b3IiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5
VHlwZXM6Okluc3BlY3Rvck1lbW9yeUFnZW50ID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmpl
Y3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50ID0gIldl
Ykluc3BlY3RvciI7Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlcyA9ICJXZWJJbnNwZWN0b3IiOwogTWVtb3J5T2JqZWN0VHlw
ZSBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3Rvck92ZXJsYXkgPSAiV2ViSW5zcGVjdG9yIjsK
IE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JQcm9maWxlckFn
ZW50ID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBl
czo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudCA9ICJXZWJJbnNwZWN0b3IiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggYWJjZjE3
NjE2MWRmZjU5NjA5YTkwOGVjYjYxNjE3MjRiNGIxOWFlZS4uMTM2NDE5ZmQyNzBmNzE5NmIwODVm
OGUxMGZlZDU2NmY2ZmM2ZmEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbnNwZWN0b3JDb250cm9sbGVyOwogICAgIHN0YXRpYyBN
ZW1vcnlPYmplY3RUeXBlIEluc3BlY3Rvck1lbW9yeUFnZW50OwogICAgIHN0YXRpYyBNZW1vcnlP
YmplY3RUeXBlIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDsKLSAgICBzdGF0aWMgTWVtb3J5T2Jq
ZWN0VHlwZSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VzOwogICAgIHN0YXRpYyBNZW1vcnlP
YmplY3RUeXBlIEluc3BlY3Rvck92ZXJsYXk7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUg
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzCmluZGV4IGM5ZTYzZWY0OTg3NjVlMmU3ZDgxZmQ2MDAwODgxYTEy
Y2Q1NzI2ZjQuLjU2YWRjNDBiZmY5MzhmZWFkNzM5Y2NlMTIxNDJiNzg0MjQzZWEwYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAg
LTE4NSw3ICsxODUsNyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICBjYXNlICJTdG9yYWdlIjoKICAgICAgICAgICAgICAgICB2YXIgc3RvcmFnZUlkID0gSW5qZWN0
ZWRTY3JpcHRIb3N0LnN0b3JhZ2VJZChvYmplY3QpCiAgICAgICAgICAgICAgICAgaWYgKHN0b3Jh
Z2VJZCkKLSAgICAgICAgICAgICAgICAgICAgaGludHMuZG9tU3RvcmFnZUlkID0gc3RvcmFnZUlk
OworICAgICAgICAgICAgICAgICAgICBoaW50cy5kb21TdG9yYWdlSWQgPSBKU09OLnBhcnNlKHN0
b3JhZ2VJZCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgSW5q
ZWN0ZWRTY3JpcHRIb3N0Lmluc3BlY3Qob2JqZWN0SWQsIGhpbnRzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCBjYmExZWRlYmRiZTgxYmZlMTVkYzczYTkzOGIw
ODdlYzc2MDM4YmIwLi40NmNkOTYxNTJmYjBkODc4NzNjMjFhY2E2Njg5MjQzZDk3NzQ1NjE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNDIzLDIyICsxNDIz
LDE2IEBACiAgICAgewogICAgICAgICAiZG9tYWluIjogIkRPTVN0b3JhZ2UiLAogICAgICAgICAi
aGlkZGVuIjogdHJ1ZSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIlF1ZXJ5IGFuZCBtb2RpZnkg
RE9NIHN0b3JhZ2UuIFNlc3Npb24vbG9jYWwgc3RvcmFnZXMgYXJlIG1hdGVyaWFsaXplZCB1cG9u
IHRoZSBmaXJzdCBhY2Nlc3MgaW5zaWRlIGEgZnJhbWUgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBz
ZWN1cml0eSBvcmlnaW4uIiwKICAgICAgICAgInR5cGVzIjogWwogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJpZCI6ICJTdG9yYWdlSWQiLAotICAgICAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBpZGVudGlm
aWVyIG9mIERPTSBzdG9yYWdlIGVudHJ5LiIsCi0gICAgICAgICAgICAgICAgImhpZGRlbiI6IHRy
dWUKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgImlkIjog
IkVudHJ5IiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJET00gU3RvcmFnZSBlbnRyeS4iLAorICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJET00gU3RvcmFnZSBpZGVudGlmaWVyLiIsCiAgICAgICAgICAgICAg
ICAgImhpZGRlbiI6IHRydWUsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3JpZ2luIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIkRvY3VtZW50IG9yaWdpbi4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaXNMb2NhbFN0b3JhZ2UiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9u
IjogIlRydWUgZm9yIGxvY2FsIHN0b3JhZ2UuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImlkIiwgIiRyZWYiOiAiU3RvcmFnZUlkIiwgImRlc2NyaXB0aW9uIjogIkVudHJ5IGlk
IGZvciBmdXJ0aGVyIHJlZmVyZW5jZS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzZWN1cml0eU9yaWdpbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJTZWN1
cml0eSBvcmlnaW4gZm9yIHRoZSBzdG9yYWdlLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc0xvY2FsU3RvcmFnZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24i
OiAiV2hldGhlciB0aGUgc3RvcmFnZSBpcyBsb2NhbCBzdG9yYWdlIChub3Qgc2Vzc2lvbiBzdG9y
YWdlKS4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
ewpAQCAtMTQ1OSw3ICsxNDUzLDcgQEAKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RGlzYWJsZXMgc3RvcmFnZSB0cmFja2luZywgcHJldmVudHMgc3RvcmFnZSBldmVudHMgZnJvbSBi
ZWluZyBzZW50IHRvIHRoZSBjbGllbnQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRET01TdG9yYWdlRW50cmllcyIsCisgICAgICAg
ICAgICAgICAgIm5hbWUiOiAiZ2V0RE9NU3RvcmFnZUl0ZW1zIiwKICAgICAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdG9yYWdlSWQi
LCAiJHJlZiI6ICJTdG9yYWdlSWQiIH0KICAgICAgICAgICAgICAgICBdLApAQCAtMTQ5MSwxMiAr
MTQ4NSw2IEBACiAgICAgICAgIF0sCiAgICAgICAgICJldmVudHMiOiBbCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiYWRkRE9NU3RvcmFnZSIsCi0gICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RvcmFn
ZSIsICIkcmVmIjogIkVudHJ5IiB9Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgfSwK
LSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkb21TdG9yYWdlSXRlbXND
bGVhcmVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzdG9yYWdlSWQiLCAgIiRyZWYiOiAiU3RvcmFnZUlkIiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcAppbmRleCA2N2Nl
YTQ2MGUyMGUxOWYyZGFmY2ZjOTVjZGQzYTY3NmI4MjA5OTM5Li4xZWI4ZTIxNWM1ZTY0MjhlNzhj
YWFlZjdhZDBhYjk5MjZlZDc3ODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBbGxJbk9uZS5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0
b3JET01BZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCIKLSNpbmNsdWRlICJJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvckRhdGFiYXNl
QWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuY3BwIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDg1NDgzNjIzMTAxZWQ3YTU4
ZjhjMmI0OTUwZTU1MWMyODMxMDMwZGMuLmZkYzQ0Y2Y4YzczN2FlZjhlZDA3NGI2NGEwNmZkYWVl
YjUxZDc5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNw
ZWN0b3JDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwog
I2lmIEVOQUJMRShGSUxFX1NZU1RFTSkKICAgICBtX2FnZW50cy5hcHBlbmQoSW5zcGVjdG9yRmls
ZVN5c3RlbUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlQWdl
bnQsIG1fc3RhdGUuZ2V0KCkpKTsKICNlbmRpZgotICAgIE93blB0cjxJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNy
ZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCkpKTsKKyAgICBP
d25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBkb21TdG9yYWdlQWdlbnRQdHIoSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBt
X3BhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dCogZG9tU3RvcmFnZUFnZW50ID0gZG9tU3RvcmFnZUFnZW50UHRyLmdldCgpOwogICAgIG1fYWdl
bnRzLmFwcGVuZChkb21TdG9yYWdlQWdlbnRQdHIucmVsZWFzZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAppbmRl
eCAwNmM0MjcwZTcyMmE5MjY1NjRlN2JiYmY3YjFjZjhiZTc2ZjcxZjNhLi5mOWI4NjFlOWIzMDg1
NjVhMTQzNWRhM2Y0NzE2OTM4NWFhYzNmZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcApAQCAtMzgsMTMgKzM4LDE3
IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgorI2luY2x1ZGUgIkluc3BlY3RvclBh
Z2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgogI2luY2x1ZGUgIlN0b3JhZ2UuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgorI2lu
Y2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNp
bmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKQEAgLTcxLDEwICs3NSwx
MCBAQCBzdGF0aWMgYm9vbCBoYWRFeGNlcHRpb24oRXhjZXB0aW9uQ29kZSBlYywgRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nKQogICAgIH0KIH0KIAotSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKICAgICA6IEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ+KCJET01TdG9yYWdlIiwgaW5zdHJ1bWVudGluZ0FnZW50cywg
c3RhdGUpCisgICAgLCBtX3BhZ2VBZ2VudChwYWdlQWdlbnQpCiAgICAgLCBtX2Zyb250ZW5kKDAp
Ci0gICAgLCBtX2VuYWJsZWQoZmFsc2UpCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5z
ZXRJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQodGhpcyk7CiB9CkBAIC05Miw1NSArOTYsNDMgQEAg
dm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250
ZW5kKiBmcm9udGVuZCkKIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNsZWFyRnJv
bnRlbmQoKQogewotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0b3Jh
Z2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZG9tU3RvcmFnZUVu
ZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT51bmJpbmQoKTsKICAgICBtX2Zyb250ZW5kID0g
MDsKICAgICBkaXNhYmxlKDApOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
cmVzdG9yZSgpCiB7Ci0gICAgbV9lbmFibGVkID0gIG1fc3RhdGUtPmdldEJvb2xlYW4oRE9NU3Rv
cmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQpOworfQorCitib29sIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6aXNFbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
dGF0ZS0+Z2V0Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5h
YmxlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjplbmFibGUoRXJyb3JT
dHJpbmcqKQogewotICAgIGlmIChtX2VuYWJsZWQpCisgICAgaWYgKGlzRW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47Ci0gICAgbV9lbmFibGVkID0gdHJ1ZTsKLSAgICBtX3N0YXRlLT5zZXRCb29s
ZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkLCBtX2VuYWJs
ZWQpOwogCi0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgcmVzb3VyY2VzRW5k
ID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjpp
dGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IHJlc291cmNlc0VuZDsgKytp
dCkKLSAgICAgICAgaXQtPnZhbHVlLT5iaW5kKG1fZnJvbnRlbmQpOworICAgIG1fc3RhdGUtPnNl
dEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIHRy
dWUpOworICAgIHJlc3RvcmUoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6
OmRpc2FibGUoRXJyb3JTdHJpbmcqKQogewotICAgIGlmICghbV9lbmFibGVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihE
T01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCwgbV9lbmFibGVkKTsK
KyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdl
QWdlbnRFbmFibGVkLCBmYWxzZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpnZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpB
cnJheTxTdHJpbmc+ID4gPiYgZW50cmllcykKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpnZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5
PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgaXRlbXMpCiB7Ci0gICAgSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlKiBzdG9yYWdlUmVzb3VyY2UgPSBnZXRET01TdG9yYWdlUmVzb3Vy
Y2VGb3JJZChzdG9yYWdlSWQpOwotICAgIGlmICghc3RvcmFnZVJlc291cmNlKSB7Ci0gICAgICAg
ICplcnJvclN0cmluZyA9ICJTdG9yYWdlIHJlc291cmNlIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVu
IHN0b3JhZ2UgaWRlbnRpZmllciI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgRnJhbWUq
IGZyYW1lID0gc3RvcmFnZVJlc291cmNlLT5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpIHsKLSAg
ICAgICAgKmVycm9yU3RyaW5nID0gIkZyYW1lIG5vdCBmb3VuZCI7CisgICAgRnJhbWUqIGZyYW1l
OworICAgIFJlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEgPSBmaW5kU3RvcmFnZUFyZWEo
ZXJyb3JTdHJpbmcsIHN0b3JhZ2VJZCwgZnJhbWUpOworICAgIGlmICghc3RvcmFnZUFyZWEpCiAg
ICAgICAgIHJldHVybjsKLSAgICB9CiAKLSAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5
cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiBzdG9yYWdlRW50cmllcyA9IFR5cGVCdWlsZGVy
OjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+OjpjcmVhdGUoKTsKKyAgICBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiBzdG9y
YWdlSXRlbXMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4g
Pjo6Y3JlYXRlKCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBTdG9yYWdlQXJl
YSogc3RvcmFnZUFyZWEgPSBzdG9yYWdlUmVzb3VyY2UtPnN0b3JhZ2VBcmVhKCk7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0b3JhZ2VBcmVhLT5sZW5ndGgoZWMsIGZyYW1lKTsgKytp
KSB7CiAgICAgICAgIFN0cmluZyBuYW1lKHN0b3JhZ2VBcmVhLT5rZXkoaSwgZWMsIGZyYW1lKSk7
CiAgICAgICAgIGlmIChoYWRFeGNlcHRpb24oZWMsIGVycm9yU3RyaW5nKSkKQEAgLTE1MSw4NyAr
MTQzLDY0IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpnZXRET01TdG9yYWdlRW50
cmllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvCiAgICAgICAgIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8U3RyaW5nPiA+IGVudHJ5ID0gVHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz46
OmNyZWF0ZSgpOwogICAgICAgICBlbnRyeS0+YWRkSXRlbShuYW1lKTsKICAgICAgICAgZW50cnkt
PmFkZEl0ZW0odmFsdWUpOwotICAgICAgICBzdG9yYWdlRW50cmllcy0+YWRkSXRlbShlbnRyeSk7
CisgICAgICAgIHN0b3JhZ2VJdGVtcy0+YWRkSXRlbShlbnRyeSk7CiAgICAgfQotICAgIGVudHJp
ZXMgPSBzdG9yYWdlRW50cmllcy5yZWxlYXNlKCk7CisgICAgaXRlbXMgPSBzdG9yYWdlSXRlbXMu
cmVsZWFzZSgpOwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3Rv
cmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wqIHN1Y2Nlc3MpCit2b2lkIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25z
dCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2VzcykKIHsKLSAgICBJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2UqIHN0b3JhZ2VSZXNvdXJjZSA9IGdldERPTVN0b3JhZ2VSZXNvdXJjZUZv
cklkKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKHN0b3JhZ2VSZXNvdXJjZSkgewotICAgICAgICBFeGNl
cHRpb25Db2RlIGV4Y2VwdGlvbiA9IDA7Ci0gICAgICAgIHN0b3JhZ2VSZXNvdXJjZS0+c3RvcmFn
ZUFyZWEoKS0+c2V0SXRlbShrZXksIHZhbHVlLCBleGNlcHRpb24sIHN0b3JhZ2VSZXNvdXJjZS0+
ZnJhbWUoKSk7Ci0gICAgICAgICpzdWNjZXNzID0gIWV4Y2VwdGlvbjsKLSAgICB9IGVsc2UKKyAg
ICBGcmFtZSogZnJhbWU7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSA9IGZp
bmRTdG9yYWdlQXJlYSgwLCBzdG9yYWdlSWQsIGZyYW1lKTsKKyAgICBpZiAoIXN0b3JhZ2VBcmVh
KSB7CiAgICAgICAgICpzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbiA9IDA7CisgICAgc3RvcmFnZUFyZWEtPnNldEl0
ZW0oa2V5LCB2YWx1ZSwgZXhjZXB0aW9uLCBmcmFtZSk7CisgICAgKnN1Y2Nlc3MgPSAhZXhjZXB0
aW9uOwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFn
ZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5n
JiBrZXksIGJvb2wqIHN1Y2Nlc3MpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVt
b3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgYm9vbCogc3VjY2VzcykKIHsKLSAg
ICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIHN0b3JhZ2VSZXNvdXJjZSA9IGdldERPTVN0
b3JhZ2VSZXNvdXJjZUZvcklkKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKHN0b3JhZ2VSZXNvdXJjZSkg
ewotICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbiA9IDA7Ci0gICAgICAgIHN0b3JhZ2VS
ZXNvdXJjZS0+c3RvcmFnZUFyZWEoKS0+cmVtb3ZlSXRlbShrZXksIGV4Y2VwdGlvbiwgc3RvcmFn
ZVJlc291cmNlLT5mcmFtZSgpKTsKLSAgICAgICAgKnN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwotICAg
IH0gZWxzZQorICAgIEZyYW1lKiBmcmFtZTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3Jh
Z2VBcmVhID0gZmluZFN0b3JhZ2VBcmVhKDAsIHN0b3JhZ2VJZCwgZnJhbWUpOworICAgIGlmICgh
c3RvcmFnZUFyZWEpIHsKICAgICAgICAgKnN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKKyAgICBzdG9yYWdl
QXJlYS0+cmVtb3ZlSXRlbShrZXksIGV4Y2VwdGlvbiwgZnJhbWUpOworICAgICpzdWNjZXNzID0g
IWV4Y2VwdGlvbjsKIH0KIAogU3RyaW5nIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFn
ZUlkKFN0b3JhZ2UqIHN0b3JhZ2UpCiB7CiAgICAgQVNTRVJUKHN0b3JhZ2UpOwotICAgIEZyYW1l
KiBmcmFtZSA9IHN0b3JhZ2UtPmZyYW1lKCk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgYm9vbCBpc0xvY2FsU3RvcmFnZSA9IChmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
PmxvY2FsU3RvcmFnZShlYykgPT0gc3RvcmFnZSAmJiAhZWMpOwotICAgIHJldHVybiBzdG9yYWdl
SWQoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGlzTG9jYWxTdG9yYWdlKTsK
KyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdG9yYWdlLT5mcmFtZSgpLT5kb2N1bWVudCgpOwor
ICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgRE9NV2luZG93KiB3aW5kb3cgPSBkb2N1bWVudC0+
ZG9tV2luZG93KCk7CisgICAgQVNTRVJUKHdpbmRvdyk7CisgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOworICAgIGJv
b2wgaXNMb2NhbFN0b3JhZ2UgPSB3aW5kb3ctPm9wdGlvbmFsTG9jYWxTdG9yYWdlKCkgPT0gc3Rv
cmFnZTsKKyAgICByZXR1cm4gc3RvcmFnZUlkKHNlY3VyaXR5T3JpZ2luLmdldCgpLCBpc0xvY2Fs
U3RvcmFnZSktPnRvSlNPTlN0cmluZygpOwogfQogCi1TdHJpbmcgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBib29sIGlz
TG9jYWxTdG9yYWdlKQorUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NU3RvcmFnZTo6U3RvcmFn
ZUlkPiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNMb2NhbFN0b3JhZ2UpCiB7Ci0gICAgQVNTRVJUKHNlY3Vy
aXR5T3JpZ2luKTsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkb21TdG9y
YWdlRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2Vz
TWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGRvbVN0b3JhZ2VF
bmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZS0+aXNTYW1lT3JpZ2luQW5kVHlwZShz
ZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpKQotICAgICAgICAgICAgcmV0dXJuIGl0LT5r
ZXk7Ci0gICAgfQotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotSW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmdldERPTVN0b3JhZ2VSZXNvdXJj
ZUZvcklkKGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkKQotewotICAgIERPTVN0b3JhZ2VSZXNvdXJj
ZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuZmluZChzdG9yYWdlSWQpOwotICAgIGlm
IChpdCA9PSBtX3Jlc291cmNlcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IGl0LT52YWx1ZS5nZXQoKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRp
ZFVzZURPTVN0b3JhZ2UoU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9y
YWdlLCBGcmFtZSogZnJhbWUpCi17Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0
b3IgZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoRE9NU3RvcmFn
ZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBk
b21TdG9yYWdlRW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+dmFsdWUtPmlzU2FtZU9yaWdp
bkFuZFR5cGUoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGlzTG9jYWxTdG9y
YWdlKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZWZQdHI8SW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlPiByZXNvdXJjZSA9IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZTo6Y3JlYXRlKHN0b3JhZ2VBcmVhLCBpc0xvY2FsU3RvcmFnZSwgZnJhbWUpOwotCi0gICAgbV9y
ZXNvdXJjZXMuc2V0KHJlc291cmNlLT5pZCgpLCByZXNvdXJjZSk7Ci0KLSAgICAvLyBSZXNvdXJj
ZXMgYXJlIG9ubHkgYm91bmQgd2hpbGUgdmlzaWJsZS4KLSAgICBpZiAobV9lbmFibGVkKQotICAg
ICAgICByZXNvdXJjZS0+YmluZChtX2Zyb250ZW5kKTsKKyAgICByZXR1cm4gVHlwZUJ1aWxkZXI6
OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZDo6Y3JlYXRlKCkKKyAgICAgICAgLnNldFNlY3VyaXR5T3Jp
Z2luKHNlY3VyaXR5T3JpZ2luLT50b1Jhd1N0cmluZygpKQorICAgICAgICAuc2V0SXNMb2NhbFN0
b3JhZ2UoaXNMb2NhbFN0b3JhZ2UpLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdl
VHlwZSBzdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBQYWdlKikK
IHsKLSAgICBpZiAoIW1fZnJvbnRlbmQgfHwgIW1fZW5hYmxlZCkKKyAgICBpZiAoIW1fZnJvbnRl
bmQgfHwgIWlzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJpbmcgaWQgPSBz
dG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4sIHN0b3JhZ2VUeXBlID09IExvY2FsU3RvcmFnZSk7Ci0K
LSAgICBpZiAoaWQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47CisgICAgUmVmUHRyPFR5cGVC
dWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IGlkID0gc3RvcmFnZUlkKHNlY3VyaXR5T3Jp
Z2luLCBzdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOwogCiAgICAgaWYgKGtleS5pc051bGwo
KSkKICAgICAgICAgbV9mcm9udGVuZC0+ZG9tc3RvcmFnZSgpLT5kb21TdG9yYWdlSXRlbXNDbGVh
cmVkKGlkKTsKQEAgLTI0MywxNiArMjEyLDM3IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uCiAg
ICAgICAgIG1fZnJvbnRlbmQtPmRvbXN0b3JhZ2UoKS0+ZG9tU3RvcmFnZUl0ZW1VcGRhdGVkKGlk
LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpjbGVhclJlc291cmNlcygpCitQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRTdG9yYWdlQXJlYShFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIEZyYW1lKiYgdGFy
Z2V0RnJhbWUpCiB7Ci0gICAgbV9yZXNvdXJjZXMuY2xlYXIoKTsKKyAgICBTdHJpbmcgc2VjdXJp
dHlPcmlnaW47CisgICAgYm9vbCBpc0xvY2FsU3RvcmFnZTsKKyAgICBib29sIHN1Y2Nlc3MgPSBz
dG9yYWdlSWQtPmdldFN0cmluZygic2VjdXJpdHlPcmlnaW4iLCAmc2VjdXJpdHlPcmlnaW4pOwor
ICAgIGlmIChzdWNjZXNzKQorICAgICAgICBzdWNjZXNzID0gc3RvcmFnZUlkLT5nZXRCb29sZWFu
KCJpc0xvY2FsU3RvcmFnZSIsICZpc0xvY2FsU3RvcmFnZSk7CisgICAgaWYgKCFzdWNjZXNzKSB7
CisgICAgICAgIGlmIChlcnJvclN0cmluZykKKyAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJJ
bnZhbGlkIHN0b3JhZ2VJZCBmb3JtYXQiOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+ZmluZEZyYW1lV2l0aFNlY3VyaXR5T3JpZ2lu
KHNlY3VyaXR5T3JpZ2luKTsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAgIGlmIChlcnJvclN0
cmluZykKKyAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJGcmFtZSBub3QgZm91bmQgZm9yIHRo
ZSBnaXZlbiBzZWN1cml0eSBvcmlnaW4iOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAg
dGFyZ2V0RnJhbWUgPSBmcmFtZTsKKworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2VBZ2VudC0+cGFn
ZSgpOworICAgIGlmIChpc0xvY2FsU3RvcmFnZSkKKyAgICAgICAgcmV0dXJuIHBhZ2UtPmdyb3Vw
KCkubG9jYWxTdG9yYWdlKCktPnN0b3JhZ2VBcmVhKGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpKTsKKyAgICByZXR1cm4gcGFnZS0+c2Vzc2lvblN0b3JhZ2UoKS0+c3RvcmFnZUFy
ZWEoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCk7CiAgICAgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dD46OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwotICAgIGluZm8uYWRkTWVt
YmVyKG1fcmVzb3VyY2VzLCAicmVzb3VyY2VzIik7CiAgICAgaW5mby5hZGRXZWFrUG9pbnRlciht
X2Zyb250ZW5kKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IGU5OGUzOTIxZDA1Njg2OTUyMzdiZjliZWIwNzM4
YzE0MzhjOTcxNTIuLjZjNDc4MmU0ODVhNzhkMWUwOTBhZmVlNmJiYmQzMTZjMzI5YWJjYjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50LmgKQEAgLTM5LDggKzM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFt
ZTsKIGNsYXNzIEluc3BlY3RvckFycmF5OwotY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7
CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFz
cyBQYWdlOwpAQCAtNTEsOSArNTEsOSBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAog
Y2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2Vu
dDxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXI6OkRPTVN0b3JhZ2VDb21tYW5kSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRl
KQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRl
KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VB
Z2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBzdGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIHN0
YXRlKSk7CiAgICAgfQogICAgIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKTsKIApAQCAtNjEs
MzQgKzYxLDMxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwog
ICAgIHZvaWQgcmVzdG9yZSgpOwogCi0gICAgdm9pZCBjbGVhclJlc291cmNlcygpOwotCiAgICAg
Ly8gQ2FsbGVkIGZyb20gdGhlIGZyb250LWVuZC4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVy
cm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RE9NU3RvcmFnZUVudHJpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBT
dHJpbmcmIHN0b3JhZ2VJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6
QXJyYXk8U3RyaW5nPiA+ID4mIGVudHJpZXMpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRET01TdG9y
YWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2Vzcyk7Ci0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBz
dG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBib29sKiBzdWNjZXNzKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6QXJyYXk8U3RyaW5nPiA+ID4mIGl0ZW1zKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RE9N
U3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYg
c3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCog
c3VjY2Vzcyk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZURPTVN0b3JhZ2VJdGVtKEVycm9yU3Ry
aW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwgY29uc3QgU3Ry
aW5nJiBrZXksIGJvb2wqIHN1Y2Nlc3MpOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gdGhlIGluamVj
dGVkIHNjcmlwdC4KICAgICBTdHJpbmcgc3RvcmFnZUlkKFN0b3JhZ2UqKTsKLSAgICBTdHJpbmcg
c3RvcmFnZUlkKFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSk7CisgICAgUGFz
c1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NU3RvcmFnZTo6U3RvcmFnZUlkPiBzdG9yYWdlSWQoU2Vj
dXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdlKTsKIAogICAgIC8vIENhbGxlZCBmcm9t
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbgotICAgIHZvaWQgZGlkVXNlRE9NU3RvcmFnZShTdG9y
YWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7CiAgICAgdm9pZCBkaWREaXNw
YXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2lu
KiwgUGFnZSopOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRl
Kik7CiAKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIGdldERPTVN0b3JhZ2VSZXNv
dXJjZUZvcklkKGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkKTsKKyAgICBJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclBhZ2VBZ2VudCosIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKik7CisKKyAgICBib29sIGlzRW5hYmxlZCgpIGNvbnN0OworICAg
IFBhc3NSZWZQdHI8U3RvcmFnZUFyZWE+IGZpbmRTdG9yYWdlQXJlYShFcnJvclN0cmluZyosIGNv
bnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiwgRnJhbWUqJik7CiAKLSAgICB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiA+IERPTVN0
b3JhZ2VSZXNvdXJjZXNNYXA7Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcCBtX3Jlc291cmNl
czsKKyAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50OwogICAgIEluc3BlY3RvckZy
b250ZW5kKiBtX2Zyb250ZW5kOwotICAgIGJvb2wgbV9lbmFibGVkOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWYzY2ZlMTViNDBkYzc3NTk3NWRiYjg3NjYwYjgyZTcwMjAzN2VlZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEw
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwOCBNYXR0IExpbGVrIDx3ZWJr
aXRAbWF0dGxpbGVrLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShJTlNQRUNU
T1IpCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCIKLQotI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQu
aCIKLSNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgotI2luY2x1ZGUgIlN0b3JhZ2UuaCIKLSNpbmNsdWRlICJTdG9yYWdlQXJlYS5oIgotI2lu
Y2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWludCBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6OnNfbmV4dFVu
dXNlZElkID0gMTsKLQotSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2UoU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9y
YWdlLCBGcmFtZSogZnJhbWUpCi0gICAgOiBtX3N0b3JhZ2VBcmVhKHN0b3JhZ2VBcmVhKQotICAg
ICwgbV9pc0xvY2FsU3RvcmFnZShpc0xvY2FsU3RvcmFnZSkKLSAgICAsIG1fZnJhbWUoZnJhbWUp
Ci0gICAgLCBtX2Zyb250ZW5kKDApCi0gICAgLCBtX2lkKFN0cmluZzo6bnVtYmVyKHNfbmV4dFVu
dXNlZElkKyspKQotewotfQotCi1ib29sIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6aXNT
YW1lT3JpZ2luQW5kVHlwZShTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNM
b2NhbFN0b3JhZ2UpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCktPmVxdWFsKHNlY3VyaXR5T3JpZ2luKSAmJiBtX2lzTG9jYWxTdG9yYWdl
ID09IGlzTG9jYWxTdG9yYWdlOwotfQotCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZTo6YmluZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCi17Ci0gICAgQVNTRVJUKCFtX2Zy
b250ZW5kKTsKLSAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPmRvbXN0b3JhZ2UoKTsKLQotICAg
IFJlZlB0cjxUeXBlQnVpbGRlcjo6RE9NU3RvcmFnZTo6RW50cnk+IGpzb25PYmplY3QgPSBUeXBl
QnVpbGRlcjo6RE9NU3RvcmFnZTo6RW50cnk6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRPcmlnaW4o
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9SYXdTdHJpbmcoKSkKLSAg
ICAgICAgLnNldElzTG9jYWxTdG9yYWdlKG1faXNMb2NhbFN0b3JhZ2UpCi0gICAgICAgIC5zZXRJ
ZChtX2lkKTsKLSAgICBtX2Zyb250ZW5kLT5hZGRET01TdG9yYWdlKGpzb25PYmplY3QpOwotfQot
Ci12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6dW5iaW5kKCkKLXsKLSAgICBpZiAo
IW1fZnJvbnRlbmQpCi0gICAgICAgIHJldHVybjsgIC8vIEFscmVhZHkgdW5ib3VuZC4KLQotICAg
IG1fZnJvbnRlbmQgPSAwOwotfQotCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKLXsKLSAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXMpOwotICAgIGlu
Zm8uYWRkTWVtYmVyKG1fc3RvcmFnZUFyZWEsICJzdG9yYWdlQXJlYSIpOwotICAgIGluZm8uYWRk
TWVtYmVyKG1fZnJhbWUsICJmcmFtZSIpOwotICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9mcm9u
dGVuZCk7Ci0gICAgaW5mby5hZGRNZW1iZXIobV9pZCwgImlkIik7Ci0gICAgaW5mby5hZGRQcml2
YXRlQnVmZmVyKG1fc3RvcmFnZUFyZWEtPm1lbW9yeUJ5dGVzVXNlZEJ5Q2FjaGUoKSwgMCwgIlN0
b3JhZ2VBcmVhQ2FjaGUiLCAiY2FjaGUiKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMGQ0NmQ3NTBmYWE3NjY2Y2FjNjRmMmQyNjhlNTY3ZWQyNGJiNzdi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQg
TGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2VfaAotI2RlZmluZSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VfaAotCi0jaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKLQotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU3RvcmFnZUFy
ZWE7Ci1jbGFzcyBGcmFtZTsKLWNsYXNzIEluc3BlY3RvckZyb250ZW5kOwotCi1jbGFzcyBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2U+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2U+IGNyZWF0ZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJv
b2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKHN0b3JhZ2VBcmVhLCBpc0xv
Y2FsU3RvcmFnZSwgZnJhbWUpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGJpbmQoSW5zcGVjdG9yRnJv
bnRlbmQqKTsKLSAgICB2b2lkIHVuYmluZCgpOwotCi0gICAgYm9vbCBpc1NhbWVPcmlnaW5BbmRU
eXBlKFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSkgY29uc3Q7Ci0gICAgU3Ry
aW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIFN0b3JhZ2VBcmVhKiBzdG9yYWdl
QXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUFyZWEuZ2V0KCk7IH0KLSAgICBGcmFtZSog
ZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lLmdldCgpOyB9Ci0KLSAgICB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UoU3RvcmFnZUFyZWEqLCBib29sIGlzTG9jYWxTdG9y
YWdlLCBGcmFtZSopOwotCi0gICAgUmVmUHRyPFN0b3JhZ2VBcmVhPiBtX3N0b3JhZ2VBcmVhOwot
ICAgIGJvb2wgbV9pc0xvY2FsU3RvcmFnZTsKLSAgICBSZWZQdHI8RnJhbWU+IG1fZnJhbWU7Ci0g
ICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkRPTVN0b3JhZ2UqIG1fZnJvbnRlbmQ7Ci0gICAgU3RyaW5n
IG1faWQ7Ci0KLSAgICBzdGF0aWMgaW50IHNfbmV4dFVudXNlZElkOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKaW5kZXggNWFhYWIxOGFjNjdjNDJhMzg2Njg3MDdkOGNlNTRmMjRlMWUzYzU1Yy4u
ZGExMWEzYjVjNzdiMjhiOGU1MzQyOWYyNjkwYjRmOTE3OTk0MThiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAg
LTkxNSw4ICs5MTUsNiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0
TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudAogICAgICAgICBpZiAoSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudCogZGF0YWJhc2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvckRhdGFiYXNlQWdlbnQoKSkKICAgICAgICAgICAgIGRhdGFiYXNlQWdlbnQtPmNs
ZWFyUmVzb3VyY2VzKCk7CiAjZW5kaWYKLSAgICAgICAgaWYgKEluc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50KCkpCi0gICAgICAgICAgICBkb21TdG9yYWdlQWdlbnQtPmNsZWFyUmVzb3Vy
Y2VzKCk7CiAgICAgICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01BZ2VudCgpKQogICAgICAgICAgICAgZG9tQWdlbnQt
PnNldERvY3VtZW50KG1haW5GcmFtZS0+ZG9jdW1lbnQoKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQpAQCAtMTEwMSwxNSArMTA5OSw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRPcGVuRGF0YWJhc2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lCiB9CiAjZW5kaWYKIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFVzZURP
TVN0b3JhZ2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIFN0
b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1l
KQotewotICAgIEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvckFnZW50KCk7Ci0gICAgaWYgKCFpbnNwZWN0b3JBZ2VudCB8fCAhaW5z
cGVjdG9yQWdlbnQtPmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpKQotICAgICAgICBkb21T
dG9yYWdlQWdlbnQtPmRpZFVzZURPTVN0b3JhZ2Uoc3RvcmFnZUFyZWEsIGlzTG9jYWxTdG9yYWdl
LCBmcmFtZSk7Ci19Ci0KIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRj
aERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0
cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIFBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZmY2MzAwNTE2ZWYxMDMzNGIwMDIyMTA5Y2Zl
ZGIzNmYzZDYxMmYzYS4uN2ZmYmNmZmJkZTRiYmMzMGY2M2Q5NmE0YmFjZGJmNjM3YzM4MzBkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaApAQCAtMjUyLDcgKzI1Miw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRP
cGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8RGF0YWJhc2U+
LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZlcnNpb24pOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9pZCBkaWRVc2VET01TdG9yYWdlKFBh
Z2UqLCBTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7CiAgICAgc3Rh
dGljIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBl
LCBTZWN1cml0eU9yaWdpbiosIFBhZ2UqKTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQpAQCAtNDUx
LDcgKzQ1MCw2IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkT3BlbkRhdGFiYXNlSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgUGFzc1JlZlB0cjxEYXRhYmFzZT4sIGNvbnN0IFN0cmlu
ZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAj
ZW5kaWYKIAotICAgIHN0YXRpYyB2b2lkIGRpZFVzZURPTVN0b3JhZ2VJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7CiAg
ICAgc3RhdGljIHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnRJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiwgUGFnZSop
OwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC0xNzUwLDE5ICsxNzQ4LDYgQEAgaW5saW5lIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRXcml0ZUhUTUwoY29uc3QgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW8KICNlbmRpZgogfQogCi1pbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFVzZURPTVN0b3JhZ2UoUGFnZSogcGFnZSwgU3RvcmFnZUFyZWEqIHN0b3Jh
Z2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCi17Ci0jaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQotICAgICAgICBkaWRVc2VE
T01TdG9yYWdlSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBzdG9yYWdlQXJlYSwgaXNMb2NhbFN0
b3JhZ2UsIGZyYW1lKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwotICAgIFVOVVNF
RF9QQVJBTShzdG9yYWdlQXJlYSk7Ci0gICAgVU5VU0VEX1BBUkFNKGlzTG9jYWxTdG9yYWdlKTsK
LSAgICBVTlVTRURfUEFSQU0oZnJhbWUpOwotI2VuZGlmCi19Ci0KIGlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUs
IFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4s
IFBhZ2UqIHBhZ2UpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKaW5kZXggNGFmOGFiZDc2N2ExMTFk
NTk2MTU1MjdlZWNiZjIyYTU4ZDkxZDY2NS4uN2ExZWIxNDQwOTI5ZmVjYTQ2NmEzOTJkYTQzNjJk
NDAxM2Q3M2EyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clBhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAKQEAgLTkxNiw2ICs5MTYsMjIgQEAgU3RyaW5nIEluc3BlY3RvclBhZ2VBZ2Vu
dDo6bG9hZGVySWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKICAgICByZXR1cm4gaWRlbnRpZmll
cjsKIH0KIAorRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6ZmluZEZyYW1lV2l0aFNlY3VyaXR5
T3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luUmF3U3RyaW5nKQoreworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW5QdHIgPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bVN0cmluZyhvcmlnaW5SYXdTdHJpbmcpOworICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9y
aWdpbiA9IHNlY3VyaXR5T3JpZ2luUHRyLmdldCgpOworICAgIGJvb2wgaXNMb2NhbCA9IHNlY3Vy
aXR5T3JpZ2luLT5pc0xvY2FsKCk7CisgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPm1h
aW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkg
eworICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGRvY3VtZW50T3JpZ2luID0gZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgICAgIC8vIEVtdWxhdGUgdGhlICFl
bmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uIGZvciBzZWN1cml0eSBvcmlnaW5zLgorICAgICAgICBp
ZiAoaXNMb2NhbCAmJiBkb2N1bWVudE9yaWdpbi0+aXNMb2NhbCgpKQorICAgICAgICAgICAgcmV0
dXJuIGZyYW1lOworICAgICAgICBpZiAoZG9jdW1lbnRPcmlnaW4tPmVxdWFsKHNlY3VyaXR5T3Jp
Z2luKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9
CisKIEZyYW1lKiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmFzc2VydEZyYW1lKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZUlkKQogewogICAgIEZyYW1lKiBmcmFtZSA9
IGZyYW1lRm9ySWQoZnJhbWVJZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yUGFnZUFnZW50LmgKaW5kZXggZDVjNWI5MDI1MmZlMzE1ZGE1ZmE0ZjUxZDU4M2ZmOGUxZTI3
NDVmZC4uZGUyNGZjNDdiMmQzODA1Yjc1N2EzOTBiOGFkNzlmNzgwNWYzNmM5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaApAQCAtMTczLDYgKzE3
Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZnJhbWVJZChGcmFtZSopOwogICAgIGJvb2wgaGFz
SWRGb3JGcmFtZShGcmFtZSopIGNvbnN0OwogICAgIFN0cmluZyBsb2FkZXJJZChEb2N1bWVudExv
YWRlciopOworICAgIEZyYW1lKiBmaW5kRnJhbWVXaXRoU2VjdXJpdHlPcmlnaW4oY29uc3QgU3Ry
aW5nJiBvcmlnaW5SYXdTdHJpbmcpOwogICAgIEZyYW1lKiBhc3NlcnRGcmFtZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgZnJhbWVJZCk7CiAgICAgU3RyaW5nIHNjcmlwdFByZXByb2Nlc3Nv
cigpIHsgcmV0dXJuIG1fc2NyaXB0UHJlcHJvY2Vzc29yOyB9CiAgICAgc3RhdGljIERvY3VtZW50
TG9hZGVyKiBhc3NlcnREb2N1bWVudExvYWRlcihFcnJvclN0cmluZyosIEZyYW1lKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMKaW5kZXgg
YjEzNDQxOTU5OWUzNTI4NDk5MmMyYzBmYjA2MTEwMmJiOGRiOGQ4OC4uYzljZWNkZjNkNGY0YzEz
ODJkZjg1OTEyOWI2NGNkOGY4ZmJmZTZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwpAQCAtMjksMjUgKzI5LDM4IEBACiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge3N0cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAqIEBw
YXJhbSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UKKyAqIEBwYXJhbSB7c3RyaW5nPX0gaWQKICAq
LwotV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UgPSBmdW5jdGlvbihpZCwgZG9tYWluLCBpc0xvY2Fs
U3RvcmFnZSkKK1dlYkluc3BlY3Rvci5ET01TdG9yYWdlID0gZnVuY3Rpb24oc2VjdXJpdHlPcmln
aW4sIGlzTG9jYWxTdG9yYWdlLCBpZCkKIHsKLSAgICB0aGlzLl9pZCA9IGlkOwotICAgIHRoaXMu
X2RvbWFpbiA9IGRvbWFpbjsKKyAgICB0aGlzLl9zZWN1cml0eU9yaWdpbiA9IHNlY3VyaXR5T3Jp
Z2luOwogICAgIHRoaXMuX2lzTG9jYWxTdG9yYWdlID0gaXNMb2NhbFN0b3JhZ2U7CiB9CiAKKy8q
KgorICogQHBhcmFtIHtzdHJpbmd9IHNlY3VyaXR5T3JpZ2luCisgKiBAcGFyYW0ge2Jvb2xlYW59
IGlzTG9jYWxTdG9yYWdlCisgKiBAcmV0dXJuIHtET01TdG9yYWdlQWdlbnQuU3RvcmFnZUlkfQor
ICovCitXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5zdG9yYWdlSWQgPSBmdW5jdGlvbihzZWN1cml0
eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpCit7CisgICAgcmV0dXJuIHsgc2VjdXJpdHlPcmlnaW46
IHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZTogaXNMb2NhbFN0b3JhZ2UgfTsKK30KKwog
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0gewotICAgIC8qKiBAcmV0dXJuIHtz
dHJpbmd9ICovCisKKyAgICAvKiogQHJldHVybiB7RE9NU3RvcmFnZUFnZW50LlN0b3JhZ2VJZH0g
Ki8KICAgICBnZXQgaWQoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2lkOworICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uuc3RvcmFnZUlkKHRoaXMuX3NlY3VyaXR5
T3JpZ2luLCB0aGlzLl9pc0xvY2FsU3RvcmFnZSk7CiAgICAgfSwKIAogICAgIC8qKiBAcmV0dXJu
IHtzdHJpbmd9ICovCi0gICAgZ2V0IGRvbWFpbigpCisgICAgZ2V0IHNlY3VyaXR5T3JpZ2luKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9kb21haW47CisgICAgICAgIHJldHVybiB0aGlz
Ll9zZWN1cml0eU9yaWdpbjsKICAgICB9LAogCiAgICAgLyoqIEByZXR1cm4ge2Jvb2xlYW59ICov
CkBAIC01NywxMSArNzAsMTEgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0g
ewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9Qcm90b2NvbC5F
cnJvciwgQXJyYXkuPERPTVN0b3JhZ2VBZ2VudC5FbnRyeT4pOnZvaWQ9fSBjYWxsYmFjaworICAg
ICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yLCBBcnJheS48RE9NU3RvcmFnZUFn
ZW50Lkl0ZW0+KTp2b2lkPX0gY2FsbGJhY2sKICAgICAgKi8KLSAgICBnZXRFbnRyaWVzOiBmdW5j
dGlvbihjYWxsYmFjaykKKyAgICBnZXRJdGVtczogZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgewot
ICAgICAgICBET01TdG9yYWdlQWdlbnQuZ2V0RE9NU3RvcmFnZUVudHJpZXModGhpcy5faWQsIGNh
bGxiYWNrKTsKKyAgICAgICAgRE9NU3RvcmFnZUFnZW50LmdldERPTVN0b3JhZ2VJdGVtcyh0aGlz
LmlkLCBjYWxsYmFjayk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNzEsNyArODQsNyBAQCBXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc2V0SXRlbTog
ZnVuY3Rpb24oa2V5LCB2YWx1ZSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBET01TdG9yYWdl
QWdlbnQuc2V0RE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgdmFsdWUsIGNhbGxiYWNrKTsK
KyAgICAgICAgRE9NU3RvcmFnZUFnZW50LnNldERPTVN0b3JhZ2VJdGVtKHRoaXMuaWQsIGtleSwg
dmFsdWUsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC04MCw3ICs5Myw3IEBAIFdl
Ykluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZW1vdmVJ
dGVtOiBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NU3RvcmFnZUFn
ZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuX2lkLCBrZXksIGNhbGxiYWNrKTsKKyAgICAg
ICAgRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuaWQsIGtleSwgY2Fs
bGJhY2spOwogICAgIH0KIH0KIApAQCAtOTMsMTAgKzEwNiwxMyBAQCBXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZU1vZGVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3N0b3JhZ2VzID0ge307CiAgICAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRPTVN0b3JhZ2VEaXNwYXRjaGVyKG5ldyBXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIodGhpcykpOwogICAgIERPTVN0b3JhZ2VBZ2VudC5l
bmFibGUoKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5TZWN1cml0eU9y
aWdpbkFkZGVkLCB0aGlzLl9zZWN1cml0eU9yaWdpbkFkZGVkLCB0aGlzKTsKKyAgICBXZWJJbnNw
ZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVz
b3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5TZWN1cml0eU9yaWdpblJlbW92ZWQsIHRoaXMuX3Nl
Y3VyaXR5T3JpZ2luUmVtb3ZlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
TW9kZWwuRXZlbnRzID0gewogICAgIERPTVN0b3JhZ2VBZGRlZDogIkRPTVN0b3JhZ2VBZGRlZCIs
CisgICAgRE9NU3RvcmFnZVJlbW92ZWQ6ICJET01TdG9yYWdlUmVtb3ZlZCIsCiAgICAgRE9NU3Rv
cmFnZUl0ZW1zQ2xlYXJlZDogIkRPTVN0b3JhZ2VJdGVtc0NsZWFyZWQiLAogICAgIERPTVN0b3Jh
Z2VJdGVtUmVtb3ZlZDogIkRPTVN0b3JhZ2VJdGVtUmVtb3ZlZCIsCiAgICAgRE9NU3RvcmFnZUl0
ZW1BZGRlZDogIkRPTVN0b3JhZ2VJdGVtQWRkZWQiLApAQCAtMTA0LDEzICsxMjAsNTMgQEAgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlTW9kZWwucHJvdG90eXBlID0geworCisgICAgLyoqCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NlY3VyaXR5T3JpZ2luQWRk
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHNlY3VyaXR5T3JpZ2luID0g
LyoqIEB0eXBlIHtzdHJpbmd9ICovIChldmVudC5kYXRhKTsKKyAgICAgICAgdmFyIGxvY2FsU3Rv
cmFnZUtleSA9IHRoaXMuX3N0b3JhZ2VLZXkoc2VjdXJpdHlPcmlnaW4sIHRydWUpOworICAgICAg
ICBjb25zb2xlLmFzc2VydCghdGhpcy5fc3RvcmFnZXNbbG9jYWxTdG9yYWdlS2V5XSk7CisgICAg
ICAgIHZhciBsb2NhbFN0b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uoc2VjdXJp
dHlPcmlnaW4sIHRydWUpOworICAgICAgICB0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXld
ID0gbG9jYWxTdG9yYWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIGxvY2Fs
U3RvcmFnZSk7CisKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlS2V5ID0gdGhpcy5fc3RvcmFn
ZUtleShzZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhp
cy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXldKTsKKyAgICAgICAgdmFyIHNlc3Npb25TdG9y
YWdlID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKHNlY3VyaXR5T3JpZ2luLCBmYWxzZSk7
CisgICAgICAgIHRoaXMuX3N0b3JhZ2VzW3Nlc3Npb25TdG9yYWdlS2V5XSA9IHNlc3Npb25TdG9y
YWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
RE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIHNlc3Npb25TdG9yYWdlKTsK
KyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2
ZW50CisgICAgICovCisgICAgX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQp
CisgICAgeworICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSAvKiogQHR5cGUge3N0cmluZ30g
Ki8gKGV2ZW50LmRhdGEpOworICAgICAgICB2YXIgbG9jYWxTdG9yYWdlS2V5ID0gdGhpcy5fc3Rv
cmFnZUtleShzZWN1cml0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIHZhciBsb2NhbFN0b3JhZ2Ug
PSB0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXldOworICAgICAgICBjb25zb2xlLmFzc2Vy
dChsb2NhbFN0b3JhZ2UpOworICAgICAgICBkZWxldGUgdGhpcy5fc3RvcmFnZXNbbG9jYWxTdG9y
YWdlS2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQsIGxvY2FsU3RvcmFn
ZSk7CisKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlS2V5ID0gdGhpcy5fc3RvcmFnZUtleShz
ZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICB2YXIgc2Vzc2lvblN0b3JhZ2UgPSB0aGlz
Ll9zdG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNl
c3Npb25TdG9yYWdlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3N0b3JhZ2VzW3Nlc3Npb25TdG9y
YWdlS2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQsIHNlc3Npb25TdG9y
YWdlKTsKKyAgICB9LAorCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZX0gZG9tU3RvcmFnZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdp
bgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UKKyAgICAgKiBAcmV0dXJu
IHtzdHJpbmd9CiAgICAgICovCi0gICAgX2FkZERPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3Jh
Z2UpCisgICAgX3N0b3JhZ2VLZXk6IGZ1bmN0aW9uKHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3Rv
cmFnZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VzW2RvbVN0b3JhZ2UuaWRdID0gZG9t
U3RvcmFnZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZUFkZGVkLCBkb21TdG9yYWdlKTsK
KyAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnN0
b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpKTsKICAgICB9LAogCiAgICAg
LyoqCkBAIC0xMTgsNyArMTc0LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VJdGVtc0NsZWFyZWQ6IGZ1bmN0aW9u
KHN0b3JhZ2VJZCkKICAgICB7Ci0gICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5fc3RvcmFn
ZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJ
ZChzdG9yYWdlSWQpOwogICAgICAgICB2YXIgc3RvcmFnZURhdGEgPSB7CiAgICAgICAgICAgICBz
dG9yYWdlOiBkb21TdG9yYWdlCiAgICAgICAgIH07CkBAIC0xMzEsNyArMTg3LDcgQEAgV2ViSW5z
cGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0
b3JhZ2VJdGVtUmVtb3ZlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXkpCiAgICAgewotICAgICAg
ICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuX3N0b3JhZ2VzW3N0b3JhZ2VJZF07CisgICAgICAgIHZh
ciBkb21TdG9yYWdlID0gdGhpcy5zdG9yYWdlRm9ySWQoc3RvcmFnZUlkKTsKICAgICAgICAgdmFy
IHN0b3JhZ2VEYXRhID0gewogICAgICAgICAgICAgc3RvcmFnZTogZG9tU3RvcmFnZSwKICAgICAg
ICAgICAgIGtleToga2V5CkBAIC0xNDYsNyArMjAyLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VJdGVtQWRkZWQ6
IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5LCBuZXdWYWx1ZSkKICAgICB7Ci0gICAgICAgIHZhciBk
b21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgdmFyIGRvbVN0
b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAgICB2YXIgc3RvcmFn
ZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlLAogICAgICAgICAgICAg
a2V5OiBrZXksCkBAIC0xNzksNyArMjM1LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc3RvcmFnZUZvcklkOiBmdW5jdGlvbihzdG9y
YWdlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2VzW0pTT04uc3RyaW5naWZ5KHN0b3JhZ2VJZCld
OwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4OCw4ICsyNDQsOCBAQCBXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBzdG9yYWdlczogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAgICAgICBmb3IgKHZhciBzdG9yYWdlSWQg
aW4gdGhpcy5fc3RvcmFnZXMpCi0gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl9zdG9yYWdl
c1tzdG9yYWdlSWRdKTsKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fc3RvcmFnZXMpCisg
ICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl9zdG9yYWdlc1tpZF0pOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0sCiAKQEAgLTIwOSwxOCArMjY1LDcgQEAgV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2VEaXNwYXRjaGVyID0gZnVuY3Rpb24obW9kZWwpCiBXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtE
T01TdG9yYWdlQWdlbnQuRW50cnl9IHBheWxvYWQKLSAgICAgKi8KLSAgICBhZGRET01TdG9yYWdl
OiBmdW5jdGlvbihwYXlsb2FkKQotICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwuX2FkZERPTVN0
b3JhZ2UobmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKAotICAgICAgICAgICAgcGF5bG9hZC5p
ZCwKLSAgICAgICAgICAgIHBheWxvYWQub3JpZ2luLAotICAgICAgICAgICAgcGF5bG9hZC5pc0xv
Y2FsU3RvcmFnZSkpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30g
c3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQuU3RvcmFnZUlkfSBzdG9y
YWdlSWQKICAgICAgKi8KICAgICBkb21TdG9yYWdlSXRlbXNDbGVhcmVkOiBmdW5jdGlvbihzdG9y
YWdlSWQpCiAgICAgewpAQCAtMjI4LDcgKzI3Myw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
RGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9y
YWdlSWR9IHN0b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAgKi8KICAg
ICBkb21TdG9yYWdlSXRlbVJlbW92ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5KQpAQCAtMjM3
LDcgKzI4Miw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlSWQK
KyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9IHN0b3JhZ2VJZAogICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFsdWUK
ICAgICAgKi8KQEAgLTI0Nyw3ICsyOTIsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZURpc3Bh
dGNoZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0
cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQuU3RvcmFnZUlk
fSBzdG9yYWdlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5CiAgICAgICogQHBhcmFtIHtz
dHJpbmd9IG9sZFZhbHVlCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZhbHVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1Zp
ZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVt
c1ZpZXcuanMKaW5kZXggNTM1ZGExMmMzNTNjYjFlNzA4NjQ4ZmFhYTYyMzJhZGY3ZDNhMjhjYy4u
NzE5ZDlkZmQyNDQxMjlhZjdkNzA0OTljNjQ0MDI3MWU2NDkyMmEwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZUl0ZW1zVmll
dy5qcwpAQCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5w
cm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dGhpcy5fdXBkYXRlKCk7CisgICAgICAgIHRoaXMudXBkYXRlKCk7CiAgICAgfSwKIAogICAgIHdp
bGxIaWRlOiBmdW5jdGlvbigpCkBAIC0xNTMsMjQgKzE1MywyNCBAQCBXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAg
X3VwZGF0ZTogZnVuY3Rpb24oKQorICAgIHVwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAg
ICAgdGhpcy5kZXRhY2hDaGlsZFZpZXdzKCk7Ci0gICAgICAgIHRoaXMuZG9tU3RvcmFnZS5nZXRF
bnRyaWVzKHRoaXMuX3Nob3dET01TdG9yYWdlRW50cmllcy5iaW5kKHRoaXMpKTsKKyAgICAgICAg
dGhpcy5kb21TdG9yYWdlLmdldEl0ZW1zKHRoaXMuX3Nob3dET01TdG9yYWdlSXRlbXMuYmluZCh0
aGlzKSk7CiAgICAgfSwKIAotICAgIF9zaG93RE9NU3RvcmFnZUVudHJpZXM6IGZ1bmN0aW9uKGVy
cm9yLCBlbnRyaWVzKQorICAgIF9zaG93RE9NU3RvcmFnZUl0ZW1zOiBmdW5jdGlvbihlcnJvciwg
aXRlbXMpCiAgICAgewogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICByZXR1cm47CiAK
LSAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSB0aGlzLl9kYXRhR3JpZEZvckRPTVN0b3JhZ2VFbnRy
aWVzKGVudHJpZXMpOworICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlkRm9y
RE9NU3RvcmFnZUl0ZW1zKGl0ZW1zKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc2hvdyh0aGlz
LmVsZW1lbnQpOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hdXRvU2l6ZUNvbHVtbnMoMTApOwog
ICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi52aXNpYmxlID0gKHRoaXMuX2RhdGFHcmlkLnJvb3RO
b2RlKCkuY2hpbGRyZW4ubGVuZ3RoID4gMSk7CiAgICAgfSwKIAotICAgIF9kYXRhR3JpZEZvckRP
TVN0b3JhZ2VFbnRyaWVzOiBmdW5jdGlvbihlbnRyaWVzKQorICAgIF9kYXRhR3JpZEZvckRPTVN0
b3JhZ2VJdGVtczogZnVuY3Rpb24oaXRlbXMpCiAgICAgewogICAgICAgICB2YXIgY29sdW1ucyA9
IHtrZXk6IHt9LCB2YWx1ZToge319OwogCkBAIC0xODMsMTAgKzE4MywxMCBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBub2RlcyA9
IFtdOwogCiAgICAgICAgIHZhciBrZXlzID0gW107Ci0gICAgICAgIHZhciBsZW5ndGggPSBlbnRy
aWVzLmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgICAgICB2YXIga2V5ID0gZW50cmllc1tpXVswXTsKLSAgICAgICAgICAg
IHZhciB2YWx1ZSA9IGVudHJpZXNbaV1bMV07CisgICAgICAgIHZhciBsZW5ndGggPSBpdGVtcy5s
ZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgIHZhciBrZXkgPSBpdGVtc1tpXVswXTsKKyAgICAgICAgICAgIHZhciB2YWx1
ZSA9IGl0ZW1zW2ldWzFdOwogICAgICAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9y
LkRhdGFHcmlkTm9kZSh7a2V5OiBrZXksIHZhbHVlOiB2YWx1ZX0sIGZhbHNlKTsKICAgICAgICAg
ICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CiAgICAgICAgICAgICBub2Rlcy5wdXNoKG5vZGUp
OwpAQCAtMjEzLDcgKzIxMyw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnBy
b3RvdHlwZSA9IHsKIAogICAgIF9yZWZyZXNoQnV0dG9uQ2xpY2tlZDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICAgICAgdGhpcy51cGRhdGUoKTsK
ICAgICB9LAogCiAgICAgX2VkaXRpbmdDYWxsYmFjazogZnVuY3Rpb24oZWRpdGluZ05vZGUsIGNv
bHVtbklkZW50aWZpZXIsIG9sZFRleHQsIG5ld1RleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzCmluZGV4IGQ3YTY1YWYyNzFjOWFkZWNhNmMz
ZTIxMzgxNGQ2ZmE5OTBkN2IyM2UuLjJlY2YzODE1NWIwNTY3OGMyZmM3ZjcxYmNjNTVjZGFkODY2
OTdhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1w
dHlWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlW
aWV3LmpzCkBAIC01Miw2ICs1MiwxMSBAQCBXZWJJbnNwZWN0b3IuRW1wdHlWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHRoaXMuZWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX3RleHQ7
CiAgICAgfSwKIAorICAgIF9wcm9jZXNzV2lsbEhpZGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5WaWV3LnByb3RvdHlwZS5fcHJvY2Vzc1dpbGxIaWRlLmNhbGwodGhp
cyk7CisgICAgfSwKKwogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBl
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVz
b3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlc1BhbmVsLmpzCmluZGV4IGVhYWExYTJlZDRkZTFlYTJlNjlmOGM3ZTQzMjYxMjg2Yjg3ZWE2
NzEuLjQyZTUyZDdmYjVmMGZiODUwMzMxZjA5ZjE5MTlkMDI4NmVhZjdlMmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpA
QCAtMTE1LDkgKzExNSw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbCA9IGZ1bmN0aW9u
KGRhdGFiYXNlKQogCiAgICAgV2ViSW5zcGVjdG9yLmRhdGFiYXNlTW9kZWwuZGF0YWJhc2VzKCku
Zm9yRWFjaCh0aGlzLl9hZGREYXRhYmFzZS5iaW5kKHRoaXMpKTsKICAgICBXZWJJbnNwZWN0b3Iu
ZGF0YWJhc2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhYmFzZU1vZGVs
LkV2ZW50cy5EYXRhYmFzZUFkZGVkLCB0aGlzLl9kYXRhYmFzZUFkZGVkLCB0aGlzKTsKLQotICAg
IFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuc3RvcmFnZXMoKS5mb3JFYWNoKHRoaXMuX2Fk
ZERPTVN0b3JhZ2UuYmluZCh0aGlzKSk7Ci0gICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRP
TVN0b3JhZ2VBZGRlZCwgdGhpcy5fZG9tU3RvcmFnZUFkZGVkLCB0aGlzKTsKIH0KIAogV2ViSW5z
cGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKQEAgLTEzNiw2ICsxMzMsNyBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAg
aWYgKCF0aGlzLl9pbml0aWFsaXplZCAmJiB0aGlzLmlzU2hvd2luZygpICYmIHRoaXMuX2NhY2hl
ZFJlc291cmNlc1dlcmVMb2FkZWQpIHsKICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlUmVzb3Vy
Y2VUcmVlKCk7CisgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZURPTVN0b3JhZ2VUcmVlKCk7CiAg
ICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZUFwcGxpY2F0aW9uQ2FjaGVUcmVlKCk7CiAgICAgICAg
ICAgICB0aGlzLl9pbml0RGVmYXVsdFNlbGVjdGlvbigpOwogICAgICAgICAgICAgdGhpcy5faW5p
dGlhbGl6ZWQgPSB0cnVlOwpAQCAtMjg0LDYgKzI4Miw4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBhcHBsaWNhdGlvbkNhY2hlRnJhbWVU
cmVlRWxlbWVudCA9IHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVGcmFtZUVsZW1lbnRzW2ZyYW1lSWRd
OwogICAgICAgICBpZiAoYXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQpCiAgICAgICAg
ICAgICBhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVudC5mcmFtZU5hdmlnYXRlZChmcmFt
ZSk7CisKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpLmZv
ckVhY2godGhpcy5fYWRkRE9NU3RvcmFnZS5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgX2Nh
Y2hlZFJlc291cmNlc0xvYWRlZDogZnVuY3Rpb24oKQpAQCAtMzMxLDcgKzMzMSw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0
b3JhZ2VBZGRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgZG9tU3RvcmFn
ZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2V9Ki8gKGV2ZW50LmRhdGEpOwor
ICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2V9ICovIChldmVudC5kYXRhKTsKICAgICAgICAgdGhpcy5fYWRkRE9NU3RvcmFnZShkb21TdG9y
YWdlKTsKICAgICB9LAogCkBAIC0zNDEsNiArMzQxLDkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfYWRkRE9NU3RvcmFnZTogZnVuY3Rpb24oZG9tU3Rv
cmFnZSkKICAgICB7CiAgICAgICAgIHZhciBkb21TdG9yYWdlVHJlZUVsZW1lbnQgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudCh0aGlzLCBkb21TdG9yYWdlLCAoZG9tU3Rv
cmFnZS5pc0xvY2FsU3RvcmFnZSA/ICJsb2NhbC1zdG9yYWdlIiA6ICJzZXNzaW9uLXN0b3JhZ2Ui
KSk7CisgICAgICAgIGlmICh0aGlzLl9kb21TdG9yYWdlVHJlZUVsZW1lbnRzLmdldChkb21TdG9y
YWdlKSkKKyAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICB0aGlzLl9kb21TdG9yYWdlVHJl
ZUVsZW1lbnRzLnB1dChkb21TdG9yYWdlLCBkb21TdG9yYWdlVHJlZUVsZW1lbnQpOwogICAgICAg
ICBpZiAoZG9tU3RvcmFnZS5pc0xvY2FsU3RvcmFnZSkKICAgICAgICAgICAgIHRoaXMubG9jYWxT
dG9yYWdlTGlzdFRyZWVFbGVtZW50LmFwcGVuZENoaWxkKGRvbVN0b3JhZ2VUcmVlRWxlbWVudCk7
CkBAIC0zNDksNiArMzUyLDMwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2
ZW50fSBldmVudAorICAgICAqLworICAgIF9kb21TdG9yYWdlUmVtb3ZlZDogZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2V9ICovIChldmVudC5kYXRhKTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlRE9N
U3RvcmFnZShkb21TdG9yYWdlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZX0gZG9tU3RvcmFnZQorICAgICAqLworICAgIF9yZW1vdmVE
T01TdG9yYWdlOiBmdW5jdGlvbihkb21TdG9yYWdlKQorICAgIHsKKyAgICAgICAgdmFyIHRyZWVF
bGVtZW50ID0gdGhpcy5fZG9tU3RvcmFnZVRyZWVFbGVtZW50cy5nZXQoZG9tU3RvcmFnZSk7Cisg
ICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZh
ciB3YXNTZWxlY3RlZCA9IHRyZWVFbGVtZW50LnNlbGVjdGVkOworICAgICAgICB2YXIgcGFyZW50
TGlzdFRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQucGFyZW50OworICAgICAgICBwYXJlbnRMaXN0
VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOworICAgICAgICBpZiAod2FzU2Vs
ZWN0ZWQpCisgICAgICAgICAgICBwYXJlbnRMaXN0VHJlZUVsZW1lbnQuc2VsZWN0KCk7CisgICAg
fSwKKworICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRhdGFiYXNlfSBkYXRh
YmFzZQogICAgICAqLwogICAgIHNlbGVjdERhdGFiYXNlOiBmdW5jdGlvbihkYXRhYmFzZSkKQEAg
LTQ3Niw2ICs1MDMsMTkgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5faW5uZXJTaG93Vmlldyh2aWV3KTsKICAgICB9LAogCisgICAgX2Ry
b3BET01TdG9yYWdlOiBmdW5jdGlvbihkb21TdG9yYWdlKQorICAgIHsKKyAgICAgICAgaWYgKCFk
b21TdG9yYWdlKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgdmlldyA9IHRoaXMu
X2RvbVN0b3JhZ2VWaWV3cy5nZXQoZG9tU3RvcmFnZSk7CisgICAgICAgIGlmICghdmlldykKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fZG9tU3RvcmFnZVZpZXdzLnJlbW92ZShk
b21TdG9yYWdlKTsKKyAgICAgICAgaWYgKCF2aWV3LmlzU2hvd2luZygpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB0aGlzLmNsb3NlVmlzaWJsZVZpZXcoKTsKKyAgICB9LAorCiAgICAg
c2hvd0Nvb2tpZXM6IGZ1bmN0aW9uKHRyZWVFbGVtZW50LCBjb29raWVEb21haW4pCiAgICAgewog
ICAgICAgICB2YXIgdmlldyA9IHRoaXMuX2Nvb2tpZVZpZXdzW2Nvb2tpZURvbWFpbl07CkBAIC01
NzIsNiArNjEyLDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGRhdGFiYXNlLmdldFRhYmxlTmFtZXModGFibGVOYW1lc0NhbGxiYWNrKTsKICAg
ICB9LAogCisgICAgX3BvcHVsYXRlRE9NU3RvcmFnZVRyZWU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuc3RvcmFnZXMoKS5mb3JFYWNoKHRo
aXMuX2FkZERPTVN0b3JhZ2UuYmluZCh0aGlzKSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21T
dG9yYWdlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVs
LkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIHRoaXMuX2RvbVN0b3JhZ2VBZGRlZCwgdGhpcyk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlUmVtb3ZlZCwgdGhpcy5f
ZG9tU3RvcmFnZVJlbW92ZWQsIHRoaXMpOworICAgIH0sCisKICAgICBfcG9wdWxhdGVBcHBsaWNh
dGlvbkNhY2hlVHJlZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fYXBwbGljYXRp
b25DYWNoZU1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwoKTsK
QEAgLTE4NTAsMTQgKzE4OTcsMTQgQEAgV2ViSW5zcGVjdG9yLklEQkluZGV4VHJlZUVsZW1lbnQu
cHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50ID0g
ZnVuY3Rpb24oc3RvcmFnZVBhbmVsLCBkb21TdG9yYWdlLCBjbGFzc05hbWUpCiB7Ci0gICAgV2Vi
SW5zcGVjdG9yLkJhc2VTdG9yYWdlVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWws
IG51bGwsIGRvbVN0b3JhZ2UuZG9tYWluID8gZG9tU3RvcmFnZS5kb21haW4gOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkxvY2FsIEZpbGVzIiksIFsiZG9tc3RvcmFnZS1zdG9yYWdlLXRyZWUtaXRl
bSIsIGNsYXNzTmFtZV0pOworICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50
LmNhbGwodGhpcywgc3RvcmFnZVBhbmVsLCBudWxsLCBkb21TdG9yYWdlLnNlY3VyaXR5T3JpZ2lu
ID8gZG9tU3RvcmFnZS5zZWN1cml0eU9yaWdpbiA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9j
YWwgRmlsZXMiKSwgWyJkb21zdG9yYWdlLXN0b3JhZ2UtdHJlZS1pdGVtIiwgY2xhc3NOYW1lXSk7
CiAgICAgdGhpcy5fZG9tU3RvcmFnZSA9IGRvbVN0b3JhZ2U7CiB9CiAKIFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIGdldCBpdGVtVVJMKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiAic3RvcmFnZTovLyIgKyB0aGlzLl9kb21TdG9yYWdlLmRvbWFp
biArICIvIiArICh0aGlzLl9kb21TdG9yYWdlLmlzTG9jYWxTdG9yYWdlID8gImxvY2FsIiA6ICJz
ZXNzaW9uIik7CisgICAgICAgIHJldHVybiAic3RvcmFnZTovLyIgKyB0aGlzLl9kb21TdG9yYWdl
LnNlY3VyaXR5T3JpZ2luICsgIi8iICsgKHRoaXMuX2RvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2Ug
PyAibG9jYWwiIDogInNlc3Npb24iKTsKICAgICB9LAogCiAgICAgb25zZWxlY3Q6IGZ1bmN0aW9u
KHNlbGVjdGVkQnlVc2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGVhZGQzZDg3
YmZmODk0NTg5OTY2NTMxMjM2N2ZhNDBjOTYwZjI2OTkuLjNmMjZiMTE0N2YxNTZjOWI1MzQ5MTE2
NDA0NjVjYzI4ZTYzZDcwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc2Miw3
ICs3NjIsNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFn
ZShwYWdlLCBzdG9yYWdlQXJlYS5nZXQoKSwgZmFsc2UsIG1fZnJhbWUpOwogCiAgICAgbV9zZXNz
aW9uU3RvcmFnZSA9IFN0b3JhZ2U6OmNyZWF0ZShtX2ZyYW1lLCBzdG9yYWdlQXJlYS5yZWxlYXNl
KCkpOwogICAgIHJldHVybiBtX3Nlc3Npb25TdG9yYWdlLmdldCgpOwpAQCAtODAyLDcgKzgwMSw2
IEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6bG9jYWxTdG9yYWdlKEV4Y2VwdGlvbkNvZGUmIGVjKSBj
b25zdAogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZShwYWdlLCBz
dG9yYWdlQXJlYS5nZXQoKSwgdHJ1ZSwgbV9mcmFtZSk7CiAKICAgICBtX2xvY2FsU3RvcmFnZSA9
IFN0b3JhZ2U6OmNyZWF0ZShtX2ZyYW1lLCBzdG9yYWdlQXJlYS5yZWxlYXNlKCkpOwogICAgIHJl
dHVybiBtX2xvY2FsU3RvcmFnZS5nZXQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189464</attachid>
            <date>2013-02-20 23:52:58 -0800</date>
            <delta_ts>2013-02-21 01:36:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109572-20130221114918.patch</filename>
            <type>text/plain</type>
            <size>78523</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdlMjc1OGNhYjJlNTM2
NzVlZTFhZDYyZWE0NGVkYThhMDcyZjI5Ni4uMjk0ZWY4ZGNkOTUxOTE3NTc3OWYwYTM3OTUyZmU2
MDYwMTk2YzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEwMCBAQAogMjAxMy0wMi0yMCAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IExvY2FsL3Nlc3Npb24gc3RvcmFnZSB0cmVlIGl0ZW1zIGluIHRoZSBSZXNvdXJjZXMg
cGFuZWwgYWZ0ZXIgcGFnZSByZWZyZXNoIGFyZSBub3Qgc2hvd24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU3MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZU1lbW9yeVR5cGVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXJGcm9u
dGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnJlc3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OmlzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpnZXRET01TdG9yYWdlSXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50OjpzZXRET01TdG9yYWdlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnJlbW92ZURPTVN0b3JhZ2VJdGVtKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkRGlzcGF0Y2hET01TdG9yYWdl
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpmaW5k
U3RvcmFnZUFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2UuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZmluZEZyYW1lV2l0aFNl
Y3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKEluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRPTVN0b3JhZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uuc3Rv
cmFnZUlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZS5nZXQg
aWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlLmdldCBzZWN1
cml0eU9yaWdpbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUu
Z2V0SXRlbXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlLnNl
dEl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlLnJlbW92
ZUl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fc2VjdXJpdHlPcmlnaW5B
ZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5f
c2VjdXJpdHlPcmlnaW5SZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
TW9kZWwucHJvdG90eXBlLl9zdG9yYWdlS2V5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlTW9kZWwucHJvdG90eXBlLl9kb21TdG9yYWdlSXRlbXNDbGVhcmVkKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLl9kb21TdG9yYWdlSXRlbVJl
bW92ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUu
X2RvbVN0b3JhZ2VJdGVtQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUuc3RvcmFnZUZvcklkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlTW9kZWwucHJvdG90eXBlLnN0b3JhZ2VzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTVN0b3JhZ2VJdGVtc1ZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUud2FzU2hvd24pOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLnVwZGF0ZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUuX3Nob3dET01TdG9yYWdlSXRl
bXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBl
Ll9kYXRhR3JpZEZvckRPTVN0b3JhZ2VJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUuX3JlZnJlc2hCdXR0b25DbGlja2VkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VtcHR5Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FbXB0eVZpZXcucHJvdG90eXBlLl9wcm9jZXNzV2lsbEhpZGUpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
LnByb3RvdHlwZS5faW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2Vz
UGFuZWwucHJvdG90eXBlLl9mcmFtZU5hdmlnYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9kb21TdG9yYWdlQWRkZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZVJlbW92ZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVE
T01TdG9yYWdlVHJlZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90
eXBlLmdldCBpdGVtVVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6bG9jYWxTdG9yYWdlKToKKworMjAxMy0wMi0yMCAgQWxleGFuZGVyIFBhdmxv
diAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJv
ZHVjZSBTZWN1cml0eU9yaWdpbkFkZGVkIGFuZCBTZWN1cml0eU9yaWdpblJlbW92ZWQgZXZlbnRz
IGludG8gUmVzb3VyY2VUcmVlTW9kZWwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMDIzMgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZiYzBiZTJk
ZWQ2Y2I2YjJiZTE1ZGYyNmY1NzM3NTNkNWY4OTUxYjMuLjY3OWZlNzk1OThlN2UyNjc4M2YyNGUw
OGM3ODQ1MjBmZWQ3NDAyMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjIzLDcgKzE2MjMs
NiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDVhMDg4Yzk5ZjdhOWU0NzQxODk3YzIzZThkMDM4MDFlY2ZhNThi
OWMuLjY4OTg1MWU5MWY0N2U5ZTE2NTdhNWJlZjBmY2M3ZWRjOGZiZWMzYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzgzOCw4ICszODM4LDYgQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2Vu
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
aGFubmVsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZTQyNTZjY2RlODFmNzE5OTY3MzJmZmExOGM2NmVj
NzA5MDFiNDEyOS4uMjQzYWNkZmM5NGQ0NThjNWRiMWJmNDY3ZjEyMDc3OGE5Nzg3MjExYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCkBAIC03OTgsNyArNzk4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9y
L0luc3BlY3RvckRPTUFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cCBcCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgXAogICAg
IGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JI
ZWFwUHJvZmlsZXJBZ2VudC5jcHAgXApAQCAtMTk5OSw3ICsxOTk4LDYgQEAgSEVBREVSUyArPSBc
CiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9y
L0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5oIFwKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBcCiAgICAg
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhNWUzNTQw
MWJkM2Q3Y2U3NzgwNzNkMTVkOWE3MThhZWI3YmY5ZjEuLjVlYmI1ZGVlYmU5MTg0M2UxZDgyZGI4
MTdiOWQ4MTcyMDQ2NmI5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NTksOCArMTg1OSw2IEBA
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCcsCiAg
ICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCcsCi0gICAgICAg
ICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAnLAotICAgICAg
ICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNw
ZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VJbnN0cnVtZW50YXRpb24uaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRl
cgppbmRleCA5NTU4YWJiYTA2NzAwMTMwNjg0ODcwNjI0NDk0ZGI0NmNlZDZjOTY0Li41Zjk4MDA2
MDZmYWNkMDljYzllZjNjYjcxOGVjM2RlNjIwMjc5Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLm9yZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAg
LTE5MTg0LDcgKzE5MTg0LDYgQEAgX19aTjNXVEYxN0hhc2hNYXBUcmFuc2xhdG9ySVN0NHBhaXJJ
TlNfNlJlZlB0cklON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luRUVFTlMyX0kKIF9fWk43V2ViQ29y
ZTI0SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uMjBkaWRVc2VET01TdG9yYWdlSW1wbEVQTlNfMTlJ
bnN0cnVtZW50aW5nQWdlbnRzRVBOU18xMVN0b3JhZ2VBcmVhRWJQTlNfNUZyYW1lRQogX19aTjdX
ZWJDb3JlMjRJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQxNmRpZFVzZURPTVN0b3JhZ2VFUE5TXzEx
U3RvcmFnZUFyZWFFYlBOU181RnJhbWVFCiBfX1pON1dlYkNvcmU3U3RvcmFnZTZjcmVhdGVFUE5T
XzVGcmFtZUVOM1dURjEwUGFzc1JlZlB0cklOU18xMVN0b3JhZ2VBcmVhRUVFCi1fX1pON1dlYkNv
cmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUMxRVBOU183U3RvcmFnZUViUE5TXzVGcmFt
ZUUKIF9fWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxP
YmplY3RFUE5TXzdTdG9yYWdlRQogX19aTjdXZWJDb3JlNHdyYXBJTlNfOUpTU3RvcmFnZUVOU183
U3RvcmFnZUVFRU4zSlNDN0pTVmFsdWVFUE5TM185RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RVBUMF8KIF9fWk43V2ViQ29yZTE1Z2V0RE9NU3RydWN0dXJlSU5TXzlKU1N0b3JhZ2VF
RUVQTjNKU0M5U3RydWN0dXJlRVBOUzJfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVj
dEUKQEAgLTE5MjA3LDcgKzE5MjA2LDYgQEAgX19aTjdXZWJDb3JlMTRKU1N0b3JhZ2VPd25lcjI2
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHNFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm8KIF9fWk43
V2ViQ29yZTE0SlNTdG9yYWdlT3duZXI4ZmluYWxpemVFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm93
bkVFRVB2CiBfX1pON1dlYkNvcmU5SlNTdG9yYWdlRDFFdgogX19aTjdXZWJDb3JlN1N0b3JhZ2VE
MUV2Ci1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUQwRXYKIF9fWk5L
N1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCiBfX1pON1dlYkNvcmU5SlNTdG9y
YWdlMTBuYW1lR2V0dGVyRVBOM0pTQzlFeGVjU3RhdGVFTlMxXzdKU1ZhbHVlRVJLTlMxXzEwSWRl
bnRpZmllckUKIF9fWk5LN1dlYkNvcmU3U3RvcmFnZTdnZXRJdGVtRVJLTjNXVEY2U3RyaW5nRQpA
QCAtMjAzNzYsNyArMjAzNzQsNiBAQCBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5T
XzI1SlNDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdAogX19aTjdXZWJD
b3JlMzBqc0RPTVdpbmRvd0ZpbGVMaXN0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBf
N0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMTBKU0ZpbGVMaXN0MTRn
ZXRDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9iamVjdEUKIF9f
Wk43V2ViQ29yZTE3Z2V0RE9NQ29uc3RydWN0b3JJTlNfMjFKU0ZpbGVMaXN0Q29uc3RydWN0b3JF
RUVQTjNKU0M4SlNPYmplY3RFUE5TMl85RXhlY1N0YXRlRVBLTlNfMTdKU0RPTUdsb2JhbE9iamVj
dEUKLV9fWk5LN1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTE3aXNTYW1lSG9z
dEFuZFR5cGVFUE5TXzVGcmFtZUViCiBfX1pON1dlYkNvcmU1M2pzRE9NV2luZG93U1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbENvbnN0cnVjdG9yRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdK
U1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTMzSlNTVkdQYXRoU2VnQ3Vy
dmV0b0N1YmljU21vb3RoUmVsMTRnZXRDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFf
MTRKU0dsb2JhbE9iamVjdEUKIF9fWk43V2ViQ29yZTE3Z2V0RE9NQ29uc3RydWN0b3JJTlNfNDRK
U1NWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWxDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09i
amVjdEVQTlMyXzlFeGVjU3RhdGVFUEtOU18xN0pTRE9NR2xvYmFsT2JqZWN0RQpAQCAtMjc0MDMs
MjMgKzI3NDAwLDE0IEBAIF9fWk43V2ViQ29yZTE4SW5zcGVjdG9yUGFnZUFnZW50MTBmcmFtZUZv
cklkRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMThJbnNwZWN0b3JQYWdlQWdlbnQxNXJl
c291cmNlQ29udGVudEVQTjNXVEY2U3RyaW5nRVBOU181RnJhbWVFUktOU180S1VSTEVTM18KIF9f
Wk43V2ViQ29yZUwxOGRlY29kZU1haW5SZXNvdXJjZUVQTlNfNUZyYW1lRVBOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmVMMThkZWNvZGVTaGFyZWRCdWZmZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNf
MTJTaGFyZWRCdWZmZXJFRUVSS05TMF82U3RyaW5nRVBTNF8KLV9fWk43V2ViQ29yZTI3SW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlNGJpbmRFUE5TXzE3SW5zcGVjdG9yRnJvbnRlbmRFCiBfX1pO
N1dlYkNvcmUxN0luc3BlY3RvckZyb250ZW5kMTBET01TdG9yYWdlMTNhZGRET01TdG9yYWdlRU4z
V1RGMTBQYXNzUmVmUHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUxNVN0
b3JhZ2VBcmVhU3luYzEzc2NoZWR1bGVDbGVhckV2CiBfX1pON1dlYkNvcmUyNkluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyMzFET01TdG9yYWdlX2dldERPTVN0b3JhZ2VFbnRyaWVzRWxQTlNfMTVJ
bnNwZWN0b3JPYmplY3RFCiBfX1pON1dlYkNvcmUyNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDIw
Z2V0RE9NU3RvcmFnZUVudHJpZXNFUE4zV1RGNlN0cmluZ0VpUE5TMV82UmVmUHRySU5TXzE0SW5z
cGVjdG9yQXJyYXlFRUUKLV9fWk4zV1RGOUhhc2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklO
N1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4
dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpFRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNo
VHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0UxNmxvb2t1cEZvcldyaXRpbmdFUktpCi1fX1pOM1dU
RjlIYXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFz
aElqRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVT
RF9FM2FkZElpUzVfTlNfMTdIYXNoTWFwVHJhbnNsYXRvcklTNl9TRl9TQV9FRUVFUzFfSU5TXzE3
SGFzaFRhYmxlSXRlcmF0b3JJaVM2X1M4X1NBX1NGX1NEX0VFYkVSS1RfUktUMF8KLV9fWk4zV1RG
OUhhc2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNo
SWpFRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNE
X0U0ZmluZElpTlNfMjJJZGVudGl0eUhhc2hUcmFuc2xhdG9ySWlTNl9TQV9FRUVFTlNfMTdIYXNo
VGFibGVJdGVyYXRvcklpUzZfUzhfU0FfU0ZfU0RfRUVSS1RfCi1fX1pOM1dURjlIYXNoVGFibGVJ
aVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBh
aXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FNWNsZWFyRXYK
LV9fWk4zV1RGOUhhc2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5T
XzdJbnRIYXNoSWpFRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19J
UzVfRUVFRVNEX0U2cmVoYXNoRWkKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlMzFzdGFydFJlcG9ydGluZ0NoYW5nZXNUb0Zyb250ZW5kRXYKIF9fWk5LN1dlYkNvcmU3
U3RvcmFnZTNrZXlFagogX19aTks3V2ViQ29yZTE1U3RvcmFnZUFyZWFJbXBsM2tleUVqCiBfX1pO
N1dlYkNvcmUxMFN0b3JhZ2VNYXAza2V5RWoKIF9fWk43V2ViQ29yZTEwU3RvcmFnZU1hcDE4c2V0
SXRlcmF0b3JUb0luZGV4RWoKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlZXFFUktOU18xM0V2ZW50TGlzdGVuZXJFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZTZ1bmJpbmRFdgogX19aTjdXZWJDb3JlMTRDb25zb2xlTWVzc2FnZTEzYWRk
VG9Gcm9udGVuZEVQTlNfMTdJbnNwZWN0b3JGcm9udGVuZDdDb25zb2xlRVBOU18yMUluamVjdGVk
U2NyaXB0TWFuYWdlckUKIF9fWk43V2ViQ29yZTE3SW5zcGVjdG9yRnJvbnRlbmQ3Q29uc29sZTEy
bWVzc2FnZUFkZGVkRU4zV1RGMTBQYXNzUmVmUHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBf
X1pON1dlYkNvcmUyNkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyMTFQYWdlX3JlbG9hZEVsUE5T
XzE1SW5zcGVjdG9yT2JqZWN0RQpAQCAtMzY0MDcsMTAgKzM2Mzk1LDggQEAgX19aVFZON1dlYkNv
cmUxMVR5cGVCdWlsZGVyNUFycmF5SU5TMF8zRE9NNE5vZGVFRUUKIF9fWlRWTjdXZWJDb3JlMThJ
bnNwZWN0b3JCYXNlQWdlbnRJTlNfMTdJbnNwZWN0b3JET01BZ2VudEVFRQogX19aVFZON1dlYkNv
cmU1VGltZXJJTlNfMjhSZXZhbGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrRUVFCiBfX1pUVk43V2Vi
Q29yZTE4SW5zcGVjdG9yQmFzZUFnZW50SU5TXzI1SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudEVF
RQotX19aVFZOM1dURjIxTWVtb3J5SW5zdHJ1bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMjdJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUUKIF9fWlRWTjdXZWJDb3JlMTFUeXBlQnVpbGRl
cjVBcnJheUlOUzFfSU4zV1RGNlN0cmluZ0VFRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVjdG9y
QmFzZUFnZW50SU5TXzI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RUVFCi1fX1pON1dlYkNvcmUy
N0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTE0c19uZXh0VW51c2VkSWRFCiBfX1pUVk4zV1RG
MjFNZW1vcnlJbnN0cnVtZW50YXRpb243V3JhcHBlcklON1dlYkNvcmUxMVN0b3JhZ2VBcmVhRUVF
CiBfX1pUVk43V2ViQ29yZTVUaW1lcklOU18yOEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2tF
RUUKIF9fWlRWTjdXZWJDb3JlMjBGcm9udGVuZE1lbnVQcm92aWRlckUKQEAgLTM4NDU2LDcgKzM4
NDQyLDYgQEAgX19aTjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXM5SW5zcGVjdG9yRQogX19a
TjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMxOUluc3BlY3RvckNvbnRyb2xsZXJFCiBfX1pO
N1dlYkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczIwSW5zcGVjdG9yTWVtb3J5QWdlbnRFCiBfX1pO
N1dlYkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RQot
X19aTjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMyOEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZXNFCiBfX1pON1dlYkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczE2SW5zcGVjdG9yT3Zlcmxh
eUUKIF9fWk43V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjJJbnNwZWN0b3JQcm9maWxlckFn
ZW50RQogX19aTjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMyMkluc3BlY3RvckRlYnVnZ2Vy
QWdlbnRFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IDM2MzI0YmNhOWE4YjhiNDQ4ZmM2MGFmNjM4ZTEzMjQxMzBjODBiOTguLjg3YmViYjAzMjc3
ZTViMzIyZTM5YzUyY2U3ZTEzN2QxZDQxNWJmNzEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NjEwMywzMCArNzYxMDMsNiBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxp
bnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVD
b25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagppbmRleCBhYzRjMDNmY2MzMzFjYjNlNjNmNzQ1NDRjMDdkOWQ5NzJiNzFhYzVmLi5m
OTZhMGFjZTE3OTE0OTMwYTE5Mzc0MzBhMjU5ZmM3YmQ4MzFjZDM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTU2ODQsOSArNTY4NCw2
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCI+Ci0gICAgICA8RXhj
bHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9
PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5
c3RlbUFnZW50LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CkBAIC04Mzc3LDcgKzgzNzQsNiBAQAogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTUFnZW50LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NRGVidWdn
ZXJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZyb250ZW5kQ2hhbm5l
bC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZy
b250ZW5kQ2xpZW50LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggNzcyNzY2Mjc2YjcyYjBiOGQ1Mzk2
NDFlYjkwNjVmZjllZmZkMTUxZS4uNWI5NmYzYTJhZWMyMWI4OWFkOTBjZTcwZjdlZDA3ODNlM2M3
ZTBkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjQ4Myw5ICs2NDgzLDYgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIj4KICAg
ICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0
ZW1BZ2VudC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KQEAgLTEzNzkxLDkgKzEzNzg4LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCI+CiAgICAgICA8RmlsdGVy
Pmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIj4KLSAgICAg
IDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmgiPgog
ICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
NmNlYzQwMWZjNmMxNGM4NmM4NDAzZTA5NmJlZDEwYzcxOTM4MThiLi4yMmVjZjVlZWQ0OWMzODU2
MGVmNjM0ZGM1MDYwNGY4MjZkZTJlYmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTE5LDggKzExMTksNiBAQAogCQk0MUUx
QjFEMTBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNCMEZGNTk4NjkwMDU3NkIzQiAv
KiBBYnN0cmFjdFdvcmtlci5oICovOyB9OwogCQk0MUUxQjFEMzBGRjU5ODY5MDA1NzZCM0IgLyog
U2hhcmVkV29ya2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRTFCMUNEMEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuY3BwICovOyB9
OwogCQk0MUUxQjFENDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDRTBGRjU5ODY5MDA1
NzZCM0IgLyogU2hhcmVkV29ya2VyLmggKi87IH07Ci0JCTQxRjA2MTc0MEY1RjAwQUMwMEEwN0VB
QyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCAqLzsgfTsKLQkJNDFGMDYxNzUwRjVGMDBBQzAwQTA3
RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE3MzBGNUYwMEFDMDBBMDdFQUMgLyog
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCAqLzsgfTsKIAkJNDFGMDYxOEUwRjVGMDY5
ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1l
c3NhZ2UuaCAqLzsgfTsKIAkJNDFGMDYxOEYwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNz
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RjA2MThEMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi87IH07CiAJCTQx
RjA2MjE0MEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjIxMjBGNUYx
OTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oICovOyB9OwpAQCAtODUw
Miw4ICs4NTAwLDYgQEAKIAkJNDFFMUIxQ0QwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTaGFyZWRXb3JrZXIu
Y3BwOyBwYXRoID0gd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUUxQjFDRTBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZFdvcmtlci5oOyBwYXRoID0gd29y
a2Vycy9TaGFyZWRXb3JrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIx
Q0YwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBu
YW1lID0gU2hhcmVkV29ya2VyLmlkbDsgcGF0aCA9IHdvcmtlcnMvU2hhcmVkV29ya2VyLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFGMDYxNzIwRjVGMDBBQzAwQTA3RUFDIC8q
IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDFGMDYxNzMwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc29sZU1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFGMDYxOEQwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNvbGVNZXNzYWdl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYyMTIwRjVGMTkyNjAwQTA3
RUFDIC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTUyNjMsOCArMTUyNTksNiBAQAogCQkJCUYzRDRDNDc3MTJFMDc2NjMw
MDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggKi8sCiAJCQkJN0E3NEVDQjgx
MDE4MzlBNTAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAgKi8sCiAJCQkJ
N0E3NEVDQjkxMDE4MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oICov
LAotCQkJCTQxRjA2MTczMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2UuY3BwICovLAotCQkJCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UuaCAqLywKIAkJCQkxNUQxN0QxRTE0NzIzMUVCMDA1RUJDQTYgLyog
SW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCAqLywKIAkJCQkxNUQxN0QxRjE0NzIzMUVCMDA1
RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggKi8sCiAJCQkJMjI3Nzc3NUYxMzQ1
REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICovLApAQCAtMjQ3NjAs
NyArMjQ3NTQsNiBAQAogCQkJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0b3JE
T01BZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNENEM0NzkxMkUwNzY2MzAwM0RBMTUwIC8q
IEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBNzRFQ0JC
MTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxRjA2MTc0MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1RDE3RDIyMTQ3MjMxRUIwMDVFQkNBNiAv
KiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3OERBMjBF
MTUyMEVCOEMwMDYxNDFDMSAvKiBJbnNwZWN0b3JGcm9udGVuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMjI3Nzc3NjAxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yODA1NCw3ICsyODA0Nyw2IEBACiAJCQkJN0EyNDU4N0IxMDIx
RUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUYzRDRDNDc4MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JBMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFGMDYxNzUwRjVGMDBB
QzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNUQxN0QyMTE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGNEY1RkZCMTFDQkQyRTEwMEExODZCRiAvKiBJ
bnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0Qzc1ODExMjk0RkY2
MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmNwcAppbmRleCA0MTU5M2VhODY5MThkNTkwNzk4ZjQxMTZlMDhlODAxNmJjZDdjYWIyLi4y
ZDg1MWEyZjU1YTA5ZGUzNWE2M2VmM2IzMzY0OGUzMzQyZjcwYTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC02MCw3
ICs2MCw2IEBAIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3Ig
PSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJ
bnNwZWN0b3JDb250cm9sbGVyID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yTWVtb3J5QWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsK
IE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsKLU1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5
cGVzOjpJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VzID0gIldlYkluc3BlY3RvciI7CiBNZW1v
cnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yT3ZlcmxheSA9ICJXZWJJ
bnNwZWN0b3IiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3BlY3Rv
clByb2ZpbGVyQWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gIldlYkluc3BlY3RvciI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaApp
bmRleCBhYmNmMTc2MTYxZGZmNTk2MDlhOTA4ZWNiNjE2MTcyNGI0YjE5YWVlLi4xMzY0MTlmZDI3
MGY3MTk2YjA4NWY4ZTEwZmVkNTY2ZjZmYzZmYTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckNvbnRyb2xsZXI7CiAg
ICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yTWVtb3J5QWdlbnQ7CiAgICAgc3Rh
dGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OwotICAgIHN0YXRp
YyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXM7CiAgICAgc3Rh
dGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yT3ZlcmxheTsKICAgICBzdGF0aWMgTWVtb3J5
T2JqZWN0VHlwZSBJbnNwZWN0b3JQcm9maWxlckFnZW50OwogICAgIHN0YXRpYyBNZW1vcnlPYmpl
Y3RUeXBlIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYzllNjNlZjQ5ODc2NWUyZTdkODFm
ZDYwMDA4ODFhMTJjZDU3MjZmNC4uNTZhZGM0MGJmZjkzOGZlYWQ3MzljY2UxMjE0MmI3ODQyNDNl
YTBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNv
dXJjZS5qcwpAQCAtMTg1LDcgKzE4NSw3IEBAIEluamVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGNhc2UgIlN0b3JhZ2UiOgogICAgICAgICAgICAgICAgIHZhciBzdG9yYWdl
SWQgPSBJbmplY3RlZFNjcmlwdEhvc3Quc3RvcmFnZUlkKG9iamVjdCkKICAgICAgICAgICAgICAg
ICBpZiAoc3RvcmFnZUlkKQotICAgICAgICAgICAgICAgICAgICBoaW50cy5kb21TdG9yYWdlSWQg
PSBzdG9yYWdlSWQ7CisgICAgICAgICAgICAgICAgICAgIGhpbnRzLmRvbVN0b3JhZ2VJZCA9IEpT
T04ucGFyc2Uoc3RvcmFnZUlkKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3QuaW5zcGVjdChvYmplY3RJZCwgaGludHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGNiYTFlZGViZGJlODFiZmUx
NWRjNzNhOTM4YjA4N2VjNzYwMzhiYjAuLjQ2Y2Q5NjE1MmZiMGQ4Nzg3M2MyMWFjYTY2ODkyNDNk
OTc3NDU2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE0
MjMsMjIgKzE0MjMsMTYgQEAKICAgICB7CiAgICAgICAgICJkb21haW4iOiAiRE9NU3RvcmFnZSIs
CiAgICAgICAgICJoaWRkZW4iOiB0cnVlLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiUXVlcnkg
YW5kIG1vZGlmeSBET00gc3RvcmFnZS4gU2Vzc2lvbi9sb2NhbCBzdG9yYWdlcyBhcmUgbWF0ZXJp
YWxpemVkIHVwb24gdGhlIGZpcnN0IGFjY2VzcyBpbnNpZGUgYSBmcmFtZSB3aXRoIHRoZSBjb3Jy
ZXNwb25kaW5nIHNlY3VyaXR5IG9yaWdpbi4iLAogICAgICAgICAidHlwZXMiOiBbCiAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIlN0b3JhZ2VJZCIsCi0gICAgICAgICAgICAg
ICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVW5p
cXVlIGlkZW50aWZpZXIgb2YgRE9NIHN0b3JhZ2UgZW50cnkuIiwKLSAgICAgICAgICAgICAgICAi
aGlkZGVuIjogdHJ1ZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAiaWQiOiAiRW50cnkiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0g
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGVudHJ5LiIsCisgICAg
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGlkZW50aWZpZXIuIiwKICAg
ICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRG9jdW1lbnQgb3JpZ2luLiIgfSwKLSAgICAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJpc0xvY2FsU3RvcmFnZSIsICJ0eXBlIjogImJvb2xlYW4iLCAi
ZGVzY3JpcHRpb24iOiAiVHJ1ZSBmb3IgbG9jYWwgc3RvcmFnZS4iIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiLCAiZGVzY3JpcHRpb24i
OiAiRW50cnkgaWQgZm9yIGZ1cnRoZXIgcmVmZXJlbmNlLiIgfQorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInNlY3VyaXR5T3JpZ2luIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlNlY3VyaXR5IG9yaWdpbiBmb3IgdGhlIHN0b3JhZ2UuIiB9LAorICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImlzTG9jYWxTdG9yYWdlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJk
ZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBzdG9yYWdlIGlzIGxvY2FsIHN0b3JhZ2UgKG5vdCBz
ZXNzaW9uIHN0b3JhZ2UpLiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAg
ICAgICAgICAgICB7CkBAIC0xNDU5LDcgKzE0NTMsNyBAQAogICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJEaXNhYmxlcyBzdG9yYWdlIHRyYWNraW5nLCBwcmV2ZW50cyBzdG9yYWdlIGV2
ZW50cyBmcm9tIGJlaW5nIHNlbnQgdG8gdGhlIGNsaWVudC4iCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImdldERPTVN0b3JhZ2VFbnRyaWVz
IiwKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRET01TdG9yYWdlSXRlbXMiLAogICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0b3JhZ2VJZCIsICIkcmVmIjogIlN0b3JhZ2VJZCIgfQogICAgICAgICAgICAgICAgIF0sCkBA
IC0xNDkxLDEyICsxNDg1LDYgQEAKICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJhZGRET01TdG9yYWdlIiwKLSAg
ICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdG9yYWdlIiwgIiRyZWYiOiAiRW50cnkiIH0KLSAgICAgICAgICAgICAgICBdCi0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImRvbVN0
b3JhZ2VJdGVtc0NsZWFyZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIsICAiJHJlZiI6ICJTdG9yYWdl
SWQiIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJ
bk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
CmluZGV4IDY3Y2VhNDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2YjgyMDk5MzkuLjFlYjhlMjE1
YzVlNjQyOGU3OGNhYWVmN2FkMGFiOTkyNmVkNzc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtNDksNyArNDksNiBAQAogI2luY2x1
ZGUgIkluc3BlY3RvckRPTUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01EZWJ1Z2dl
ckFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIgotI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJj
ZS5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggODU0ODM2
MjMxMDFlZDdhNThmOGMyYjQ5NTBlNTUxYzI4MzEwMzBkYy4uZmRjNDRjZjhjNzM3YWVmOGVkMDc0
YjY0YTA2ZmRhZWViNTFkNzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIEluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBp
bnNwZWN0b3JDCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIG1fYWdlbnRzLmFwcGVuZChJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIHBhZ2VBZ2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCi0gICAgT3duUHRyPEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQo
KSkpOworICAgIE93blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2Vu
dFB0cihJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2Vu
dHMuZ2V0KCksIG1fcGFnZUFnZW50LCBtX3N0YXRlLmdldCgpKSk7CiAgICAgSW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7
CiAgICAgbV9hZ2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuY3BwCmluZGV4IDA2YzQyNzBlNzIyYTkyNjU2NGU3YmJiZjdiMWNmOGJlNzZmNzFmM2EuLmY5
Yjg2MWU5YjMwODU2NWExNDM1ZGEzZjQ3MTY5Mzg1YWFjM2ZkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC0z
OCwxMyArMzgsMTcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAi
SW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhLmgiCisjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxs
YmFjay5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAt
NzEsMTAgKzc1LDEwIEBAIHN0YXRpYyBib29sIGhhZEV4Y2VwdGlvbihFeGNlcHRpb25Db2RlIGVj
LCBFcnJvclN0cmluZyogZXJyb3JTdHJpbmcpCiAgICAgfQogfQogCi1JbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCitJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VB
Z2VudCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFz
ZUFnZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4oIkRPTVN0b3JhZ2UiLCBpbnN0cnVtZW50
aW5nQWdlbnRzLCBzdGF0ZSkKKyAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1f
ZnJvbnRlbmQoMCkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCh0aGlzKTsKIH0KQEAgLTkyLDU1
ICs5Niw0MyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RnJvbnRlbmQoSW5z
cGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dDo6Y2xlYXJGcm9udGVuZCgpCiB7Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0
b3IgZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoRE9NU3RvcmFn
ZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBk
b21TdG9yYWdlRW5kOyArK2l0KQotICAgICAgICBpdC0+dmFsdWUtPnVuYmluZCgpOwogICAgIG1f
ZnJvbnRlbmQgPSAwOwogICAgIGRpc2FibGUoMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpyZXN0b3JlKCkKIHsKLSAgICBtX2VuYWJsZWQgPSAgbV9zdGF0ZS0+Z2V0Qm9v
bGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCk7Cit9CisK
K2Jvb2wgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojppc0VuYWJsZWQoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N0YXRlLT5nZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9y
YWdlQWdlbnRFbmFibGVkKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmVu
YWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAgaWYgKG1fZW5hYmxlZCkKKyAgICBpZiAoaXNFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2VuYWJsZWQgPSB0cnVlOwotICAgIG1fc3Rh
dGUtPnNldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJs
ZWQsIG1fZW5hYmxlZCk7CiAKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBy
ZXNvdXJjZXNFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNv
dXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gcmVzb3Vy
Y2VzRW5kOyArK2l0KQotICAgICAgICBpdC0+dmFsdWUtPmJpbmQobV9mcm9udGVuZCk7CisgICAg
bV9zdGF0ZS0+c2V0Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50
RW5hYmxlZCwgdHJ1ZSk7CisgICAgcmVzdG9yZSgpOwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAgaWYgKCFtX2VuYWJsZWQp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX2VuYWJsZWQgPSBmYWxzZTsKLSAgICBtX3N0YXRlLT5z
ZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkLCBt
X2VuYWJsZWQpOworICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6
OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIGZhbHNlKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OmdldERPTVN0b3JhZ2VFbnRyaWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlw
ZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiA+JiBlbnRyaWVzKQordm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OmdldERPTVN0b3JhZ2VJdGVtcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIFJlZlB0cjxUeXBlQnVp
bGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiA+JiBpdGVtcykKIHsKLSAg
ICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIHN0b3JhZ2VSZXNvdXJjZSA9IGdldERPTVN0
b3JhZ2VSZXNvdXJjZUZvcklkKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKCFzdG9yYWdlUmVzb3VyY2Up
IHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIlN0b3JhZ2UgcmVzb3VyY2Ugbm90IGZvdW5kIGZv
ciB0aGUgZ2l2ZW4gc3RvcmFnZSBpZGVudGlmaWVyIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBGcmFtZSogZnJhbWUgPSBzdG9yYWdlUmVzb3VyY2UtPmZyYW1lKCk7Ci0gICAgaWYgKCFm
cmFtZSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRnJhbWUgbm90IGZvdW5kIjsKKyAgICBG
cmFtZSogZnJhbWU7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJlYSA9IGZpbmRT
dG9yYWdlQXJlYShlcnJvclN0cmluZywgc3RvcmFnZUlkLCBmcmFtZSk7CisgICAgaWYgKCFzdG9y
YWdlQXJlYSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAotICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiA+IHN0b3JhZ2VFbnRyaWVzID0g
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID46OmNyZWF0ZSgp
OworICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmlu
Zz4gPiA+IHN0b3JhZ2VJdGVtcyA9IFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJy
YXk8U3RyaW5nPiA+OjpjcmVhdGUoKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAg
IFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSA9IHN0b3JhZ2VSZXNvdXJjZS0+c3RvcmFnZUFyZWEo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RvcmFnZUFyZWEtPmxlbmd0aChlYywg
ZnJhbWUpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIG5hbWUoc3RvcmFnZUFyZWEtPmtleShpLCBl
YywgZnJhbWUpKTsKICAgICAgICAgaWYgKGhhZEV4Y2VwdGlvbihlYywgZXJyb3JTdHJpbmcpKQpA
QCAtMTUxLDg3ICsxNDMsNjQgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmdldERP
TVN0b3JhZ2VFbnRyaWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY28KICAgICAgICAgUmVm
UHRyPFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gZW50cnkgPSBUeXBlQnVpbGRlcjo6QXJy
YXk8U3RyaW5nPjo6Y3JlYXRlKCk7CiAgICAgICAgIGVudHJ5LT5hZGRJdGVtKG5hbWUpOwogICAg
ICAgICBlbnRyeS0+YWRkSXRlbSh2YWx1ZSk7Ci0gICAgICAgIHN0b3JhZ2VFbnRyaWVzLT5hZGRJ
dGVtKGVudHJ5KTsKKyAgICAgICAgc3RvcmFnZUl0ZW1zLT5hZGRJdGVtKGVudHJ5KTsKICAgICB9
Ci0gICAgZW50cmllcyA9IHN0b3JhZ2VFbnRyaWVzLnJlbGVhc2UoKTsKKyAgICBpdGVtcyA9IHN0
b3JhZ2VJdGVtcy5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlk
LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCogc3VjY2VzcykK
K3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzZXRET01TdG9yYWdlSXRlbShFcnJvclN0
cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKQogewotICAgIElu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNlID0gZ2V0RE9NU3RvcmFn
ZVJlc291cmNlRm9ySWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoc3RvcmFnZVJlc291cmNlKSB7Ci0g
ICAgICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgc3RvcmFnZVJlc291
cmNlLT5zdG9yYWdlQXJlYSgpLT5zZXRJdGVtKGtleSwgdmFsdWUsIGV4Y2VwdGlvbiwgc3RvcmFn
ZVJlc291cmNlLT5mcmFtZSgpKTsKLSAgICAgICAgKnN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwotICAg
IH0gZWxzZQorICAgIEZyYW1lKiBmcmFtZTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3Jh
Z2VBcmVhID0gZmluZFN0b3JhZ2VBcmVhKDAsIHN0b3JhZ2VJZCwgZnJhbWUpOworICAgIGlmICgh
c3RvcmFnZUFyZWEpIHsKICAgICAgICAgKnN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKKyAgICBzdG9yYWdl
QXJlYS0+c2V0SXRlbShrZXksIHZhbHVlLCBleGNlcHRpb24sIGZyYW1lKTsKKyAgICAqc3VjY2Vz
cyA9ICFleGNlcHRpb247CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZW1v
dmVET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBj
b25zdCBTdHJpbmcmIGtleSwgYm9vbCogc3VjY2VzcykKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpyZW1vdmVET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBib29sKiBzdWNj
ZXNzKQogewotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNl
ID0gZ2V0RE9NU3RvcmFnZVJlc291cmNlRm9ySWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoc3RvcmFn
ZVJlc291cmNlKSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKLSAgICAg
ICAgc3RvcmFnZVJlc291cmNlLT5zdG9yYWdlQXJlYSgpLT5yZW1vdmVJdGVtKGtleSwgZXhjZXB0
aW9uLCBzdG9yYWdlUmVzb3VyY2UtPmZyYW1lKCkpOwotICAgICAgICAqc3VjY2VzcyA9ICFleGNl
cHRpb247Ci0gICAgfSBlbHNlCisgICAgRnJhbWUqIGZyYW1lOworICAgIFJlZlB0cjxTdG9yYWdl
QXJlYT4gc3RvcmFnZUFyZWEgPSBmaW5kU3RvcmFnZUFyZWEoMCwgc3RvcmFnZUlkLCBmcmFtZSk7
CisgICAgaWYgKCFzdG9yYWdlQXJlYSkgewogICAgICAgICAqc3VjY2VzcyA9IGZhbHNlOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb24gPSAwOwor
ICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVJdGVtKGtleSwgZXhjZXB0aW9uLCBmcmFtZSk7CisgICAg
KnN1Y2Nlc3MgPSAhZXhjZXB0aW9uOwogfQogCiBTdHJpbmcgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50OjpzdG9yYWdlSWQoU3RvcmFnZSogc3RvcmFnZSkKIHsKICAgICBBU1NFUlQoc3RvcmFnZSk7
Ci0gICAgRnJhbWUqIGZyYW1lID0gc3RvcmFnZS0+ZnJhbWUoKTsKLSAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBib29sIGlzTG9jYWxTdG9yYWdlID0gKGZyYW1lLT5kb2N1bWVudCgpLT5k
b21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKGVjKSA9PSBzdG9yYWdlICYmICFlYyk7Ci0gICAgcmV0
dXJuIHN0b3JhZ2VJZChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgaXNMb2Nh
bFN0b3JhZ2UpOworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0b3JhZ2UtPmZyYW1lKCktPmRv
Y3VtZW50KCk7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICBET01XaW5kb3cqIHdpbmRvdyA9
IGRvY3VtZW50LT5kb21XaW5kb3coKTsKKyAgICBBU1NFUlQod2luZG93KTsKKyAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2lu
KCk7CisgICAgYm9vbCBpc0xvY2FsU3RvcmFnZSA9IHdpbmRvdy0+b3B0aW9uYWxMb2NhbFN0b3Jh
Z2UoKSA9PSBzdG9yYWdlOworICAgIHJldHVybiBzdG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4uZ2V0
KCksIGlzTG9jYWxTdG9yYWdlKS0+dG9KU09OU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OnN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4sIGJvb2wgaXNMb2NhbFN0b3JhZ2UpCitQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9y
YWdlOjpTdG9yYWdlSWQ+IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlkKFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgYm9vbCBpc0xvY2FsU3RvcmFnZSkKIHsKLSAgICBB
U1NFUlQoc2VjdXJpdHlPcmlnaW4pOwotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJh
dG9yIGRvbVN0b3JhZ2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3Jh
Z2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0g
ZG9tU3RvcmFnZUVuZDsgKytpdCkgewotICAgICAgICBpZiAoaXQtPnZhbHVlLT5pc1NhbWVPcmln
aW5BbmRUeXBlKHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gaXQtPmtleTsKLSAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1JbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2UqIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Z2V0RE9NU3Rv
cmFnZVJlc291cmNlRm9ySWQoY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQpCi17Ci0gICAgRE9NU3Rv
cmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5maW5kKHN0b3JhZ2VJ
ZCk7Ci0gICAgaWYgKGl0ID09IG1fcmVzb3VyY2VzLmVuZCgpKQotICAgICAgICByZXR1cm4gMDsK
LSAgICByZXR1cm4gaXQtPnZhbHVlLmdldCgpOwotfQotCi12b2lkIEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudDo6ZGlkVXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wg
aXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBET01TdG9yYWdlUmVzb3VyY2Vz
TWFwOjppdGVyYXRvciBkb21TdG9yYWdlRW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9y
IChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2lu
KCk7IGl0ICE9IGRvbVN0b3JhZ2VFbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZS0+
aXNTYW1lT3JpZ2luQW5kVHlwZShmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
aXNMb2NhbFN0b3JhZ2UpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlZlB0
cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+IHJlc291cmNlID0gSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlOjpjcmVhdGUoc3RvcmFnZUFyZWEsIGlzTG9jYWxTdG9yYWdlLCBmcmFtZSk7
Ci0KLSAgICBtX3Jlc291cmNlcy5zZXQocmVzb3VyY2UtPmlkKCksIHJlc291cmNlKTsKLQotICAg
IC8vIFJlc291cmNlcyBhcmUgb25seSBib3VuZCB3aGlsZSB2aXNpYmxlLgotICAgIGlmIChtX2Vu
YWJsZWQpCi0gICAgICAgIHJlc291cmNlLT5iaW5kKG1fZnJvbnRlbmQpOworICAgIHJldHVybiBU
eXBlQnVpbGRlcjo6RE9NU3RvcmFnZTo6U3RvcmFnZUlkOjpjcmVhdGUoKQorICAgICAgICAuc2V0
U2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4tPnRvUmF3U3RyaW5nKCkpCisgICAgICAgIC5z
ZXRJc0xvY2FsU3RvcmFnZShpc0xvY2FsU3RvcmFnZSkucmVsZWFzZSgpOwogfQogCiB2b2lkIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFs
dWUsIFN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlLCBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4sIFBhZ2UqKQogewotICAgIGlmICghbV9mcm9udGVuZCB8fCAhbV9lbmFibGVkKQorICAgIGlm
ICghbV9mcm9udGVuZCB8fCAhaXNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBpZCA9IHN0b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgc3RvcmFnZVR5cGUgPT0gTG9jYWxT
dG9yYWdlKTsKLQotICAgIGlmIChpZC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZD4gaWQgPSBzdG9yYWdlSWQo
c2VjdXJpdHlPcmlnaW4sIHN0b3JhZ2VUeXBlID09IExvY2FsU3RvcmFnZSk7CiAKICAgICBpZiAo
a2V5LmlzTnVsbCgpKQogICAgICAgICBtX2Zyb250ZW5kLT5kb21zdG9yYWdlKCktPmRvbVN0b3Jh
Z2VJdGVtc0NsZWFyZWQoaWQpOwpAQCAtMjQzLDE2ICsyMTIsMzcgQEAgdm9pZCBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYg
a2V5LCBjb24KICAgICAgICAgbV9mcm9udGVuZC0+ZG9tc3RvcmFnZSgpLT5kb21TdG9yYWdlSXRl
bVVwZGF0ZWQoaWQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6OmNsZWFyUmVzb3VyY2VzKCkKK1Bhc3NSZWZQdHI8U3RvcmFnZUFy
ZWE+IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwg
RnJhbWUqJiB0YXJnZXRGcmFtZSkKIHsKLSAgICBtX3Jlc291cmNlcy5jbGVhcigpOworICAgIFN0
cmluZyBzZWN1cml0eU9yaWdpbjsKKyAgICBib29sIGlzTG9jYWxTdG9yYWdlOworICAgIGJvb2wg
c3VjY2VzcyA9IHN0b3JhZ2VJZC0+Z2V0U3RyaW5nKCJzZWN1cml0eU9yaWdpbiIsICZzZWN1cml0
eU9yaWdpbik7CisgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgIHN1Y2Nlc3MgPSBzdG9yYWdlSWQt
PmdldEJvb2xlYW4oImlzTG9jYWxTdG9yYWdlIiwgJmlzTG9jYWxTdG9yYWdlKTsKKyAgICBpZiAo
IXN1Y2Nlc3MpIHsKKyAgICAgICAgaWYgKGVycm9yU3RyaW5nKQorICAgICAgICAgICAgKmVycm9y
U3RyaW5nID0gIkludmFsaWQgc3RvcmFnZUlkIGZvcm1hdCI7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZUFnZW50LT5maW5kRnJhbWVXaXRoU2Vj
dXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAg
aWYgKGVycm9yU3RyaW5nKQorICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkZyYW1lIG5vdCBm
b3VuZCBmb3IgdGhlIGdpdmVuIHNlY3VyaXR5IG9yaWdpbiI7CisgICAgICAgIHJldHVybiAwOwor
ICAgIH0KKyAgICB0YXJnZXRGcmFtZSA9IGZyYW1lOworCisgICAgUGFnZSogcGFnZSA9IG1fcGFn
ZUFnZW50LT5wYWdlKCk7CisgICAgaWYgKGlzTG9jYWxTdG9yYWdlKQorICAgICAgICByZXR1cm4g
cGFnZS0+Z3JvdXAoKS5sb2NhbFN0b3JhZ2UoKS0+c3RvcmFnZUFyZWEoZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIHJldHVybiBwYWdlLT5zZXNzaW9uU3RvcmFnZSgp
LT5zdG9yYWdlQXJlYShmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAK
IHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50KTsKICAgICBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50Pjo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAg
aW5mby5hZGRNZW1iZXIobV9yZXNvdXJjZXMsICJyZXNvdXJjZXMiKTsKICAgICBpbmZvLmFkZFdl
YWtQb2ludGVyKG1fZnJvbnRlbmQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKaW5kZXggZTk4ZTM5MjFkMDU2ODY5NTIz
N2JmOWJlYjA3MzhjMTQzOGM5NzE1Mi4uNmM0NzgyZTQ4NWE3OGQxZTA5MGFmZWU2YmJiZDMxNmMz
MjlhYmNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuaApAQCAtMzksOCArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEZyYW1lOwogY2xhc3MgSW5zcGVjdG9yQXJyYXk7Ci1jbGFzcyBJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKK2NsYXNzIEluc3BlY3Rv
clBhZ2VBZ2VudDsKIGNsYXNzIEluc3BlY3RvclN0YXRlOwogY2xhc3MgSW5zdHJ1bWVudGluZ0Fn
ZW50czsKIGNsYXNzIFBhZ2U7CkBAIC01MSw5ICs1MSw5IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9y
U3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJsaWMgSW5zcGVj
dG9yQmFzZUFnZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4sIHB1YmxpYyBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcjo6RE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHBh
Z2VBZ2VudCwgc3RhdGUpKTsKICAgICB9CiAgICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgp
OwogCkBAIC02MSwzNCArNjEsMzEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjbGVhckZy
b250ZW5kKCk7CiAgICAgdm9pZCByZXN0b3JlKCk7CiAKLSAgICB2b2lkIGNsZWFyUmVzb3VyY2Vz
KCk7Ci0KICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgogICAgIHZpcnR1YWwgdm9p
ZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShFcnJvclN0
cmluZyopOwotICAgIHZpcnR1YWwgdm9pZCBnZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5
cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgZW50cmllcyk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldERPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNzKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGJvb2wqIHN1Y2Nlc3MpOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcqLCBjb25zdCBS
ZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgaXRlbXMpOworICAgIHZpcnR1YWwg
dm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZh
bHVlLCBib29sKiBzdWNjZXNzKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0
ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlk
LCBjb25zdCBTdHJpbmcmIGtleSwgYm9vbCogc3VjY2Vzcyk7CiAKICAgICAvLyBDYWxsZWQgZnJv
bSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgogICAgIFN0cmluZyBzdG9yYWdlSWQoU3RvcmFnZSopOwot
ICAgIFN0cmluZyBzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdl
KTsKKyAgICBQYXNzUmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IHN0
b3JhZ2VJZChTZWN1cml0eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpOwogCiAgICAgLy8g
Q2FsbGVkIGZyb20gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRVc2VET01T
dG9yYWdlKFN0b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAgICB2
b2lkIGRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2Vj
dXJpdHlPcmlnaW4qLCBQYWdlKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29t
cG9zaXRlU3RhdGUqKTsKIAotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogZ2V0RE9N
U3RvcmFnZVJlc291cmNlRm9ySWQoY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQpOworICAgIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFn
ZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKKworICAgIGJvb2wgaXNFbmFibGVkKCkg
Y29uc3Q7CisgICAgUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9y
U3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mLCBGcmFtZSomKTsKIAotICAg
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2U+ID4gRE9NU3RvcmFnZVJlc291cmNlc01hcDsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFw
IG1fcmVzb3VyY2VzOworICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAgICAg
SW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJvbnRlbmQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5ZjNjZmUxNWI0MGRjNzc1OTc1ZGJiODc2NjBiODJlNzAyMDM3ZWVkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTAxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQg
TGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5B
QkxFKElOU1BFQ1RPUikKLQotI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5o
IgotCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJbnNwZWN0
b3JGcm9udGVuZC5oIgotI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSAiU3RvcmFnZS5oIgotI2luY2x1ZGUgIlN0b3JhZ2VB
cmVhLmgiCi0jaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotaW50IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZTo6c19uZXh0VW51c2VkSWQgPSAxOwotCi1JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6Oklu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wg
aXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLSAgICA6IG1fc3RvcmFnZUFyZWEoc3RvcmFn
ZUFyZWEpCi0gICAgLCBtX2lzTG9jYWxTdG9yYWdlKGlzTG9jYWxTdG9yYWdlKQotICAgICwgbV9m
cmFtZShmcmFtZSkKLSAgICAsIG1fZnJvbnRlbmQoMCkKLSAgICAsIG1faWQoU3RyaW5nOjpudW1i
ZXIoc19uZXh0VW51c2VkSWQrKykpCi17Ci19Ci0KLWJvb2wgSW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlOjppc1NhbWVPcmlnaW5BbmRUeXBlKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgYm9vbCBpc0xvY2FsU3RvcmFnZSkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pICYmIG1faXNM
b2NhbFN0b3JhZ2UgPT0gaXNMb2NhbFN0b3JhZ2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlOjpiaW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKLXsKLSAgICBB
U1NFUlQoIW1fZnJvbnRlbmQpOwotICAgIG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+ZG9tc3RvcmFn
ZSgpOwotCi0gICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpFbnRyeT4ganNvbk9i
amVjdCA9IFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpFbnRyeTo6Y3JlYXRlKCkKLSAgICAgICAg
LnNldE9yaWdpbihtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1Jhd1N0
cmluZygpKQotICAgICAgICAuc2V0SXNMb2NhbFN0b3JhZ2UobV9pc0xvY2FsU3RvcmFnZSkKLSAg
ICAgICAgLnNldElkKG1faWQpOwotICAgIG1fZnJvbnRlbmQtPmFkZERPTVN0b3JhZ2UoanNvbk9i
amVjdCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjp1bmJpbmQoKQot
ewotICAgIGlmICghbV9mcm9udGVuZCkKLSAgICAgICAgcmV0dXJuOyAgLy8gQWxyZWFkeSB1bmJv
dW5kLgotCi0gICAgbV9mcm9udGVuZCA9IDA7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAotewotICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
cyk7Ci0gICAgaW5mby5hZGRNZW1iZXIobV9zdG9yYWdlQXJlYSwgInN0b3JhZ2VBcmVhIik7Ci0g
ICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZSwgImZyYW1lIik7Ci0gICAgaW5mby5hZGRXZWFrUG9p
bnRlcihtX2Zyb250ZW5kKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX2lkLCAiaWQiKTsKLSAgICBp
bmZvLmFkZFByaXZhdGVCdWZmZXIobV9zdG9yYWdlQXJlYS0+bWVtb3J5Qnl0ZXNVc2VkQnlDYWNo
ZSgpLCAwLCAiU3RvcmFnZUFyZWFDYWNoZSIsICJjYWNoZSIpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwZDQ2ZDc1MGZhYTc2NjZjYWM2NGYyZDI2OGU1
NjdlZDI0YmI3N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDggTWF0dCBMaWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvckRP
TVN0b3JhZ2VSZXNvdXJjZV9oCi0jZGVmaW5lIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZV9o
Ci0KLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgotCi0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFz
cyBTdG9yYWdlQXJlYTsKLWNsYXNzIEZyYW1lOwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci0K
LWNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPElu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZT4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZT4gY3JlYXRlKFN0b3JhZ2VBcmVhKiBzdG9y
YWdlQXJlYSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uoc3RvcmFn
ZUFyZWEsIGlzTG9jYWxTdG9yYWdlLCBmcmFtZSkpOwotICAgIH0KLQotICAgIHZvaWQgYmluZChJ
bnNwZWN0b3JGcm9udGVuZCopOwotICAgIHZvaWQgdW5iaW5kKCk7Ci0KLSAgICBib29sIGlzU2Ft
ZU9yaWdpbkFuZFR5cGUoU2VjdXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdlKSBjb25z
dDsKLSAgICBTdHJpbmcgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9Ci0gICAgU3RvcmFnZUFy
ZWEqIHN0b3JhZ2VBcmVhKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlQXJlYS5nZXQoKTsgfQot
ICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUuZ2V0KCk7IH0KLQotICAg
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwotCi1wcml2
YXRlOgotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZShTdG9yYWdlQXJlYSosIGJvb2wg
aXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7Ci0KLSAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IG1fc3Rv
cmFnZUFyZWE7Ci0gICAgYm9vbCBtX2lzTG9jYWxTdG9yYWdlOwotICAgIFJlZlB0cjxGcmFtZT4g
bV9mcmFtZTsKLSAgICBJbnNwZWN0b3JGcm9udGVuZDo6RE9NU3RvcmFnZSogbV9mcm9udGVuZDsK
LSAgICBTdHJpbmcgbV9pZDsKLQotICAgIHN0YXRpYyBpbnQgc19uZXh0VW51c2VkSWQ7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA1YWFhYjE4YWM2N2M0MmEzODY2ODcwN2Q4Y2U1NGYy
NGUxZTNjNTVjLi5kYTExYTNiNWM3N2IyOGI4ZTUzNDI5ZjI2OTBiNGY5MTc5OTQxOGIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcApAQCAtOTE1LDggKzkxNSw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAgICAg
ICAgIGlmIChJbnNwZWN0b3JEYXRhYmFzZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgpKQogICAgICAgICAgICAgZGF0YWJh
c2VBZ2VudC0+Y2xlYXJSZXNvdXJjZXMoKTsKICNlbmRpZgotICAgICAgICBpZiAoSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKSkKLSAgICAgICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+
Y2xlYXJSZXNvdXJjZXMoKTsKICAgICAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2Vu
dCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgICAg
ICBkb21BZ2VudC0+c2V0RG9jdW1lbnQobWFpbkZyYW1lLT5kb2N1bWVudCgpKTsKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkBAIC0xMTAxLDE1ICsxMDk5LDYgQEAgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyogaW5zdHJ1bWUKIH0KICNlbmRpZgogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkVXNlRE9NU3RvcmFnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cywgU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBG
cmFtZSogZnJhbWUpCi17Ci0gICAgSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQWdlbnQoKTsKLSAgICBpZiAoIWluc3BlY3RvckFn
ZW50IHx8ICFpbnNwZWN0b3JBZ2VudC0+ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm47Ci0gICAgaWYgKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkpCi0g
ICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+ZGlkVXNlRE9NU3RvcmFnZShzdG9yYWdlQXJlYSwgaXNM
b2NhbFN0b3JhZ2UsIGZyYW1lKTsKLX0KLQogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIFNlY3Vy
aXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgUGFnZSogcGFnZSkKIHsKICAgICBpZiAoSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBmZjYzMDA1MTZlZjEwMzM0
YjAwMjIxMDljZmVkYjM2ZjNkNjEyZjNhLi43ZmZiY2ZmYmRlNGJiYzMwZjYzZDk2YTRiYWNkYmY2
MzdjMzgzMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oCkBAIC0yNTIsNyArMjUyLDYgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGRpZE9wZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxEYXRhYmFzZT4sIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmVyc2lvbik7CiAjZW5kaWYKIAotICAgIHN0YXRpYyB2b2lkIGRpZFVzZURP
TVN0b3JhZ2UoUGFnZSosIFN0b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUq
KTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJp
bmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwg
U3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiwgUGFnZSopOwogCiAjaWYgRU5BQkxFKFdPUktF
UlMpCkBAIC00NTEsNyArNDUwLDYgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVu
RGF0YWJhc2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBQYXNzUmVmUHRyPERhdGFiYXNlPiwg
Y29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
ZXJzaW9uKTsKICNlbmRpZgogCi0gICAgc3RhdGljIHZvaWQgZGlkVXNlRE9NU3RvcmFnZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIFN0b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwg
RnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmln
aW4qLCBQYWdlKik7CiAKICNpZiBFTkFCTEUoV09SS0VSUykKQEAgLTE3NTAsMTkgKzE3NDgsNiBA
QCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFdyaXRlSFRNTChjb25z
dCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpbwogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZShQYWdlKiBwYWdlLCBTdG9yYWdl
QXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLXsK
LSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCi0gICAg
ICAgIGRpZFVzZURPTVN0b3JhZ2VJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIHN0b3JhZ2VBcmVh
LCBpc0xvY2FsU3RvcmFnZSwgZnJhbWUpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocGFnZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHN0b3JhZ2VBcmVhKTsKLSAgICBVTlVTRURfUEFSQU0oaXNMb2Nh
bFN0b3JhZ2UpOwotICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7Ci0jZW5kaWYKLX0KLQogaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVu
dChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5n
JiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0eU9yaWdpbiwgUGFnZSogcGFnZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA0YWY4
YWJkNzY3YTExMWQ1OTYxNTUyN2VlY2JmMjJhNThkOTFkNjY1Li43YTFlYjE0NDA5MjlmZWNhNDY2
YTM5MmRhNDM2MmQ0MDEzZDczYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtOTE2LDYgKzkxNiwyMiBAQCBTdHJpbmcgSW5zcGVj
dG9yUGFnZUFnZW50Ojpsb2FkZXJJZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVy
biBpZGVudGlmaWVyOwogfQogCitGcmFtZSogSW5zcGVjdG9yUGFnZUFnZW50OjpmaW5kRnJhbWVX
aXRoU2VjdXJpdHlPcmlnaW4oY29uc3QgU3RyaW5nJiBvcmlnaW5SYXdTdHJpbmcpCit7CisgICAg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpblB0ciA9IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpblJhd1N0cmluZyk7CisgICAgU2VjdXJpdHlPcmlnaW4q
IHNlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW5QdHIuZ2V0KCk7CisgICAgYm9vbCBpc0xv
Y2FsID0gc2VjdXJpdHlPcmlnaW4tPmlzTG9jYWwoKTsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9
IG1fcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZl
cnNlTmV4dCgpKSB7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gZG9jdW1lbnRPcmln
aW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgLy8gRW11
bGF0ZSB0aGUgIWVuZm9yY2VGaWxlUGF0aFNlcGFyYXRpb24gZm9yIHNlY3VyaXR5IG9yaWdpbnMu
CisgICAgICAgIGlmIChpc0xvY2FsICYmIGRvY3VtZW50T3JpZ2luLT5pc0xvY2FsKCkpCisgICAg
ICAgICAgICByZXR1cm4gZnJhbWU7CisgICAgICAgIGlmIChkb2N1bWVudE9yaWdpbi0+ZXF1YWwo
c2VjdXJpdHlPcmlnaW4pKQorICAgICAgICAgICAgcmV0dXJuIGZyYW1lOworICAgIH0KKyAgICBy
ZXR1cm4gMDsKK30KKwogRnJhbWUqIEluc3BlY3RvclBhZ2VBZ2VudDo6YXNzZXJ0RnJhbWUoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpCiB7CiAgICAgRnJh
bWUqIGZyYW1lID0gZnJhbWVGb3JJZChmcmFtZUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkNWM1YjkwMjUyZmUzMTVkYTVmYTRmNTFk
NTgzZmY4ZTFlMjc0NWZkLi5kZTI0ZmM0N2IyZDM4MDViNzU3YTM5MGI4YWQ3OWY3ODA1ZjM2Yzk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBA
IC0xNzMsNiArMTczLDcgQEAgcHVibGljOgogICAgIFN0cmluZyBmcmFtZUlkKEZyYW1lKik7CiAg
ICAgYm9vbCBoYXNJZEZvckZyYW1lKEZyYW1lKikgY29uc3Q7CiAgICAgU3RyaW5nIGxvYWRlcklk
KERvY3VtZW50TG9hZGVyKik7CisgICAgRnJhbWUqIGZpbmRGcmFtZVdpdGhTZWN1cml0eU9yaWdp
bihjb25zdCBTdHJpbmcmIG9yaWdpblJhd1N0cmluZyk7CiAgICAgRnJhbWUqIGFzc2VydEZyYW1l
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmcmFtZUlkKTsKICAgICBTdHJpbmcgc2NyaXB0
UHJlcHJvY2Vzc29yKCkgeyByZXR1cm4gbV9zY3JpcHRQcmVwcm9jZXNzb3I7IH0KICAgICBzdGF0
aWMgRG9jdW1lbnRMb2FkZXIqIGFzc2VydERvY3VtZW50TG9hZGVyKEVycm9yU3RyaW5nKiwgRnJh
bWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9N
U3RvcmFnZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFn
ZS5qcwppbmRleCBiMTM0NDE5NTk5ZTM1Mjg0OTkyYzJjMGZiMDYxMTAyYmI4ZGI4ZDg4Li5jOWNl
Y2RmM2Q0ZjRjMTM4MmRmODU5MTI5YjY0Y2Q4ZjhmYmZlNmI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlLmpzCkBAIC0yOSwyNSArMjksMzgg
QEAKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9y
aWdpbgorICogQHBhcmFtIHtib29sZWFufSBpc0xvY2FsU3RvcmFnZQorICogQHBhcmFtIHtzdHJp
bmc9fSBpZAogICovCi1XZWJJbnNwZWN0b3IuRE9NU3RvcmFnZSA9IGZ1bmN0aW9uKGlkLCBkb21h
aW4sIGlzTG9jYWxTdG9yYWdlKQorV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UgPSBmdW5jdGlvbihz
ZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UsIGlkKQogewotICAgIHRoaXMuX2lkID0gaWQ7
Ci0gICAgdGhpcy5fZG9tYWluID0gZG9tYWluOworICAgIHRoaXMuX3NlY3VyaXR5T3JpZ2luID0g
c2VjdXJpdHlPcmlnaW47CiAgICAgdGhpcy5faXNMb2NhbFN0b3JhZ2UgPSBpc0xvY2FsU3RvcmFn
ZTsKIH0KIAorLyoqCisgKiBAcGFyYW0ge3N0cmluZ30gc2VjdXJpdHlPcmlnaW4KKyAqIEBwYXJh
bSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UKKyAqIEByZXR1cm4ge0RPTVN0b3JhZ2VBZ2VudC5T
dG9yYWdlSWR9CisgKi8KK1dlYkluc3BlY3Rvci5ET01TdG9yYWdlLnN0b3JhZ2VJZCA9IGZ1bmN0
aW9uKHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkKK3sKKyAgICByZXR1cm4geyBzZWN1
cml0eU9yaWdpbjogc2VjdXJpdHlPcmlnaW4sIGlzTG9jYWxTdG9yYWdlOiBpc0xvY2FsU3RvcmFn
ZSB9OworfQorCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5wcm90b3R5cGUgPSB7Ci0gICAgLyoq
IEByZXR1cm4ge3N0cmluZ30gKi8KKworICAgIC8qKiBAcmV0dXJuIHtET01TdG9yYWdlQWdlbnQu
U3RvcmFnZUlkfSAqLwogICAgIGdldCBpZCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5f
aWQ7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5zdG9yYWdlSWQodGhp
cy5fc2VjdXJpdHlPcmlnaW4sIHRoaXMuX2lzTG9jYWxTdG9yYWdlKTsKICAgICB9LAogCiAgICAg
LyoqIEByZXR1cm4ge3N0cmluZ30gKi8KLSAgICBnZXQgZG9tYWluKCkKKyAgICBnZXQgc2VjdXJp
dHlPcmlnaW4oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2RvbWFpbjsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX3NlY3VyaXR5T3JpZ2luOwogICAgIH0sCiAKICAgICAvKiogQHJldHVybiB7
Ym9vbGVhbn0gKi8KQEAgLTU3LDExICs3MCwxMSBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZS5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
P1Byb3RvY29sLkVycm9yLCBBcnJheS48RE9NU3RvcmFnZUFnZW50LkVudHJ5Pik6dm9pZD19IGNh
bGxiYWNrCisgICAgICogQHBhcmFtIHtmdW5jdGlvbig/UHJvdG9jb2wuRXJyb3IsIEFycmF5LjxE
T01TdG9yYWdlQWdlbnQuSXRlbT4pOnZvaWQ9fSBjYWxsYmFjawogICAgICAqLwotICAgIGdldEVu
dHJpZXM6IGZ1bmN0aW9uKGNhbGxiYWNrKQorICAgIGdldEl0ZW1zOiBmdW5jdGlvbihjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIERPTVN0b3JhZ2VBZ2VudC5nZXRET01TdG9yYWdlRW50cmllcyh0
aGlzLl9pZCwgY2FsbGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQuZ2V0RE9NU3RvcmFn
ZUl0ZW1zKHRoaXMuaWQsIGNhbGxiYWNrKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC03MSw3ICs4
NCw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBzZXRJdGVtOiBmdW5jdGlvbihrZXksIHZhbHVlLCBjYWxsYmFjaykKICAgICB7Ci0gICAgICAg
IERPTVN0b3JhZ2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9pZCwga2V5LCB2YWx1ZSwg
Y2FsbGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0RE9NU3RvcmFnZUl0ZW0odGhp
cy5pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICAvKioKQEAgLTgwLDcg
KzkzLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UucHJvdG90eXBlID0gewogICAgICAqLwog
ICAgIHJlbW92ZUl0ZW06IGZ1bmN0aW9uKGtleSwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBE
T01TdG9yYWdlQWdlbnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5faWQsIGtleSwgY2FsbGJh
Y2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQucmVtb3ZlRE9NU3RvcmFnZUl0ZW0odGhpcy5p
ZCwga2V5LCBjYWxsYmFjayk7CiAgICAgfQogfQogCkBAIC05MywxMCArMTA2LDEzIEBAIFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fc3RvcmFnZXMg
PSB7fTsKICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyRE9NU3RvcmFnZURpc3BhdGNoZXIo
bmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlcih0aGlzKSk7CiAgICAgRE9NU3Rv
cmFnZUFnZW50LmVuYWJsZSgpOworICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LlNlY3VyaXR5T3JpZ2luQWRkZWQsIHRoaXMuX3NlY3VyaXR5T3JpZ2luQWRkZWQsIHRoaXMpOwor
ICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlNlY3VyaXR5T3JpZ2luUmVtb3Zl
ZCwgdGhpcy5fc2VjdXJpdHlPcmlnaW5SZW1vdmVkLCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9y
LkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMgPSB7CiAgICAgRE9NU3RvcmFnZUFkZGVkOiAiRE9NU3Rv
cmFnZUFkZGVkIiwKKyAgICBET01TdG9yYWdlUmVtb3ZlZDogIkRPTVN0b3JhZ2VSZW1vdmVkIiwK
ICAgICBET01TdG9yYWdlSXRlbXNDbGVhcmVkOiAiRE9NU3RvcmFnZUl0ZW1zQ2xlYXJlZCIsCiAg
ICAgRE9NU3RvcmFnZUl0ZW1SZW1vdmVkOiAiRE9NU3RvcmFnZUl0ZW1SZW1vdmVkIiwKICAgICBE
T01TdG9yYWdlSXRlbUFkZGVkOiAiRE9NU3RvcmFnZUl0ZW1BZGRlZCIsCkBAIC0xMDQsMTMgKzEy
MCw1MyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cyA9IHsKIH0KIAogV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CisKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfc2VjdXJp
dHlPcmlnaW5BZGRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VjdXJp
dHlPcmlnaW4gPSAvKiogQHR5cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB2
YXIgbG9jYWxTdG9yYWdlS2V5ID0gdGhpcy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgdHJ1
ZSk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VL
ZXldKTsKKyAgICAgICAgdmFyIGxvY2FsU3RvcmFnZSA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZShzZWN1cml0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VzW2xvY2Fs
U3RvcmFnZUtleV0gPSBsb2NhbFN0b3JhZ2U7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VB
ZGRlZCwgbG9jYWxTdG9yYWdlKTsKKworICAgICAgICB2YXIgc2Vzc2lvblN0b3JhZ2VLZXkgPSB0
aGlzLl9zdG9yYWdlS2V5KHNlY3VyaXR5T3JpZ2luLCBmYWxzZSk7CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KCF0aGlzLl9zdG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV0pOworICAgICAgICB2YXIg
c2Vzc2lvblN0b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uoc2VjdXJpdHlPcmln
aW4sIGZhbHNlKTsKKyAgICAgICAgdGhpcy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXldID0g
c2Vzc2lvblN0b3JhZ2U7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VBZGRlZCwgc2Vzc2lv
blN0b3JhZ2UpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5FdmVudH0gZXZlbnQKKyAgICAgKi8KKyAgICBfc2VjdXJpdHlPcmlnaW5SZW1vdmVkOiBmdW5j
dGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBzZWN1cml0eU9yaWdpbiA9IC8qKiBAdHlw
ZSB7c3RyaW5nfSAqLyAoZXZlbnQuZGF0YSk7CisgICAgICAgIHZhciBsb2NhbFN0b3JhZ2VLZXkg
PSB0aGlzLl9zdG9yYWdlS2V5KHNlY3VyaXR5T3JpZ2luLCB0cnVlKTsKKyAgICAgICAgdmFyIGxv
Y2FsU3RvcmFnZSA9IHRoaXMuX3N0b3JhZ2VzW2xvY2FsU3RvcmFnZUtleV07CisgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGxvY2FsU3RvcmFnZSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9zdG9yYWdl
c1tsb2NhbFN0b3JhZ2VLZXldOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlUmVtb3ZlZCwg
bG9jYWxTdG9yYWdlKTsKKworICAgICAgICB2YXIgc2Vzc2lvblN0b3JhZ2VLZXkgPSB0aGlzLl9z
dG9yYWdlS2V5KHNlY3VyaXR5T3JpZ2luLCBmYWxzZSk7CisgICAgICAgIHZhciBzZXNzaW9uU3Rv
cmFnZSA9IHRoaXMuX3N0b3JhZ2VzW3Nlc3Npb25TdG9yYWdlS2V5XTsKKyAgICAgICAgY29uc29s
ZS5hc3NlcnQoc2Vzc2lvblN0b3JhZ2UpOworICAgICAgICBkZWxldGUgdGhpcy5fc3RvcmFnZXNb
c2Vzc2lvblN0b3JhZ2VLZXldOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlUmVtb3ZlZCwg
c2Vzc2lvblN0b3JhZ2UpOworICAgIH0sCisKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYklu
c3BlY3Rvci5ET01TdG9yYWdlfSBkb21TdG9yYWdlCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHNl
Y3VyaXR5T3JpZ2luCisgICAgICogQHBhcmFtIHtib29sZWFufSBpc0xvY2FsU3RvcmFnZQorICAg
ICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAgKi8KLSAgICBfYWRkRE9NU3RvcmFnZTogZnVuY3Rp
b24oZG9tU3RvcmFnZSkKKyAgICBfc3RvcmFnZUtleTogZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4s
IGlzTG9jYWxTdG9yYWdlKQogICAgIHsKLSAgICAgICAgdGhpcy5fc3RvcmFnZXNbZG9tU3RvcmFn
ZS5pZF0gPSBkb21TdG9yYWdlOwotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIGRv
bVN0b3JhZ2UpOworICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2Uuc3RvcmFnZUlkKHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkpOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTExOCw3ICsxNzQsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFn
ZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfZG9tU3RvcmFnZUl0ZW1zQ2xlYXJl
ZDogZnVuY3Rpb24oc3RvcmFnZUlkKQogICAgIHsKLSAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0
aGlzLl9zdG9yYWdlc1tzdG9yYWdlSWRdOworICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMu
c3RvcmFnZUZvcklkKHN0b3JhZ2VJZCk7CiAgICAgICAgIHZhciBzdG9yYWdlRGF0YSA9IHsKICAg
ICAgICAgICAgIHN0b3JhZ2U6IGRvbVN0b3JhZ2UKICAgICAgICAgfTsKQEAgLTEzMSw3ICsxODcs
NyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBfZG9tU3RvcmFnZUl0ZW1SZW1vdmVkOiBmdW5jdGlvbihzdG9yYWdlSWQsIGtleSkKICAg
ICB7Ci0gICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsK
KyAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwog
ICAgICAgICB2YXIgc3RvcmFnZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9y
YWdlLAogICAgICAgICAgICAga2V5OiBrZXkKQEAgLTE0Niw3ICsyMDIsNyBAQCBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfZG9tU3RvcmFn
ZUl0ZW1BZGRlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXksIG5ld1ZhbHVlKQogICAgIHsKLSAg
ICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLl9zdG9yYWdlc1tzdG9yYWdlSWRdOworICAgICAg
ICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuc3RvcmFnZUZvcklkKHN0b3JhZ2VJZCk7CiAgICAgICAg
IHZhciBzdG9yYWdlRGF0YSA9IHsKICAgICAgICAgICAgIHN0b3JhZ2U6IGRvbVN0b3JhZ2UsCiAg
ICAgICAgICAgICBrZXk6IGtleSwKQEAgLTE3OSw3ICsyMzUsNyBAQCBXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzdG9yYWdlRm9ySWQ6IGZ1
bmN0aW9uKHN0b3JhZ2VJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zdG9yYWdlc1tz
dG9yYWdlSWRdOworICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZXNbSlNPTi5zdHJpbmdpZnko
c3RvcmFnZUlkKV07CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTg4LDggKzI0NCw4IEBAIFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlID0gewogICAgIHN0b3JhZ2VzOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICB2YXIgcmVzdWx0ID0gW107Ci0gICAgICAgIGZvciAodmFy
IHN0b3JhZ2VJZCBpbiB0aGlzLl9zdG9yYWdlcykKLSAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRo
aXMuX3N0b3JhZ2VzW3N0b3JhZ2VJZF0pOworICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9z
dG9yYWdlcykKKyAgICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuX3N0b3JhZ2VzW2lkXSk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwKIApAQCAtMjA5LDE4ICsyNjUsNyBAQCBXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIgPSBmdW5jdGlvbihtb2RlbCkKIFdlYkluc3Bl
Y3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5FbnRyeX0gcGF5bG9hZAotICAgICAqLwotICAgIGFk
ZERPTVN0b3JhZ2U6IGZ1bmN0aW9uKHBheWxvYWQpCi0gICAgewotICAgICAgICB0aGlzLl9tb2Rl
bC5fYWRkRE9NU3RvcmFnZShuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UoCi0gICAgICAgICAg
ICBwYXlsb2FkLmlkLAotICAgICAgICAgICAgcGF5bG9hZC5vcmlnaW4sCi0gICAgICAgICAgICBw
YXlsb2FkLmlzTG9jYWxTdG9yYWdlKSk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9y
YWdlSWR9IHN0b3JhZ2VJZAogICAgICAqLwogICAgIGRvbVN0b3JhZ2VJdGVtc0NsZWFyZWQ6IGZ1
bmN0aW9uKHN0b3JhZ2VJZCkKICAgICB7CkBAIC0yMjgsNyArMjczLDcgQEAgV2ViSW5zcGVjdG9y
LkRPTVN0b3JhZ2VEaXNwYXRjaGVyLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0g
ICAgICogQHBhcmFtIHtzdHJpbmd9IHN0b3JhZ2VJZAorICAgICAqIEBwYXJhbSB7RE9NU3RvcmFn
ZUFnZW50LlN0b3JhZ2VJZH0gc3RvcmFnZUlkCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGtleQog
ICAgICAqLwogICAgIGRvbVN0b3JhZ2VJdGVtUmVtb3ZlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBr
ZXkpCkBAIC0yMzcsNyArMjgyLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVy
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9
IHN0b3JhZ2VJZAorICAgICAqIEBwYXJhbSB7RE9NU3RvcmFnZUFnZW50LlN0b3JhZ2VJZH0gc3Rv
cmFnZUlkCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGtleQogICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBuZXdWYWx1ZQogICAgICAqLwpAQCAtMjQ3LDcgKzI5Miw3IEBAIFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAq
IEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2Vu
dC5TdG9yYWdlSWR9IHN0b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAg
KiBAcGFyYW0ge3N0cmluZ30gb2xkVmFsdWUKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmV3VmFs
dWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZUl0ZW1zVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9N
U3RvcmFnZUl0ZW1zVmlldy5qcwppbmRleCA1MzVkYTEyYzM1M2NiMWU3MDg2NDhmYWFhNjIzMmFk
ZjdkM2EyOGNjLi43MTlkOWRmZDI0NDEyOWFmN2Q3MDQ5OWM2NDQwMjcxZTY0OTIyYTA5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2VJdGVt
c1ZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9y
YWdlSXRlbXNWaWV3LmpzCkBAIC01OSw3ICs1OSw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
SXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIHdhc1Nob3duOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICAgICAgdGhpcy51cGRhdGUoKTsKICAgICB9
LAogCiAgICAgd2lsbEhpZGU6IGZ1bmN0aW9uKCkKQEAgLTE1MywyNCArMTUzLDI0IEBAIFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAg
IH0sCiAKLSAgICBfdXBkYXRlOiBmdW5jdGlvbigpCisgICAgdXBkYXRlOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB0aGlzLmRldGFjaENoaWxkVmlld3MoKTsKLSAgICAgICAgdGhpcy5kb21T
dG9yYWdlLmdldEVudHJpZXModGhpcy5fc2hvd0RPTVN0b3JhZ2VFbnRyaWVzLmJpbmQodGhpcykp
OworICAgICAgICB0aGlzLmRvbVN0b3JhZ2UuZ2V0SXRlbXModGhpcy5fc2hvd0RPTVN0b3JhZ2VJ
dGVtcy5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgX3Nob3dET01TdG9yYWdlRW50cmllczog
ZnVuY3Rpb24oZXJyb3IsIGVudHJpZXMpCisgICAgX3Nob3dET01TdG9yYWdlSXRlbXM6IGZ1bmN0
aW9uKGVycm9yLCBpdGVtcykKICAgICB7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IHRoaXMuX2RhdGFHcmlkRm9yRE9N
U3RvcmFnZUVudHJpZXMoZW50cmllcyk7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gdGhpcy5f
ZGF0YUdyaWRGb3JET01TdG9yYWdlSXRlbXMoaXRlbXMpOwogICAgICAgICB0aGlzLl9kYXRhR3Jp
ZC5zaG93KHRoaXMuZWxlbWVudCk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmF1dG9TaXplQ29s
dW1ucygxMCk7CiAgICAgICAgIHRoaXMuZGVsZXRlQnV0dG9uLnZpc2libGUgPSAodGhpcy5fZGF0
YUdyaWQucm9vdE5vZGUoKS5jaGlsZHJlbi5sZW5ndGggPiAxKTsKICAgICB9LAogCi0gICAgX2Rh
dGFHcmlkRm9yRE9NU3RvcmFnZUVudHJpZXM6IGZ1bmN0aW9uKGVudHJpZXMpCisgICAgX2RhdGFH
cmlkRm9yRE9NU3RvcmFnZUl0ZW1zOiBmdW5jdGlvbihpdGVtcykKICAgICB7CiAgICAgICAgIHZh
ciBjb2x1bW5zID0ge2tleToge30sIHZhbHVlOiB7fX07CiAKQEAgLTE4MywxMCArMTgzLDEwIEBA
IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
dmFyIG5vZGVzID0gW107CiAKICAgICAgICAgdmFyIGtleXMgPSBbXTsKLSAgICAgICAgdmFyIGxl
bmd0aCA9IGVudHJpZXMubGVuZ3RoOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJp
ZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciBrZXkgPSBlbnRyaWVzW2ldWzBdOwot
ICAgICAgICAgICAgdmFyIHZhbHVlID0gZW50cmllc1tpXVsxXTsKKyAgICAgICAgdmFyIGxlbmd0
aCA9IGl0ZW1zLmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtcy5sZW5n
dGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGtleSA9IGl0ZW1zW2ldWzBdOworICAgICAgICAg
ICAgdmFyIHZhbHVlID0gaXRlbXNbaV1bMV07CiAgICAgICAgICAgICB2YXIgbm9kZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuRGF0YUdyaWROb2RlKHtrZXk6IGtleSwgdmFsdWU6IHZhbHVlfSwgZmFsc2Up
OwogICAgICAgICAgICAgbm9kZS5zZWxlY3RhYmxlID0gdHJ1ZTsKICAgICAgICAgICAgIG5vZGVz
LnB1c2gobm9kZSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJ
dGVtc1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgX3JlZnJlc2hCdXR0b25DbGlja2VkOiBmdW5j
dGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZSgpOworICAgICAgICB0aGlz
LnVwZGF0ZSgpOwogICAgIH0sCiAKICAgICBfZWRpdGluZ0NhbGxiYWNrOiBmdW5jdGlvbihlZGl0
aW5nTm9kZSwgY29sdW1uSWRlbnRpZmllciwgb2xkVGV4dCwgbmV3VGV4dCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRW1wdHlWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcuanMKaW5kZXggZDdhNjVhZjI3
MWM5YWRlY2E2YzNlMjEzODE0ZDZmYTk5MGQ3YjIzZS4uMmVjZjM4MTU1YjA1Njc4YzJmYzdmNzFi
Y2M1NWNkYWQ4NjY5N2FmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9FbXB0eVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9FbXB0eVZpZXcuanMKQEAgLTUyLDYgKzUyLDExIEBAIFdlYkluc3BlY3Rvci5FbXB0eVZp
ZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5lbGVtZW50LnRleHRDb250ZW50ID0g
dGhpcy5fdGV4dDsKICAgICB9LAogCisgICAgX3Byb2Nlc3NXaWxsSGlkZTogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlZpZXcucHJvdG90eXBlLl9wcm9jZXNzV2lsbEhp
ZGUuY2FsbCh0aGlzKTsKKyAgICB9LAorCiAgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3IuVmll
dy5wcm90b3R5cGUKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggZWFhYTFhMmVkNGRlMWVhMmU2OWY4YzdlNDMy
NjEyODZiODdlYTY3MS4uNDJlNTJkN2ZiNWYwZmI4NTAzMzFmMDlmMTkxOWQwMjg2ZWFmN2UyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzCkBAIC0xMTUsOSArMTE1LDYgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVs
ID0gZnVuY3Rpb24oZGF0YWJhc2UpCiAKICAgICBXZWJJbnNwZWN0b3IuZGF0YWJhc2VNb2RlbC5k
YXRhYmFzZXMoKS5mb3JFYWNoKHRoaXMuX2FkZERhdGFiYXNlLmJpbmQodGhpcykpOwogICAgIFdl
Ykluc3BlY3Rvci5kYXRhYmFzZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRh
dGFiYXNlTW9kZWwuRXZlbnRzLkRhdGFiYXNlQWRkZWQsIHRoaXMuX2RhdGFiYXNlQWRkZWQsIHRo
aXMpOwotCi0gICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpLmZvckVh
Y2godGhpcy5fYWRkRE9NU3RvcmFnZS5iaW5kKHRoaXMpKTsKLSAgICBXZWJJbnNwZWN0b3IuZG9t
U3RvcmFnZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2Rl
bC5FdmVudHMuRE9NU3RvcmFnZUFkZGVkLCB0aGlzLl9kb21TdG9yYWdlQWRkZWQsIHRoaXMpOwog
fQogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewpAQCAtMTM2LDYg
KzEzMyw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICBpZiAoIXRoaXMuX2luaXRpYWxpemVkICYmIHRoaXMuaXNTaG93aW5nKCkgJiYg
dGhpcy5fY2FjaGVkUmVzb3VyY2VzV2VyZUxvYWRlZCkgewogICAgICAgICAgICAgdGhpcy5fcG9w
dWxhdGVSZXNvdXJjZVRyZWUoKTsKKyAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlRE9NU3RvcmFn
ZVRyZWUoKTsKICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlQXBwbGljYXRpb25DYWNoZVRyZWUo
KTsKICAgICAgICAgICAgIHRoaXMuX2luaXREZWZhdWx0U2VsZWN0aW9uKCk7CiAgICAgICAgICAg
ICB0aGlzLl9pbml0aWFsaXplZCA9IHRydWU7CkBAIC0yODQsNiArMjgyLDggQEAgV2ViSW5zcGVj
dG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIGFwcGxpY2F0aW9u
Q2FjaGVGcmFtZVRyZWVFbGVtZW50ID0gdGhpcy5fYXBwbGljYXRpb25DYWNoZUZyYW1lRWxlbWVu
dHNbZnJhbWVJZF07CiAgICAgICAgIGlmIChhcHBsaWNhdGlvbkNhY2hlRnJhbWVUcmVlRWxlbWVu
dCkKICAgICAgICAgICAgIGFwcGxpY2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50LmZyYW1lTmF2
aWdhdGVkKGZyYW1lKTsKKworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLnN0
b3JhZ2VzKCkuZm9yRWFjaCh0aGlzLl9hZGRET01TdG9yYWdlLmJpbmQodGhpcykpOwogICAgIH0s
CiAKICAgICBfY2FjaGVkUmVzb3VyY2VzTG9hZGVkOiBmdW5jdGlvbigpCkBAIC0zMzEsNyArMzMx
LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICBfZG9tU3RvcmFnZUFkZGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZh
ciBkb21TdG9yYWdlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZX0qLyAoZXZl
bnQuZGF0YSk7CisgICAgICAgIHZhciBkb21TdG9yYWdlID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZX0gKi8gKGV2ZW50LmRhdGEpOwogICAgICAgICB0aGlzLl9hZGRET01TdG9y
YWdlKGRvbVN0b3JhZ2UpOwogICAgIH0sCiAKQEAgLTM0MSw2ICszNDEsOSBAQCBXZWJJbnNwZWN0
b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9hZGRET01TdG9yYWdlOiBmdW5j
dGlvbihkb21TdG9yYWdlKQogICAgIHsKICAgICAgICAgdmFyIGRvbVN0b3JhZ2VUcmVlRWxlbWVu
dCA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50KHRoaXMsIGRvbVN0b3Jh
Z2UsIChkb21TdG9yYWdlLmlzTG9jYWxTdG9yYWdlID8gImxvY2FsLXN0b3JhZ2UiIDogInNlc3Np
b24tc3RvcmFnZSIpKTsKKyAgICAgICAgaWYgKHRoaXMuX2RvbVN0b3JhZ2VUcmVlRWxlbWVudHMu
Z2V0KGRvbVN0b3JhZ2UpKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIHRoaXMuX2Rv
bVN0b3JhZ2VUcmVlRWxlbWVudHMucHV0KGRvbVN0b3JhZ2UsIGRvbVN0b3JhZ2VUcmVlRWxlbWVu
dCk7CiAgICAgICAgIGlmIChkb21TdG9yYWdlLmlzTG9jYWxTdG9yYWdlKQogICAgICAgICAgICAg
dGhpcy5sb2NhbFN0b3JhZ2VMaXN0VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9tU3RvcmFnZVRy
ZWVFbGVtZW50KTsKQEAgLTM0OSw2ICszNTIsMzAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1Bh
bmVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX2RvbVN0b3JhZ2VSZW1vdmVkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBkb21TdG9yYWdlID0gLyoqIEB0eXBl
IHtXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZX0gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB0aGlz
Ll9yZW1vdmVET01TdG9yYWdlKGRvbVN0b3JhZ2UpOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5ET01TdG9yYWdlfSBkb21TdG9yYWdlCisgICAgICovCisg
ICAgX3JlbW92ZURPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2UpCisgICAgeworICAgICAg
ICB2YXIgdHJlZUVsZW1lbnQgPSB0aGlzLl9kb21TdG9yYWdlVHJlZUVsZW1lbnRzLmdldChkb21T
dG9yYWdlKTsKKyAgICAgICAgaWYgKCF0cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgdmFyIHdhc1NlbGVjdGVkID0gdHJlZUVsZW1lbnQuc2VsZWN0ZWQ7CisgICAgICAg
IHZhciBwYXJlbnRMaXN0VHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudC5wYXJlbnQ7CisgICAgICAg
IHBhcmVudExpc3RUcmVlRWxlbWVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisgICAgICAg
IGlmICh3YXNTZWxlY3RlZCkKKyAgICAgICAgICAgIHBhcmVudExpc3RUcmVlRWxlbWVudC5zZWxl
Y3QoKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRGF0
YWJhc2V9IGRhdGFiYXNlCiAgICAgICovCiAgICAgc2VsZWN0RGF0YWJhc2U6IGZ1bmN0aW9uKGRh
dGFiYXNlKQpAQCAtNDc2LDYgKzUwMywxOSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9pbm5lclNob3dWaWV3KHZpZXcpOwogICAgIH0s
CiAKKyAgICBfZHJvcERPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2UpCisgICAgeworICAg
ICAgICBpZiAoIWRvbVN0b3JhZ2UpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHZhciB2
aWV3ID0gdGhpcy5fZG9tU3RvcmFnZVZpZXdzLmdldChkb21TdG9yYWdlKTsKKyAgICAgICAgaWYg
KCF2aWV3KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0aGlzLl9kb21TdG9yYWdlVmll
d3MucmVtb3ZlKGRvbVN0b3JhZ2UpOworICAgICAgICBpZiAoIXZpZXcuaXNTaG93aW5nKCkpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuY2xvc2VWaXNpYmxlVmlldygpOworICAg
IH0sCisKICAgICBzaG93Q29va2llczogZnVuY3Rpb24odHJlZUVsZW1lbnQsIGNvb2tpZURvbWFp
bikKICAgICB7CiAgICAgICAgIHZhciB2aWV3ID0gdGhpcy5fY29va2llVmlld3NbY29va2llRG9t
YWluXTsKQEAgLTU3Miw2ICs2MTIsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZGF0YWJhc2UuZ2V0VGFibGVOYW1lcyh0YWJsZU5hbWVzQ2Fs
bGJhY2spOwogICAgIH0sCiAKKyAgICBfcG9wdWxhdGVET01TdG9yYWdlVHJlZTogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygp
LmZvckVhY2godGhpcy5fYWRkRE9NU3RvcmFnZS5iaW5kKHRoaXMpKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VBZGRlZCwgdGhpcy5fZG9tU3RvcmFnZUFkZGVk
LCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzLkRPTVN0b3JhZ2VSZW1v
dmVkLCB0aGlzLl9kb21TdG9yYWdlUmVtb3ZlZCwgdGhpcyk7CisgICAgfSwKKwogICAgIF9wb3B1
bGF0ZUFwcGxpY2F0aW9uQ2FjaGVUcmVlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlz
Ll9hcHBsaWNhdGlvbkNhY2hlTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2Fj
aGVNb2RlbCgpOwpAQCAtMTg1MCwxNCArMTg5NywxNCBAQCBXZWJJbnNwZWN0b3IuSURCSW5kZXhU
cmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgKi8KIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJl
ZUVsZW1lbnQgPSBmdW5jdGlvbihzdG9yYWdlUGFuZWwsIGRvbVN0b3JhZ2UsIGNsYXNzTmFtZSkK
IHsKLSAgICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0
b3JhZ2VQYW5lbCwgbnVsbCwgZG9tU3RvcmFnZS5kb21haW4gPyBkb21TdG9yYWdlLmRvbWFpbiA6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9jYWwgRmlsZXMiKSwgWyJkb21zdG9yYWdlLXN0b3Jh
Z2UtdHJlZS1pdGVtIiwgY2xhc3NOYW1lXSk7CisgICAgV2ViSW5zcGVjdG9yLkJhc2VTdG9yYWdl
VHJlZUVsZW1lbnQuY2FsbCh0aGlzLCBzdG9yYWdlUGFuZWwsIG51bGwsIGRvbVN0b3JhZ2Uuc2Vj
dXJpdHlPcmlnaW4gPyBkb21TdG9yYWdlLnNlY3VyaXR5T3JpZ2luIDogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJMb2NhbCBGaWxlcyIpLCBbImRvbXN0b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0iLCBj
bGFzc05hbWVdKTsKICAgICB0aGlzLl9kb21TdG9yYWdlID0gZG9tU3RvcmFnZTsKIH0KIAogV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgZ2V0IGl0
ZW1VUkwoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlOi8vIiArIHRoaXMuX2RvbVN0
b3JhZ2UuZG9tYWluICsgIi8iICsgKHRoaXMuX2RvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2UgPyAi
bG9jYWwiIDogInNlc3Npb24iKTsKKyAgICAgICAgcmV0dXJuICJzdG9yYWdlOi8vIiArIHRoaXMu
X2RvbVN0b3JhZ2Uuc2VjdXJpdHlPcmlnaW4gKyAiLyIgKyAodGhpcy5fZG9tU3RvcmFnZS5pc0xv
Y2FsU3RvcmFnZSA/ICJsb2NhbCIgOiAic2Vzc2lvbiIpOwogICAgIH0sCiAKICAgICBvbnNlbGVj
dDogZnVuY3Rpb24oc2VsZWN0ZWRCeVVzZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5k
ZXggZWFkZDNkODdiZmY4OTQ1ODk5NjY1MzEyMzY3ZmE0MGM5NjBmMjY5OS4uM2YyNmIxMTQ3ZjE1
NmM5YjUzNDkxMTY0MDQ2NWNjMjhlNjNkNzA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cApAQCAtNzYyLDcgKzc2Miw2IEBAIFN0b3JhZ2UqIERPTVdpbmRvdzo6c2Vzc2lvblN0b3JhZ2Uo
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRV
c2VET01TdG9yYWdlKHBhZ2UsIHN0b3JhZ2VBcmVhLmdldCgpLCBmYWxzZSwgbV9mcmFtZSk7CiAK
ICAgICBtX3Nlc3Npb25TdG9yYWdlID0gU3RvcmFnZTo6Y3JlYXRlKG1fZnJhbWUsIHN0b3JhZ2VB
cmVhLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG1fc2Vzc2lvblN0b3JhZ2UuZ2V0KCk7CkBAIC04
MDIsNyArODAxLDYgQEAgU3RvcmFnZSogRE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UoRXhjZXB0aW9u
Q29kZSYgZWMpIGNvbnN0CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVc2VET01TdG9y
YWdlKHBhZ2UsIHN0b3JhZ2VBcmVhLmdldCgpLCB0cnVlLCBtX2ZyYW1lKTsKIAogICAgIG1fbG9j
YWxTdG9yYWdlID0gU3RvcmFnZTo6Y3JlYXRlKG1fZnJhbWUsIHN0b3JhZ2VBcmVhLnJlbGVhc2Uo
KSk7CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlLmdldCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmYzljMWY5ZThl
MjZiN2VlNGZkYjczZjg5NWI2NDg0ZDllYWM0NTMuLjNjZjA1Y2VmYjdlMDUyZmNmMGQ3N2JkMGE1
ZjUxMWJiZmY4YmU1NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMy0wMi0yMCAgQWxleGFu
ZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IExvY2FsL3Nlc3Npb24gc3RvcmFnZSB0cmVlIGl0ZW1zIGluIHRoZSBSZXNvdXJjZXMgcGFu
ZWwgYWZ0ZXIgcGFnZSByZWZyZXNoIGFyZSBub3Qgc2hvd24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU3MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxl
ZC9kb20tc3RvcmFnZS1vcGVuLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4uaHRtbDoKKworMjAxMy0wMi0yMCAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IEludHJvZHVjZSBTZWN1cml0eU9yaWdpbkFkZGVkIGFuZCBTZWN1cml0eU9yaWdpblJl
bW92ZWQgZXZlbnRzIGludG8gUmVzb3VyY2VUcmVlTW9kZWwKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDIzMgogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9kb20tc3Rv
cmFnZS1vcGVuLWV4cGVjdGVkLnR4dAppbmRleCBjYmVkZjcwOTM5NTllZTc4MjA1MDk4ODFhMmJh
MzUwZDhkMjQzNzYwLi5hNDY4MjExYTU2N2Y1NzNkOGMwNDA3N2IwOTE5MTBiMmIxZWUyMjlkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1z
dG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw3
IEBACi1UZXN0cyB0aGF0IFdlYiBJbnNwZWN0b3IgZ2V0cyBwb3B1bGF0ZWQgd2l0aCBET00gc3Rv
cmFnZXMgdGhhdCB3ZXJlIG9wZW5lZCBiZWZvcmUgaW5zcGVjdG9yIGlzIHNob3duLgorVGVzdHMg
dGhhdCBXZWIgSW5zcGVjdG9yIGdldHMgcG9wdWxhdGVkIHdpdGggRE9NIHN0b3JhZ2VzIGFjY29y
ZGluZyB0byBzZWN1cml0eSBvcmlnaW5zIGZvdW5kIGluIHRoZSBwYWdlLgogCi1Eb21haW46IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMAorU2VjdXJpdHlPcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MAorSXNMb2NhbFN0b3JhZ2U6IHRydWUKK1NlY3VyaXR5T3JpZ2luOiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAKIElzTG9jYWxTdG9yYWdlOiBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1s
CmluZGV4IDIwMTgxYzY3MmMwNjljOGZhODZiNTk2MTk4ZTA0NGJhZDM4MDAzMjQuLjEzMDIwMDcy
NGU1YWFhZTQ0ZmEyNjI3NjI3MDE3OGFkMjRmNmI2ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Bl
bi5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAg
dmFyIHN0b3JhZ2VzID0gV2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpOwog
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0b3JhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRG9tYWluOiAiICsgc3RvcmFnZXNbaV0u
ZG9tYWluKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWN1cml0eU9y
aWdpbjogIiArIHN0b3JhZ2VzW2ldLnNlY3VyaXR5T3JpZ2luKTsKICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJJc0xvY2FsU3RvcmFnZTogIiArIHN0b3JhZ2VzW2ldLmlzTG9j
YWxTdG9yYWdlKTsKICAgICAgICAgfQogICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwpAQCAtMzQsNiArMzQsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogPC9oZWFkPgogPGJvZHkg
b25sb2FkPSJvbmxvYWQoKSI+Ci08cD5UZXN0cyB0aGF0IFdlYiBJbnNwZWN0b3IgZ2V0cyBwb3B1
bGF0ZWQgd2l0aCBET00gc3RvcmFnZXMgdGhhdCB3ZXJlIG9wZW5lZCBiZWZvcmUgaW5zcGVjdG9y
IGlzIHNob3duLjwvcD4KKzxwPlRlc3RzIHRoYXQgV2ViIEluc3BlY3RvciBnZXRzIHBvcHVsYXRl
ZCB3aXRoIERPTSBzdG9yYWdlcyBhY2NvcmRpbmcgdG8gc2VjdXJpdHkgb3JpZ2lucyBmb3VuZCBp
biB0aGUgcGFnZS48L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189474</attachid>
            <date>2013-02-21 01:34:05 -0800</date>
            <delta_ts>2013-02-21 01:59:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109572-20130221133025.patch</filename>
            <type>text/plain</type>
            <size>79192</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwNjI0YzRiMjNhYWFl
ZDVlOWVmODUyYTg3ZTFhNDMxYTI3OTE2Ni4uNWVkOWVlNzFmOTY4OWFiNTY3NDQyNmQwNzRkOWQ0
OTYwZWE1MGU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEzLTAyLTIxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUgaXRlbXMgaW4gdGhlIFJlc291cmNlcyBw
YW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBzaG93bgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6aXNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZW5hYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlzYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmdldERPTVN0b3Jh
Z2VJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjp0b0Vycm9yU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3RvcmFnZUl0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZW1vdmVET01TdG9yYWdl
SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnN0b3Jh
Z2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRpZERp
c3BhdGNoRE9NU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZmluZFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAo
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAg
ICAgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmZpbmRGcmFtZVdpdGhTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JQ
YWdlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlLnN0b3JhZ2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFn
ZS5wcm90b3R5cGUuZ2V0IGlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnBy
b3RvdHlwZS5nZXQgc2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2UucHJvdG90eXBlLmdldEl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlLnByb3RvdHlwZS5zZXRJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
LnByb3RvdHlwZS5yZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUu
X3NlY3VyaXR5T3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUuX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fc3RvcmFnZUtleSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZUl0ZW1zQ2xl
YXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5f
ZG9tU3RvcmFnZUl0ZW1SZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
TW9kZWwucHJvdG90eXBlLl9kb21TdG9yYWdlSXRlbUFkZGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLnN0b3JhZ2VGb3JJZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5zdG9yYWdlcyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLndhc1Nob3duKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3LnByb3RvdHlwZS51cGRhdGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9z
aG93RE9NU3RvcmFnZUl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRl
bXNWaWV3LnByb3RvdHlwZS5fZGF0YUdyaWRGb3JET01TdG9yYWdlSXRlbXMpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9yZWZyZXNoQnV0dG9u
Q2xpY2tlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlLl9pbml0aWFsaXplKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2ZyYW1lTmF2aWdhdGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2RvbVN0b3Jh
Z2VBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBl
Ll9kb21TdG9yYWdlUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLl9wb3B1bGF0ZURPTVN0b3JhZ2VUcmVlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGl0ZW1VUkwpOgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6c2Vzc2lvblN0b3Jh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpsb2NhbFN0b3JhZ2UpOgorCiAyMDEz
LTAyLTIwICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFRhYmJlZEVkaXRvckNvbnRhaW5lciBhbmQgT3BlblJlc291cmNlRGlh
bG9nIHNob3VsZCBzaG93IHVpU291cmNlQ29kZSBwYXRoIGFuZCBuYW1lIGluc3RlYWQgb2YgcGFy
c2VkVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDNmODlhMGVjMmU5NWMzMzE0YzBiMmI4NTFi
ZWFjZmU4ZjA1MWZhMTQuLjQ1MDE3YjQ1ZjA3YWQ2MWZlYzQ5MWY4N2JmZWUwMzQ0NDU0MGNmMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjIzLDcgKzE2MjMsNiBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuY3BwCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZS5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDYxZjQxYmM0MjJlMTk0YzkxZjlkNWRmNDkwOTE5NGE2ZmRlZTZkMGIuLjExNzJiNjY5Mjc1MDVm
YmY3ZjkyZmFjNjU1M2VlN2M4OWE2YWUzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMzgzOCw4ICszODM4LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwKLQlTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCBcCi0JU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggOWEwOWEwNDYwNDhmNzI0NTNjNDI1YWFmMjNkYTI0YTE4OTQ1ODdlMC4uNWQ2N2Nm
MGRlMjY1NDA5OTE0Mjg1NTAzZTAxN2QwMDNiZTlmYWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03OTgs
NyArNzk4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50
LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIFwKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBcCi0gICAgaW5zcGVjdG9y
L0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5j
cHAgXApAQCAtMTk5OSw3ICsxOTk4LDYgQEAgSEVBREVSUyArPSBcCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVn
Z2VyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIFwK
LSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kQ2xpZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGY3NzQ0NDU0NWFiMWIxMjlkMGQ5MzBlNDNh
NDJmOTU1NWY5YWFjNzYuLmJhNTZiY2IyZTEyNTNlYjE0YjVhYzA0YTc4YTljMjc5OTg4ZmZmNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTE4NTksOCArMTg1OSw2IEBACiAgICAgICAgICAgICAnaW5z
cGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCcsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCcsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAnLAotICAgICAgICAgICAgJ2luc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCcsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL0lu
c3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRGF0
YWJhc2VJbnN0cnVtZW50YXRpb24uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA2MzNiMGY0NzQ1
MmQ4ODA5ZGIxYmIxOWVhNjE2MzljOWYxOGI0MDMwLi5jMTYzYThlNTMzOTUxZmZmMGEzNDQ4MDcw
ZjYyNmIyMmIyYjM4YzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE5MTgyLDcgKzE5MTgyLDYg
QEAgX19aTjNXVEYxN0hhc2hNYXBUcmFuc2xhdG9ySVN0NHBhaXJJTlNfNlJlZlB0cklON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luRUVFTlMyX0kKIF9fWk43V2ViQ29yZTI0SW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uMjBkaWRVc2VET01TdG9yYWdlSW1wbEVQTlNfMTlJbnN0cnVtZW50aW5nQWdlbnRz
RVBOU18xMVN0b3JhZ2VBcmVhRWJQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMjRJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQxNmRpZFVzZURPTVN0b3JhZ2VFUE5TXzExU3RvcmFnZUFyZWFFYlBOU181
RnJhbWVFCiBfX1pON1dlYkNvcmU3U3RvcmFnZTZjcmVhdGVFUE5TXzVGcmFtZUVOM1dURjEwUGFz
c1JlZlB0cklOU18xMVN0b3JhZ2VBcmVhRUVFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZUMxRVBOU183U3RvcmFnZUViUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTR0
b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzdTdG9yYWdl
RQogX19aTjdXZWJDb3JlNHdyYXBJTlNfOUpTU3RvcmFnZUVOU183U3RvcmFnZUVFRU4zSlNDN0pT
VmFsdWVFUE5TM185RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBUMF8KIF9fWk43
V2ViQ29yZTE1Z2V0RE9NU3RydWN0dXJlSU5TXzlKU1N0b3JhZ2VFRUVQTjNKU0M5U3RydWN0dXJl
RVBOUzJfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTE5MjA1LDcgKzE5
MjA0LDYgQEAgX19aTjdXZWJDb3JlMTRKU1N0b3JhZ2VPd25lcjI2aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHNFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm8KIF9fWk43V2ViQ29yZTE0SlNTdG9yYWdl
T3duZXI4ZmluYWxpemVFTjNKU0M2SGFuZGxlSU5TMV83VW5rbm93bkVFRVB2CiBfX1pON1dlYkNv
cmU5SlNTdG9yYWdlRDFFdgogX19aTjdXZWJDb3JlN1N0b3JhZ2VEMUV2Ci1fX1pON1dlYkNvcmUy
N0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUQwRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5
T3JpZ2luNWVxdWFsRVBLUzBfCiBfX1pON1dlYkNvcmU5SlNTdG9yYWdlMTBuYW1lR2V0dGVyRVBO
M0pTQzlFeGVjU3RhdGVFTlMxXzdKU1ZhbHVlRVJLTlMxXzEwSWRlbnRpZmllckUKIF9fWk5LN1dl
YkNvcmU3U3RvcmFnZTdnZXRJdGVtRVJLTjNXVEY2U3RyaW5nRQpAQCAtMjAzNzQsNyArMjAzNzIs
NiBAQCBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5TXzI1SlNDU1NWYWx1ZUxpc3RD
b25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdAogX19aTjdXZWJDb3JlMzBqc0RPTVdpbmRvd0Zp
bGVMaXN0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJ
ZGVudGlmaWVyRQogX19aTjdXZWJDb3JlMTBKU0ZpbGVMaXN0MTRnZXRDb25zdHJ1Y3RvckVQTjNK
U0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9iamVjdEUKIF9fWk43V2ViQ29yZTE3Z2V0RE9N
Q29uc3RydWN0b3JJTlNfMjFKU0ZpbGVMaXN0Q29uc3RydWN0b3JFRUVQTjNKU0M4SlNPYmplY3RF
UE5TMl85RXhlY1N0YXRlRVBLTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKLV9fWk5LN1dlYkNvcmUy
N0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTE3aXNTYW1lSG9zdEFuZFR5cGVFUE5TXzVGcmFt
ZUViCiBfX1pON1dlYkNvcmU1M2pzRE9NV2luZG93U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aFJlbENvbnN0cnVjdG9yRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRl
bnRpZmllckUKIF9fWk43V2ViQ29yZTMzSlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVs
MTRnZXRDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRKU0dsb2JhbE9iamVjdEUK
IF9fWk43V2ViQ29yZTE3Z2V0RE9NQ29uc3RydWN0b3JJTlNfNDRKU1NWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNTbW9vdGhSZWxDb25zdHJ1Y3RvckVFRVBOM0pTQzhKU09iamVjdEVQTlMyXzlFeGVjU3Rh
dGVFUEtOU18xN0pTRE9NR2xvYmFsT2JqZWN0RQpAQCAtMjc0MDEsMjMgKzI3Mzk4LDE0IEBAIF9f
Wk43V2ViQ29yZTE4SW5zcGVjdG9yUGFnZUFnZW50MTBmcmFtZUZvcklkRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlMThJbnNwZWN0b3JQYWdlQWdlbnQxNXJlc291cmNlQ29udGVudEVQTjNX
VEY2U3RyaW5nRVBOU181RnJhbWVFUktOU180S1VSTEVTM18KIF9fWk43V2ViQ29yZUwxOGRlY29k
ZU1haW5SZXNvdXJjZUVQTlNfNUZyYW1lRVBOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmVMMThk
ZWNvZGVTaGFyZWRCdWZmZXJFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTJTaGFyZWRCdWZmZXJFRUVS
S05TMF82U3RyaW5nRVBTNF8KLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlNGJpbmRFUE5TXzE3SW5zcGVjdG9yRnJvbnRlbmRFCiBfX1pON1dlYkNvcmUxN0luc3BlY3Rv
ckZyb250ZW5kMTBET01TdG9yYWdlMTNhZGRET01TdG9yYWdlRU4zV1RGMTBQYXNzUmVmUHRySU5T
XzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUxNVN0b3JhZ2VBcmVhU3luYzEzc2No
ZWR1bGVDbGVhckV2CiBfX1pON1dlYkNvcmUyNkluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyMzFE
T01TdG9yYWdlX2dldERPTVN0b3JhZ2VFbnRyaWVzRWxQTlNfMTVJbnNwZWN0b3JPYmplY3RFCiBf
X1pON1dlYkNvcmUyNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDIwZ2V0RE9NU3RvcmFnZUVudHJp
ZXNFUE4zV1RGNlN0cmluZ0VpUE5TMV82UmVmUHRySU5TXzE0SW5zcGVjdG9yQXJyYXlFRUUKLV9f
Wk4zV1RGOUhhc2hUYWJsZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJ
bnRIYXNoSWpFRU5TXzE0UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVf
RUVFRVNEX0UxNmxvb2t1cEZvcldyaXRpbmdFUktpCi1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBh
aXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVF
TlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNo
VHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FM2FkZElpUzVfTlNfMTdI
YXNoTWFwVHJhbnNsYXRvcklTNl9TRl9TQV9FRUVFUzFfSU5TXzE3SGFzaFRhYmxlSXRlcmF0b3JJ
aVM2X1M4X1NBX1NGX1NEX0VFYkVSS1RfUktUMF8KLV9fWk4zV1RGOUhhc2hUYWJsZUlpU3Q0cGFp
cklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZUVFRUVO
U18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpFRU5TXzE0UGFpckhhc2hU
cmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0U0ZmluZElpTlNfMjJJZGVu
dGl0eUhhc2hUcmFuc2xhdG9ySWlTNl9TQV9FRUVFTlNfMTdIYXNoVGFibGVJdGVyYXRvcklpUzZf
UzhfU0FfU0ZfU0RfRUVSS1RfCi1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQ
dHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmly
c3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEw
SGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FNWNsZWFyRXYKLV9fWk4zV1RGOUhhc2hUYWJs
ZUlpU3Q0cGFpcklpTlNfNlJlZlB0cklON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZUVFRUVOU18xOFBhaXJGaXJzdEV4dHJhY3RvcklTNl9FRU5TXzdJbnRIYXNoSWpFRU5TXzE0
UGFpckhhc2hUcmFpdHNJTlNfMTBIYXNoVHJhaXRzSWlFRU5TQ19JUzVfRUVFRVNEX0U2cmVoYXNo
RWkKLV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlMzFzdGFydFJlcG9y
dGluZ0NoYW5nZXNUb0Zyb250ZW5kRXYKIF9fWk5LN1dlYkNvcmU3U3RvcmFnZTNrZXlFagogX19a
Tks3V2ViQ29yZTE1U3RvcmFnZUFyZWFJbXBsM2tleUVqCiBfX1pON1dlYkNvcmUxMFN0b3JhZ2VN
YXAza2V5RWoKIF9fWk43V2ViQ29yZTEwU3RvcmFnZU1hcDE4c2V0SXRlcmF0b3JUb0luZGV4RWoK
LV9fWk43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlZXFFUktOU18xM0V2ZW50
TGlzdGVuZXJFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTZ1bmJp
bmRFdgogX19aTjdXZWJDb3JlMTRDb25zb2xlTWVzc2FnZTEzYWRkVG9Gcm9udGVuZEVQTlNfMTdJ
bnNwZWN0b3JGcm9udGVuZDdDb25zb2xlRVBOU18yMUluamVjdGVkU2NyaXB0TWFuYWdlckUKIF9f
Wk43V2ViQ29yZTE3SW5zcGVjdG9yRnJvbnRlbmQ3Q29uc29sZTEybWVzc2FnZUFkZGVkRU4zV1RG
MTBQYXNzUmVmUHRySU5TXzE1SW5zcGVjdG9yT2JqZWN0RUVFCiBfX1pON1dlYkNvcmUyNkluc3Bl
Y3RvckJhY2tlbmREaXNwYXRjaGVyMTFQYWdlX3JlbG9hZEVsUE5TXzE1SW5zcGVjdG9yT2JqZWN0
RQpAQCAtMzY0MDUsMTAgKzM2MzkzLDggQEAgX19aVFZON1dlYkNvcmUxMVR5cGVCdWlsZGVyNUFy
cmF5SU5TMF8zRE9NNE5vZGVFRUUKIF9fWlRWTjdXZWJDb3JlMThJbnNwZWN0b3JCYXNlQWdlbnRJ
TlNfMTdJbnNwZWN0b3JET01BZ2VudEVFRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNfMjhSZXZh
bGlkYXRlU3R5bGVBdHRyaWJ1dGVUYXNrRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVjdG9yQmFz
ZUFnZW50SU5TXzI1SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudEVFRQotX19aVFZOM1dURjIxTWVt
b3J5SW5zdHJ1bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2VFRUUKIF9fWlRWTjdXZWJDb3JlMTFUeXBlQnVpbGRlcjVBcnJheUlOUzFfSU4zV1RG
NlN0cmluZ0VFRUVFCiBfX1pUVk43V2ViQ29yZTE4SW5zcGVjdG9yQmFzZUFnZW50SU5TXzI0SW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50RUVFCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZTE0c19uZXh0VW51c2VkSWRFCiBfX1pUVk4zV1RGMjFNZW1vcnlJbnN0cnVtZW50
YXRpb243V3JhcHBlcklON1dlYkNvcmUxMVN0b3JhZ2VBcmVhRUVFCiBfX1pUVk43V2ViQ29yZTVU
aW1lcklOU18yOEluc3BlY3RvckJhY2tlbmREaXNwYXRjaFRhc2tFRUUKIF9fWlRWTjdXZWJDb3Jl
MjBGcm9udGVuZE1lbnVQcm92aWRlckUKQEAgLTM4NDU0LDcgKzM4NDQwLDYgQEAgX19aTjdXZWJD
b3JlMThXZWJDb3JlTWVtb3J5VHlwZXM5SW5zcGVjdG9yRQogX19aTjdXZWJDb3JlMThXZWJDb3Jl
TWVtb3J5VHlwZXMxOUluc3BlY3RvckNvbnRyb2xsZXJFCiBfX1pON1dlYkNvcmUxOFdlYkNvcmVN
ZW1vcnlUeXBlczIwSW5zcGVjdG9yTWVtb3J5QWdlbnRFCiBfX1pON1dlYkNvcmUxOFdlYkNvcmVN
ZW1vcnlUeXBlczI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50RQotX19aTjdXZWJDb3JlMThXZWJD
b3JlTWVtb3J5VHlwZXMyOEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZXNFCiBfX1pON1dlYkNv
cmUxOFdlYkNvcmVNZW1vcnlUeXBlczE2SW5zcGVjdG9yT3ZlcmxheUUKIF9fWk43V2ViQ29yZTE4
V2ViQ29yZU1lbW9yeVR5cGVzMjJJbnNwZWN0b3JQcm9maWxlckFnZW50RQogX19aTjdXZWJDb3Jl
MThXZWJDb3JlTWVtb3J5VHlwZXMyMkluc3BlY3RvckRlYnVnZ2VyQWdlbnRFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDY3NGU5NDUxYjIwMjY2
YWM0MWQ1OWM3MzQ2NGU3MDc0MDUxMDNlZWMuLmJkOTVkMzhiNTFkNzQwYzhlNTgzZDhhM2JhY2U1
YWM4YzQzZWM4NTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC03NjEwMywzMCArNzYxMDMsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1
Y3Rpb258V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA4YTNj
YzU0NDkwZjFiNjQwM2Q1M2E3ZWY2NmI1MTdkOTM2ZmNmYjhkLi5lNmI4NzdhNGZlNTZhMzFjZWZh
NDYwNzBhN2FiMmZjZjE0MTg5OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTgwMzgsMTAgKzgwMzgsNiBAQAogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxl
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZS5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTA4MTgsNyArMTA4
MTQsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRP
TUFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2Vu
dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckZy
b250ZW5kQ2hhbm5lbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9y
XEluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMWRhZmE2ODQ0
MDhjMGZhYWQ0YTFiMTViMzczZTI0YzVlNmNlZDRlMy4uYzY0MzhhMmFkMWM4ZWQ5M2FhNjc1MjU1
NjM5NWUzODMxMmJmMjY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjQ4Myw5ICs2NDgzLDYgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQuY3BwIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmNwcCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEzNzkxLDkgKzEzNzg4LDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCI+CiAg
ICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZS5oIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yRmlsZVN5c3Rl
bUFnZW50LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmZjdmNDkxNTViMzA5YTk3NDQzOTM0ZmMxMmI5NWY1OGY0NzA2MjM0Li4wZmVl
NGJjMDg2MmYyZmYxZjczYjU2ZDJmNjE2NDBlN2UyNzUxY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTE5LDggKzExMTks
NiBAQAogCQk0MUUxQjFEMTBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNCMEZGNTk4
NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oICovOyB9OwogCQk0MUUxQjFEMzBGRjU5ODY5
MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNEMEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3Jr
ZXIuY3BwICovOyB9OwogCQk0MUUxQjFENDBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFD
RTBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmggKi87IH07Ci0JCTQxRjA2MTc0MEY1
RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MTcyMEY1RjAwQUMwMEEw
N0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCAqLzsgfTsKLQkJNDFGMDYxNzUw
RjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE3MzBGNUYwMEFD
MDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCAqLzsgfTsKIAkJNDFG
MDYxOEUwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMg
LyogQ29uc29sZU1lc3NhZ2UuaCAqLzsgfTsKIAkJNDFGMDYxOEYwRjVGMDY5ODAwQTA3RUFDIC8q
IENvbnNvbGVNZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRjA2MThEMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAg
Ki87IH07CiAJCTQxRjA2MjE0MEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFzZVJl
c291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUYwNjIxMjBGNUYxOTI2MDBBMDdFQUMgLyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oICov
OyB9OwpAQCAtODUwMyw4ICs4NTAxLDYgQEAKIAkJNDFFMUIxQ0QwRkY1OTg2OTAwNTc2QjNCIC8q
IFNoYXJlZFdvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBT
aGFyZWRXb3JrZXIuY3BwOyBwYXRoID0gd29ya2Vycy9TaGFyZWRXb3JrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUxQjFDRTBGRjU5ODY5MDA1NzZCM0IgLyogU2hhcmVk
V29ya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYXJlZFdvcmtlci5o
OyBwYXRoID0gd29ya2Vycy9TaGFyZWRXb3JrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFFMUIxQ0YwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gU2hhcmVkV29ya2VyLmlkbDsgcGF0aCA9IHdvcmtlcnMvU2hhcmVk
V29ya2VyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFGMDYxNzIwRjVGMDBB
QzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFGMDYxNzMwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3Bl
Y3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUYwNjE4QzBGNUYwNjk4MDBBMDdFQUMgLyogQ29uc29sZU1lc3NhZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29uc29sZU1lc3NhZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYxOEQwRjVGMDY5ODAwQTA3RUFDIC8qIENv
bnNvbGVNZXNzYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENv
bnNvbGVNZXNzYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYyMTIw
RjVGMTkyNjAwQTA3RUFDIC8qIEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyNjUsOCArMTUyNjEsNiBAQAogCQkJCUYzRDRD
NDc3MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggKi8sCiAJ
CQkJN0E3NEVDQjgxMDE4MzlBNTAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5j
cHAgKi8sCiAJCQkJN0E3NEVDQjkxMDE4MzlBNjAwQkY5MzlFIC8qIEluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5oICovLAotCQkJCTQxRjA2MTczMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UuY3BwICovLAotCQkJCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAv
KiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCAqLywKIAkJCQkxNUQxN0QxRTE0NzIzMUVC
MDA1RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmNwcCAqLywKIAkJCQkxNUQxN0Qx
RjE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFnZW50LmggKi8sCiAJCQkJ
MjI3Nzc3NUYxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oICov
LApAQCAtMjQ3NjMsNyArMjQ3NTcsNiBAQAogCQkJCTdBMjQ1ODdDMTAyMUVBRjQwMDBBMDBBQSAv
KiBJbnNwZWN0b3JET01BZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjNENEM0NzkxMkUwNzY2
MzAwM0RBMTUwIC8qIEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdBNzRFQ0JCMTAxODM5QTYwMEJGOTM5RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxRjA2MTc0MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0
b3JET01TdG9yYWdlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1RDE3RDIyMTQ3MjMx
RUIwMDVFQkNBNiAvKiBJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU3OERBMjBFMTUyMEVCOEMwMDYxNDFDMSAvKiBJbnNwZWN0b3JGcm9udGVuZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjI3Nzc3NjAxMzQ1REVBOTAwOEVBNDU1IC8qIEluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODA1Nyw3ICsyODA1MCw2IEBACiAJCQkJ
N0EyNDU4N0IxMDIxRUFGNDAwMEEwMEFBIC8qIEluc3BlY3RvckRPTUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUYzRDRDNDc4MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1
Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBNzRFQ0JBMTAxODM5QTYwMEJGOTM5
RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDFG
MDYxNzUwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxNUQxN0QyMTE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9y
RmlsZVN5c3RlbUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRGNEY1RkZCMTFDQkQyRTEw
MEExODZCRiAvKiBJbnNwZWN0b3JGcm9udGVuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzQ0
Qzc1ODExMjk0RkY2MDBGMjZFRUUgLyogSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA0MTU5M2VhODY5MThkNTkwNzk4ZjQxMTZlMDhlODAx
NmJjZDdjYWIyLi4yZDg1MWEyZjU1YTA5ZGUzNWE2M2VmM2IzMzY0OGUzMzQyZjcwYTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24u
Y3BwCkBAIC02MCw3ICs2MCw2IEBAIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVz
OjpJbnNwZWN0b3IgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1l
bW9yeVR5cGVzOjpJbnNwZWN0b3JDb250cm9sbGVyID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlP
YmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yTWVtb3J5QWdlbnQgPSAiV2Vi
SW5zcGVjdG9yIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsKLU1lbW9yeU9iamVjdFR5cGUgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VzID0gIldlYkluc3Bl
Y3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yT3Zl
cmxheSA9ICJXZWJJbnNwZWN0b3IiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlw
ZXM6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50ID0gIldlYklu
c3BlY3RvciI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaAppbmRleCBhYmNmMTc2MTYxZGZmNTk2MDlhOTA4ZWNiNjE2MTcyNGI0YjE5YWVl
Li4xMzY0MTlmZDI3MGY3MTk2YjA4NWY4ZTEwZmVkNTY2ZjZmYzZmYTJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTY1LDcg
KzY1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckNv
bnRyb2xsZXI7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yTWVtb3J5QWdl
bnQ7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OwotICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZXM7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yT3ZlcmxheTsKICAgICBz
dGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbnNwZWN0b3JQcm9maWxlckFnZW50OwogICAgIHN0YXRp
YyBNZW1vcnlPYmplY3RUeXBlIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5kZXggYzllNjNlZjQ5
ODc2NWUyZTdkODFmZDYwMDA4ODFhMTJjZDU3MjZmNC4uNzAwMDk2N2Y1ZWZkNjA2MWMyODY4NTMw
NWRkNDVjZmRjZTU0MDc2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMTg1LDcgKzE4NSw3IEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNhc2UgIlN0b3JhZ2UiOgogICAgICAgICAgICAgICAg
IHZhciBzdG9yYWdlSWQgPSBJbmplY3RlZFNjcmlwdEhvc3Quc3RvcmFnZUlkKG9iamVjdCkKICAg
ICAgICAgICAgICAgICBpZiAoc3RvcmFnZUlkKQotICAgICAgICAgICAgICAgICAgICBoaW50cy5k
b21TdG9yYWdlSWQgPSBzdG9yYWdlSWQ7CisgICAgICAgICAgICAgICAgICAgIGhpbnRzLmRvbVN0
b3JhZ2VJZCA9IEluamVjdGVkU2NyaXB0SG9zdC5ldmFsdWF0ZSgiKCIgKyBzdG9yYWdlSWQgKyAi
KSIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIEluamVjdGVk
U2NyaXB0SG9zdC5pbnNwZWN0KG9iamVjdElkLCBoaW50cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggMzIwMGJhOWQxMGIzMWU0OTM3YTlkYjQzMjZiYjU3ZTky
Yjc4NTczMi4uZjQ3NmM5ODlmNmIzN2FiMGVmYzU0Y2UyNjJkMzg2ZDZkMGU4NDVhNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAtMTQyMywyMiArMTQyMywxNiBA
QAogICAgIHsKICAgICAgICAgImRvbWFpbiI6ICJET01TdG9yYWdlIiwKICAgICAgICAgImhpZGRl
biI6IHRydWUsCisgICAgICAgICJkZXNjcmlwdGlvbiI6ICJRdWVyeSBhbmQgbW9kaWZ5IERPTSBz
dG9yYWdlLiIsCiAgICAgICAgICJ0eXBlcyI6IFsKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAiaWQiOiAiU3RvcmFnZUlkIiwKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmci
LAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgaWRlbnRpZmllciBvZiBE
T00gc3RvcmFnZSBlbnRyeS4iLAotICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCi0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJFbnRyeSIs
CiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRE9NIFN0b3JhZ2UgZW50cnkuIiwKKyAgICAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiRE9NIFN0b3JhZ2UgaWRlbnRpZmllci4iLAogICAgICAgICAgICAgICAgICJoaWRk
ZW4iOiB0cnVlLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJEb2N1bWVudCBvcmlnaW4uIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImlzTG9jYWxTdG9yYWdlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVl
IGZvciBsb2NhbCBzdG9yYWdlLiIgfSwKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJp
ZCIsICIkcmVmIjogIlN0b3JhZ2VJZCIsICJkZXNjcmlwdGlvbiI6ICJFbnRyeSBpZCBmb3IgZnVy
dGhlciByZWZlcmVuY2UuIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2VjdXJp
dHlPcmlnaW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiU2VjdXJpdHkgb3Jp
Z2luIGZvciB0aGUgc3RvcmFnZS4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
aXNMb2NhbFN0b3JhZ2UiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIldoZXRo
ZXIgdGhlIHN0b3JhZ2UgaXMgbG9jYWwgc3RvcmFnZSAobm90IHNlc3Npb24gc3RvcmFnZSkuIiB9
CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTE0
NTksNyArMTQ1Myw3IEBACiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVz
IHN0b3JhZ2UgdHJhY2tpbmcsIHByZXZlbnRzIHN0b3JhZ2UgZXZlbnRzIGZyb20gYmVpbmcgc2Vu
dCB0byB0aGUgY2xpZW50LiIKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgIm5hbWUiOiAiZ2V0RE9NU3RvcmFnZUVudHJpZXMiLAorICAgICAgICAgICAgICAg
ICJuYW1lIjogImdldERPTVN0b3JhZ2VJdGVtcyIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RvcmFnZUlkIiwgIiRyZWYi
OiAiU3RvcmFnZUlkIiB9CiAgICAgICAgICAgICAgICAgXSwKQEAgLTE0NzMsOSArMTQ2Nyw2IEBA
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RvcmFnZUlkIiwgIiRyZWYiOiAiU3Rv
cmFnZUlkIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImtleSIsICJ0eXBlIjog
InN0cmluZyIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIsICJ0eXBl
IjogInN0cmluZyIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgInJldHVy
bnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3VjY2VzcyIsICJ0eXBlIjog
ImJvb2xlYW4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgewpAQCAtMTQ4MywyMCArMTQ3NCwxMSBAQAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIsICIkcmVmIjog
IlN0b3JhZ2VJZCIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJrZXkiLCAidHlw
ZSI6ICJzdHJpbmciIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJyZXR1
cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN1Y2Nlc3MiLCAidHlwZSI6
ICJib29sZWFuIiB9CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfQogICAgICAgICBd
LAogICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJu
YW1lIjogImFkZERPTVN0b3JhZ2UiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0b3JhZ2UiLCAiJHJlZiI6ICJFbnRyeSIg
fQotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZCIsCiAgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3Rv
cmFnZUlkIiwgICIkcmVmIjogIlN0b3JhZ2VJZCIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKaW5kZXggNjdjZWE0NjBlMjBlMTlmMmRhZmNmYzk1
Y2RkM2E2NzZiODIwOTkzOS4uMWViOGUyMTVjNWU2NDI4ZTc4Y2FhZWY3YWQwYWI5OTI2ZWQ3Nzg1
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3Bw
CkBAIC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yRE9NQWdlbnQuY3BwIgogI2lu
Y2x1ZGUgIkluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5jcHAiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlLmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAppbmRleCA4NTQ4MzYyMzEwMWVkN2E1OGY4YzJiNDk1MGU1NTFjMjgzMTAz
MGRjLi5mZGM0NGNmOGM3MzdhZWY4ZWQwNzRiNjRhMDZmZGFlZWI1MWQ3OWRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMTcs
NyArMTE3LDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdl
KiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICNpZiBFTkFCTEUoRklMRV9TWVNU
RU0pCiAgICAgbV9hZ2VudHMuYXBwZW5kKEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudDo6Y3JlYXRl
KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgcGFnZUFnZW50LCBtX3N0YXRlLmdldCgpKSk7
CiAjZW5kaWYKLSAgICBPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBkb21TdG9yYWdl
QWdlbnRQdHIoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5n
QWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSk7CisgICAgT3duUHRyPEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQsIG1fc3RhdGUu
Z2V0KCkpKTsKICAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9
IGRvbVN0b3JhZ2VBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBlbmQoZG9tU3RvcmFn
ZUFnZW50UHRyLnJlbGVhc2UoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggMDZjNDI3MGU3MjJhOTI2NTY0
ZTdiYmJmN2IxY2Y4YmU3NmY3MWYzYS4uNzUzNGEzOTY3NTMxY2IxOWY5NTZhODQwYzIyOGRlY2Vm
M2FlOWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRP
TVN0b3JhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5jcHAKQEAgLTM3LDE0ICszNywxOSBAQAogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yRnJvbnRlbmQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgog
I2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJTdG9yYWdlLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFyZWEuaCIKKyNpbmNsdWRlICJTdG9yYWdl
TmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCkBAIC03MSwxMCArNzYsMTAgQEAgc3RhdGljIGJv
b2wgaGFkRXhjZXB0aW9uKEV4Y2VwdGlvbkNvZGUgZWMsIEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZykKICAgICB9CiB9CiAKLUluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3Bl
Y3RvckNvbXBvc2l0ZVN0YXRlKiBzdGF0ZSkKK0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6SW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVT
dGF0ZSogc3RhdGUpCiAgICAgOiBJbnNwZWN0b3JCYXNlQWdlbnQ8SW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50PigiRE9NU3RvcmFnZSIsIGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKQorICAgICwg
bV9wYWdlQWdlbnQocGFnZUFnZW50KQogICAgICwgbV9mcm9udGVuZCgwKQotICAgICwgbV9lbmFi
bGVkKGZhbHNlKQogewogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50KHRoaXMpOwogfQpAQCAtOTIsNTUgKzk3LDM1IEBAIHZvaWQgSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckZyb250ZW5kKCkKIHsKLSAg
ICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkb21TdG9yYWdlRW5kID0gbV9yZXNv
dXJjZXMuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBp
dCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGRvbVN0b3JhZ2VFbmQ7ICsraXQpCi0gICAg
ICAgIGl0LT52YWx1ZS0+dW5iaW5kKCk7CiAgICAgbV9mcm9udGVuZCA9IDA7CiAgICAgZGlzYWJs
ZSgwKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnJlc3RvcmUoKQorYm9v
bCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmlzRW5hYmxlZCgpIGNvbnN0CiB7Ci0gICAgbV9l
bmFibGVkID0gIG1fc3RhdGUtPmdldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0
b3JhZ2VBZ2VudEVuYWJsZWQpOworICAgIHJldHVybiBtX3N0YXRlLT5nZXRCb29sZWFuKERPTVN0
b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkKTsKIH0KIAogdm9pZCBJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ6OmVuYWJsZShFcnJvclN0cmluZyopCiB7Ci0gICAgaWYgKG1f
ZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZW5hYmxlZCA9IHRydWU7Ci0gICAgbV9z
dGF0ZS0+c2V0Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5h
YmxlZCwgbV9lbmFibGVkKTsKLQotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9y
IHJlc291cmNlc0VuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoRE9NU3RvcmFnZVJl
c291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSByZXNv
dXJjZXNFbmQ7ICsraXQpCi0gICAgICAgIGl0LT52YWx1ZS0+YmluZChtX2Zyb250ZW5kKTsKKyAg
ICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdl
bnRFbmFibGVkLCB0cnVlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRp
c2FibGUoRXJyb3JTdHJpbmcqKQogewotICAgIGlmICghbV9lbmFibGVkKQotICAgICAgICByZXR1
cm47Ci0gICAgbV9lbmFibGVkID0gZmFsc2U7Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihET01T
dG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCwgbV9lbmFibGVkKTsKKyAg
ICBtX3N0YXRlLT5zZXRCb29sZWFuKERPTVN0b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdl
bnRFbmFibGVkLCBmYWxzZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpn
ZXRET01TdG9yYWdlRW50cmllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJh
eTxTdHJpbmc+ID4gPiYgZW50cmllcykKK3ZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpn
ZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5
cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgaXRlbXMpCiB7Ci0gICAgSW5zcGVjdG9yRE9N
U3RvcmFnZVJlc291cmNlKiBzdG9yYWdlUmVzb3VyY2UgPSBnZXRET01TdG9yYWdlUmVzb3VyY2VG
b3JJZChzdG9yYWdlSWQpOwotICAgIGlmICghc3RvcmFnZVJlc291cmNlKSB7Ci0gICAgICAgICpl
cnJvclN0cmluZyA9ICJTdG9yYWdlIHJlc291cmNlIG5vdCBmb3VuZCBmb3IgdGhlIGdpdmVuIHN0
b3JhZ2UgaWRlbnRpZmllciI7CisgICAgRnJhbWUqIGZyYW1lOworICAgIFJlZlB0cjxTdG9yYWdl
QXJlYT4gc3RvcmFnZUFyZWEgPSBmaW5kU3RvcmFnZUFyZWEoZXJyb3JTdHJpbmcsIHN0b3JhZ2VJ
ZCwgZnJhbWUpOworICAgIGlmICghc3RvcmFnZUFyZWEpCiAgICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgRnJhbWUqIGZyYW1lID0gc3RvcmFnZVJlc291cmNlLT5mcmFtZSgpOwotICAgIGlmICgh
ZnJhbWUpIHsKLSAgICAgICAgKmVycm9yU3RyaW5nID0gIkZyYW1lIG5vdCBmb3VuZCI7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CiAKLSAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVC
dWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiBzdG9yYWdlRW50cmllcyA9IFR5cGVCdWlsZGVyOjpB
cnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+OjpjcmVhdGUoKTsKKyAgICBSZWZQdHI8
VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiBzdG9yYWdl
SXRlbXMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPjo6
Y3JlYXRlKCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBTdG9yYWdlQXJlYSog
c3RvcmFnZUFyZWEgPSBzdG9yYWdlUmVzb3VyY2UtPnN0b3JhZ2VBcmVhKCk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHN0b3JhZ2VBcmVhLT5sZW5ndGgoZWMsIGZyYW1lKTsgKytpKSB7
CiAgICAgICAgIFN0cmluZyBuYW1lKHN0b3JhZ2VBcmVhLT5rZXkoaSwgZWMsIGZyYW1lKSk7CiAg
ICAgICAgIGlmIChoYWRFeGNlcHRpb24oZWMsIGVycm9yU3RyaW5nKSkKQEAgLTE1MSw4NyArMTM2
LDc1IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpnZXRET01TdG9yYWdlRW50cmll
cyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvCiAgICAgICAgIFJlZlB0cjxUeXBlQnVpbGRl
cjo6QXJyYXk8U3RyaW5nPiA+IGVudHJ5ID0gVHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz46OmNy
ZWF0ZSgpOwogICAgICAgICBlbnRyeS0+YWRkSXRlbShuYW1lKTsKICAgICAgICAgZW50cnktPmFk
ZEl0ZW0odmFsdWUpOwotICAgICAgICBzdG9yYWdlRW50cmllcy0+YWRkSXRlbShlbnRyeSk7Cisg
ICAgICAgIHN0b3JhZ2VJdGVtcy0+YWRkSXRlbShlbnRyeSk7CiAgICAgfQotICAgIGVudHJpZXMg
PSBzdG9yYWdlRW50cmllcy5yZWxlYXNlKCk7CisgICAgaXRlbXMgPSBzdG9yYWdlSXRlbXMucmVs
ZWFzZSgpOwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3RvcmFn
ZUl0ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wqIHN1Y2Nlc3MpCitzdGF0aWMgU3RyaW5n
IHRvRXJyb3JTdHJpbmcoY29uc3QgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlKiBzdG9yYWdlUmVzb3VyY2UgPSBnZXRET01TdG9yYWdlUmVzb3Vy
Y2VGb3JJZChzdG9yYWdlSWQpOwotICAgIGlmIChzdG9yYWdlUmVzb3VyY2UpIHsKLSAgICAgICAg
RXhjZXB0aW9uQ29kZSBleGNlcHRpb24gPSAwOwotICAgICAgICBzdG9yYWdlUmVzb3VyY2UtPnN0
b3JhZ2VBcmVhKCktPnNldEl0ZW0oa2V5LCB2YWx1ZSwgZXhjZXB0aW9uLCBzdG9yYWdlUmVzb3Vy
Y2UtPmZyYW1lKCkpOwotICAgICAgICAqc3VjY2VzcyA9ICFleGNlcHRpb247Ci0gICAgfSBlbHNl
Ci0gICAgICAgICpzdWNjZXNzID0gZmFsc2U7CisgICAgaWYgKGVjKSB7CisgICAgICAgIEV4Y2Vw
dGlvbkNvZGVEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbihlYyk7CisgICAgICAgIHJldHVybiBkZXNj
cmlwdGlvbi5uYW1lOworICAgIH0KKyAgICByZXR1cm4gIiI7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50OjpyZW1vdmVET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0
IFN0cmluZyYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgYm9vbCogc3VjY2VzcykKK3Zv
aWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmlu
ZyogZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQs
IGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQogewotICAgIEluc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNlID0gZ2V0RE9NU3RvcmFnZVJlc291
cmNlRm9ySWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoc3RvcmFnZVJlc291cmNlKSB7Ci0gICAgICAg
IEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgc3RvcmFnZVJlc291cmNlLT5z
dG9yYWdlQXJlYSgpLT5yZW1vdmVJdGVtKGtleSwgZXhjZXB0aW9uLCBzdG9yYWdlUmVzb3VyY2Ut
PmZyYW1lKCkpOwotICAgICAgICAqc3VjY2VzcyA9ICFleGNlcHRpb247Ci0gICAgfSBlbHNlCi0g
ICAgICAgICpzdWNjZXNzID0gZmFsc2U7Ci19CisgICAgRnJhbWUqIGZyYW1lOworICAgIFJlZlB0
cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEgPSBmaW5kU3RvcmFnZUFyZWEoMCwgc3RvcmFnZUlk
LCBmcmFtZSk7CisgICAgaWYgKCFzdG9yYWdlQXJlYSkgeworICAgICAgICAqZXJyb3JTdHJpbmcg
PSAiU3RvcmFnZSBub3QgZm91bmQiOworICAgICAgICByZXR1cm47CisgICAgfQogCi1TdHJpbmcg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzdG9yYWdlSWQoU3RvcmFnZSogc3RvcmFnZSkKLXsK
LSAgICBBU1NFUlQoc3RvcmFnZSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gc3RvcmFnZS0+ZnJhbWUo
KTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIGlzTG9jYWxTdG9yYWdlID0g
KGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKGVjKSA9PSBzdG9y
YWdlICYmICFlYyk7Ci0gICAgcmV0dXJuIHN0b3JhZ2VJZChmcmFtZS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgaXNMb2NhbFN0b3JhZ2UpOworICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0
aW9uID0gMDsKKyAgICBzdG9yYWdlQXJlYS0+c2V0SXRlbShrZXksIHZhbHVlLCBleGNlcHRpb24s
IGZyYW1lKTsKKyAgICBpZiAoZXhjZXB0aW9uKQorICAgICAgICAqZXJyb3JTdHJpbmcgPSB0b0Vy
cm9yU3RyaW5nKGV4Y2VwdGlvbik7CiB9CiAKLVN0cmluZyBJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQ6OnN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNMb2Nh
bFN0b3JhZ2UpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFn
ZUl0ZW0oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSkKIHsKLSAgICBBU1NFUlQoc2VjdXJp
dHlPcmlnaW4pOwotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0b3Jh
Z2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZG9tU3RvcmFnZUVu
ZDsgKytpdCkgewotICAgICAgICBpZiAoaXQtPnZhbHVlLT5pc1NhbWVPcmlnaW5BbmRUeXBlKHNl
Y3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSkpCi0gICAgICAgICAgICByZXR1cm4gaXQtPmtl
eTsKKyAgICBGcmFtZSogZnJhbWU7CisgICAgUmVmUHRyPFN0b3JhZ2VBcmVhPiBzdG9yYWdlQXJl
YSA9IGZpbmRTdG9yYWdlQXJlYSgwLCBzdG9yYWdlSWQsIGZyYW1lKTsKKyAgICBpZiAoIXN0b3Jh
Z2VBcmVhKSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJTdG9yYWdlIG5vdCBmb3VuZCI7Cisg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmV0dXJuIFN0cmluZygpOworCisgICAgRXhjZXB0
aW9uQ29kZSBleGNlcHRpb24gPSAwOworICAgIHN0b3JhZ2VBcmVhLT5yZW1vdmVJdGVtKGtleSwg
ZXhjZXB0aW9uLCBmcmFtZSk7CisgICAgaWYgKGV4Y2VwdGlvbikKKyAgICAgICAgKmVycm9yU3Ry
aW5nID0gdG9FcnJvclN0cmluZyhleGNlcHRpb24pOwogfQogCi1JbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2UqIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Z2V0RE9NU3RvcmFnZVJlc291cmNl
Rm9ySWQoY29uc3QgU3RyaW5nJiBzdG9yYWdlSWQpCitTdHJpbmcgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpzdG9yYWdlSWQoU3RvcmFnZSogc3RvcmFnZSkKIHsKLSAgICBET01TdG9yYWdlUmVz
b3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmZpbmQoc3RvcmFnZUlkKTsKLSAg
ICBpZiAoaXQgPT0gbV9yZXNvdXJjZXMuZW5kKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBpdC0+dmFsdWUuZ2V0KCk7CisgICAgQVNTRVJUKHN0b3JhZ2UpOworICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHN0b3JhZ2UtPmZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgQVNTRVJUKGRv
Y3VtZW50KTsKKyAgICBET01XaW5kb3cqIHdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKTsK
KyAgICBBU1NFUlQod2luZG93KTsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5
T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgYm9vbCBpc0xvY2FsU3Rv
cmFnZSA9IHdpbmRvdy0+b3B0aW9uYWxMb2NhbFN0b3JhZ2UoKSA9PSBzdG9yYWdlOworICAgIHJl
dHVybiBzdG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4uZ2V0KCksIGlzTG9jYWxTdG9yYWdlKS0+dG9K
U09OU3RyaW5nKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRVc2VE
T01TdG9yYWdlKFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwg
RnJhbWUqIGZyYW1lKQorUGFzc1JlZlB0cjxUeXBlQnVpbGRlcjo6RE9NU3RvcmFnZTo6U3RvcmFn
ZUlkPiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiog
c2VjdXJpdHlPcmlnaW4sIGJvb2wgaXNMb2NhbFN0b3JhZ2UpCiB7Ci0gICAgRE9NU3RvcmFnZVJl
c291cmNlc01hcDo6aXRlcmF0b3IgZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwot
ICAgIGZvciAoRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNl
cy5iZWdpbigpOyBpdCAhPSBkb21TdG9yYWdlRW5kOyArK2l0KSB7Ci0gICAgICAgIGlmIChpdC0+
dmFsdWUtPmlzU2FtZU9yaWdpbkFuZFR5cGUoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIGlzTG9jYWxTdG9yYWdlKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiByZXNvdXJjZSA9IEluc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZTo6Y3JlYXRlKHN0b3JhZ2VBcmVhLCBpc0xvY2FsU3RvcmFnZSwg
ZnJhbWUpOwotCi0gICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT5pZCgpLCByZXNvdXJjZSk7
Ci0KLSAgICAvLyBSZXNvdXJjZXMgYXJlIG9ubHkgYm91bmQgd2hpbGUgdmlzaWJsZS4KLSAgICBp
ZiAobV9lbmFibGVkKQotICAgICAgICByZXNvdXJjZS0+YmluZChtX2Zyb250ZW5kKTsKKyAgICBy
ZXR1cm4gVHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZDo6Y3JlYXRlKCkKKyAgICAg
ICAgLnNldFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luLT50b1Jhd1N0cmluZygpKQorICAg
ICAgICAuc2V0SXNMb2NhbFN0b3JhZ2UoaXNMb2NhbFN0b3JhZ2UpLnJlbGVhc2UoKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50
KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcm
IG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luLCBQYWdlKikKIHsKLSAgICBpZiAoIW1fZnJvbnRlbmQgfHwgIW1fZW5hYmxlZCkK
KyAgICBpZiAoIW1fZnJvbnRlbmQgfHwgIWlzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBTdHJpbmcgaWQgPSBzdG9yYWdlSWQoc2VjdXJpdHlPcmlnaW4sIHN0b3JhZ2VUeXBlID09
IExvY2FsU3RvcmFnZSk7Ci0KLSAgICBpZiAoaWQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47
CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IGlkID0gc3Rv
cmFnZUlkKHNlY3VyaXR5T3JpZ2luLCBzdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOwogCiAg
ICAgaWYgKGtleS5pc051bGwoKSkKICAgICAgICAgbV9mcm9udGVuZC0+ZG9tc3RvcmFnZSgpLT5k
b21TdG9yYWdlSXRlbXNDbGVhcmVkKGlkKTsKQEAgLTI0MywxNiArMjE2LDM3IEBAIHZvaWQgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBT
dHJpbmcmIGtleSwgY29uCiAgICAgICAgIG1fZnJvbnRlbmQtPmRvbXN0b3JhZ2UoKS0+ZG9tU3Rv
cmFnZUl0ZW1VcGRhdGVkKGlkLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhclJlc291cmNlcygpCitQYXNzUmVmUHRyPFN0
b3JhZ2VBcmVhPiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRTdG9yYWdlQXJlYShFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBzdG9y
YWdlSWQsIEZyYW1lKiYgdGFyZ2V0RnJhbWUpCiB7Ci0gICAgbV9yZXNvdXJjZXMuY2xlYXIoKTsK
KyAgICBTdHJpbmcgc2VjdXJpdHlPcmlnaW47CisgICAgYm9vbCBpc0xvY2FsU3RvcmFnZTsKKyAg
ICBib29sIHN1Y2Nlc3MgPSBzdG9yYWdlSWQtPmdldFN0cmluZygic2VjdXJpdHlPcmlnaW4iLCAm
c2VjdXJpdHlPcmlnaW4pOworICAgIGlmIChzdWNjZXNzKQorICAgICAgICBzdWNjZXNzID0gc3Rv
cmFnZUlkLT5nZXRCb29sZWFuKCJpc0xvY2FsU3RvcmFnZSIsICZpc0xvY2FsU3RvcmFnZSk7Cisg
ICAgaWYgKCFzdWNjZXNzKSB7CisgICAgICAgIGlmIChlcnJvclN0cmluZykKKyAgICAgICAgICAg
ICplcnJvclN0cmluZyA9ICJJbnZhbGlkIHN0b3JhZ2VJZCBmb3JtYXQiOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2VBZ2VudC0+ZmluZEZyYW1l
V2l0aFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKKyAgICBpZiAoIWZyYW1lKSB7Cisg
ICAgICAgIGlmIChlcnJvclN0cmluZykKKyAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJGcmFt
ZSBub3QgZm91bmQgZm9yIHRoZSBnaXZlbiBzZWN1cml0eSBvcmlnaW4iOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisgICAgdGFyZ2V0RnJhbWUgPSBmcmFtZTsKKworICAgIFBhZ2UqIHBhZ2Ug
PSBtX3BhZ2VBZ2VudC0+cGFnZSgpOworICAgIGlmIChpc0xvY2FsU3RvcmFnZSkKKyAgICAgICAg
cmV0dXJuIHBhZ2UtPmdyb3VwKCkubG9jYWxTdG9yYWdlKCktPnN0b3JhZ2VBcmVhKGZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICByZXR1cm4gcGFnZS0+c2Vzc2lvblN0
b3JhZ2UoKS0+c3RvcmFnZUFyZWEoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkp
OwogfQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCk7CiAgICAgSW5zcGVjdG9yQmFzZUFnZW50PEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudD46OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8p
OwotICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzb3VyY2VzLCAicmVzb3VyY2VzIik7CiAgICAgaW5m
by5hZGRXZWFrUG9pbnRlcihtX2Zyb250ZW5kKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCmluZGV4IGU5OGUzOTIxZDA1
Njg2OTUyMzdiZjliZWIwNzM4YzE0MzhjOTcxNTIuLjZhMGM3YjcwZGE3MWVkNzcyMWI4MGI0ZWM2
NTIwYzIxZGRlOWNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKQEAgLTM5LDggKzM5LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckFycmF5OwotY2xhc3MgSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlOwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CitjbGFzcyBJ
bnNwZWN0b3JQYWdlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JTdGF0ZTsKIGNsYXNzIEluc3RydW1l
bnRpbmdBZ2VudHM7CiBjbGFzcyBQYWdlOwpAQCAtNTEsNDQgKzUxLDQwIEBAIHR5cGVkZWYgU3Ry
aW5nIEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQgOiBwdWJs
aWMgSW5zcGVjdG9yQmFzZUFnZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4sIHB1YmxpYyBJ
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjo6RE9NU3RvcmFnZUNvbW1hbmRIYW5kbGVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGNy
ZWF0ZShJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSogc3RhdGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIEluc3BlY3RvckNvbXBvc2l0ZVN0
YXRlKiBzdGF0ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0YXRlKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3RydW1lbnRpbmdB
Z2VudHMsIHBhZ2VBZ2VudCwgc3RhdGUpKTsKICAgICB9CiAgICAgfkluc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEZyb250ZW5kKEluc3BlY3RvckZyb250
ZW5kKik7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKLSAgICB2b2lkIHJlc3Rv
cmUoKTsKLQotICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMoKTsKIAogICAgIC8vIENhbGxlZCBmcm9t
IHRoZSBmcm9udC1lbmQuCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7Ci0gICAgdmlydHVhbCB2b2lk
IGdldERPTVN0b3JhZ2VFbnRyaWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzdG9yYWdl
SWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4g
PiA+JiBlbnRyaWVzKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0RE9NU3RvcmFnZUl0ZW0oRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgdmFsdWUsIGJvb2wqIHN1Y2Nlc3MpOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVE
T01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBjb25z
dCBTdHJpbmcmIGtleSwgYm9vbCogc3VjY2Vzcyk7CisgICAgdmlydHVhbCB2b2lkIGdldERPTVN0
b3JhZ2VJdGVtcyhFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiBz
dG9yYWdlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0
cmluZz4gPiA+JiBpdGVtcyk7CisgICAgdmlydHVhbCB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKEVy
cm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5KTsKIAogICAgIC8vIENhbGxlZCBm
cm9tIHRoZSBpbmplY3RlZCBzY3JpcHQuCiAgICAgU3RyaW5nIHN0b3JhZ2VJZChTdG9yYWdlKik7
Ci0gICAgU3RyaW5nIHN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3Jh
Z2UpOworICAgIFBhc3NSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZD4g
c3RvcmFnZUlkKFNlY3VyaXR5T3JpZ2luKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSk7CiAKICAgICAv
LyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KLSAgICB2b2lkIGRpZFVzZURP
TVN0b3JhZ2UoU3RvcmFnZUFyZWEqLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSopOwogICAg
IHZvaWQgZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0
IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlLCBT
ZWN1cml0eU9yaWdpbiosIFBhZ2UqKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiAKIHByaXZhdGU6Ci0gICAg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JD
b21wb3NpdGVTdGF0ZSopOwogCi0gICAgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBnZXRE
T01TdG9yYWdlUmVzb3VyY2VGb3JJZChjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCk7CisgICAgSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JQYWdl
QWdlbnQqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSopOworCisgICAgYm9vbCBpc0VuYWJsZWQo
KSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBmaW5kU3RvcmFnZUFyZWEoRXJy
b3JTdHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYsIEZyYW1lKiYpOwogCi0g
ICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZT4gPiBET01TdG9yYWdlUmVzb3VyY2VzTWFwOwotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNN
YXAgbV9yZXNvdXJjZXM7CisgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKICAg
ICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKLSAgICBib29sIG1fZW5hYmxlZDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlmM2NmZTE1YjQwZGM3NzU5NzVkYmI4NzY2MGI4MmU3MDIwMzdlZWQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0
dCBMaWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVkZSAiSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmgiCi0KLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3Bl
Y3RvckZyb250ZW5kLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCi0jaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlICJTdG9yYWdlLmgiCi0jaW5jbHVkZSAiU3RvcmFn
ZUFyZWEuaCIKLSNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKLQotdXNpbmcgbmFtZXNwYWNlIEpT
QzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1pbnQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291
cmNlOjpzX25leHRVbnVzZWRJZCA9IDE7Ci0KLUluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9v
bCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQotICAgIDogbV9zdG9yYWdlQXJlYShzdG9y
YWdlQXJlYSkKLSAgICAsIG1faXNMb2NhbFN0b3JhZ2UoaXNMb2NhbFN0b3JhZ2UpCi0gICAgLCBt
X2ZyYW1lKGZyYW1lKQotICAgICwgbV9mcm9udGVuZCgwKQotICAgICwgbV9pZChTdHJpbmc6Om51
bWJlcihzX25leHRVbnVzZWRJZCsrKSkKLXsKLX0KLQotYm9vbCBJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2U6OmlzU2FtZU9yaWdpbkFuZFR5cGUoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luLCBib29sIGlzTG9jYWxTdG9yYWdlKSBjb25zdAotewotICAgIHJldHVybiBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5lcXVhbChzZWN1cml0eU9yaWdpbikgJiYgbV9p
c0xvY2FsU3RvcmFnZSA9PSBpc0xvY2FsU3RvcmFnZTsKLX0KLQotdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlUmVzb3VyY2U6OmJpbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKQotewotICAg
IEFTU0VSVCghbV9mcm9udGVuZCk7Ci0gICAgbV9mcm9udGVuZCA9IGZyb250ZW5kLT5kb21zdG9y
YWdlKCk7Ci0KLSAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OkVudHJ5PiBqc29u
T2JqZWN0ID0gVHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OkVudHJ5OjpjcmVhdGUoKQotICAgICAg
ICAuc2V0T3JpZ2luKG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvUmF3
U3RyaW5nKCkpCi0gICAgICAgIC5zZXRJc0xvY2FsU3RvcmFnZShtX2lzTG9jYWxTdG9yYWdlKQot
ICAgICAgICAuc2V0SWQobV9pZCk7Ci0gICAgbV9mcm9udGVuZC0+YWRkRE9NU3RvcmFnZShqc29u
T2JqZWN0KTsKLX0KLQotdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6OnVuYmluZCgp
Ci17Ci0gICAgaWYgKCFtX2Zyb250ZW5kKQotICAgICAgICByZXR1cm47ICAvLyBBbHJlYWR5IHVu
Ym91bmQuCi0KLSAgICBtX2Zyb250ZW5kID0gMDsKLX0KLQotdm9pZCBJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Ci17Ci0gICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2VzKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3N0b3JhZ2VBcmVhLCAic3RvcmFnZUFyZWEiKTsK
LSAgICBpbmZvLmFkZE1lbWJlcihtX2ZyYW1lLCAiZnJhbWUiKTsKLSAgICBpbmZvLmFkZFdlYWtQ
b2ludGVyKG1fZnJvbnRlbmQpOwotICAgIGluZm8uYWRkTWVtYmVyKG1faWQsICJpZCIpOwotICAg
IGluZm8uYWRkUHJpdmF0ZUJ1ZmZlcihtX3N0b3JhZ2VBcmVhLT5tZW1vcnlCeXRlc1VzZWRCeUNh
Y2hlKCksIDAsICJTdG9yYWdlQXJlYUNhY2hlIiwgImNhY2hlIik7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCi0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTBkNDZkNzUwZmFhNzY2NmNhYzY0ZjJkMjY4
ZTU2N2VkMjRiYjc3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAo
QykgMjAwOCBNYXR0IExpbGVrIDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KLSAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlX2gKLSNkZWZpbmUgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
X2gKLQotI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCi0KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLWNs
YXNzIFN0b3JhZ2VBcmVhOwotY2xhc3MgRnJhbWU7Ci1jbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsK
LQotY2xhc3MgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlPiBjcmVhdGUoU3RvcmFnZUFyZWEqIHN0
b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCi0gICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZShzdG9y
YWdlQXJlYSwgaXNMb2NhbFN0b3JhZ2UsIGZyYW1lKSk7Ci0gICAgfQotCi0gICAgdm9pZCBiaW5k
KEluc3BlY3RvckZyb250ZW5kKik7Ci0gICAgdm9pZCB1bmJpbmQoKTsKLQotICAgIGJvb2wgaXNT
YW1lT3JpZ2luQW5kVHlwZShTZWN1cml0eU9yaWdpbiosIGJvb2wgaXNMb2NhbFN0b3JhZ2UpIGNv
bnN0OwotICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KLSAgICBTdG9yYWdl
QXJlYSogc3RvcmFnZUFyZWEoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VBcmVhLmdldCgpOyB9
Ci0gICAgRnJhbWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZS5nZXQoKTsgfQotCi0g
ICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7Ci0KLXBy
aXZhdGU6Ci0gICAgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKFN0b3JhZ2VBcmVhKiwgYm9v
bCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKLQotICAgIFJlZlB0cjxTdG9yYWdlQXJlYT4gbV9z
dG9yYWdlQXJlYTsKLSAgICBib29sIG1faXNMb2NhbFN0b3JhZ2U7Ci0gICAgUmVmUHRyPEZyYW1l
PiBtX2ZyYW1lOwotICAgIEluc3BlY3RvckZyb250ZW5kOjpET01TdG9yYWdlKiBtX2Zyb250ZW5k
OwotICAgIFN0cmluZyBtX2lkOwotCi0gICAgc3RhdGljIGludCBzX25leHRVbnVzZWRJZDsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEluc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDVhYWFiMThhYzY3YzQyYTM4NjY4NzA3ZDhjZTU0
ZjI0ZTFlM2M1NWMuLmRhMTFhM2I1Yzc3YjI4YjhlNTM0MjlmMjY5MGI0ZjkxNzk5NDE4YjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwCkBAIC05MTUsOCArOTE1LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZENvbW1pdExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnQKICAg
ICAgICAgaWYgKEluc3BlY3RvckRhdGFiYXNlQWdlbnQqIGRhdGFiYXNlQWdlbnQgPSBpbnN0cnVt
ZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JEYXRhYmFzZUFnZW50KCkpCiAgICAgICAgICAgICBkYXRh
YmFzZUFnZW50LT5jbGVhclJlc291cmNlcygpOwogI2VuZGlmCi0gICAgICAgIGlmIChJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpKQotICAgICAgICAgICAgZG9tU3RvcmFnZUFnZW50
LT5jbGVhclJlc291cmNlcygpOwogICAgICAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAg
ICAgIGRvbUFnZW50LT5zZXREb2N1bWVudChtYWluRnJhbWUtPmRvY3VtZW50KCkpOwogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTExMDEsMTUgKzEwOTksNiBAQCB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkT3BlbkRhdGFiYXNlSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZQogfQogI2VuZGlmCiAKLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRVc2VET01TdG9yYWdlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzLCBTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2Us
IEZyYW1lKiBmcmFtZSkKLXsKLSAgICBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JBZ2VudCgpOwotICAgIGlmICghaW5zcGVjdG9y
QWdlbnQgfHwgIWluc3BlY3RvckFnZW50LT5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCi0gICAg
ICAgIHJldHVybjsKLSAgICBpZiAoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdl
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKSkK
LSAgICAgICAgZG9tU3RvcmFnZUFnZW50LT5kaWRVc2VET01TdG9yYWdlKHN0b3JhZ2VBcmVhLCBp
c0xvY2FsU3RvcmFnZSwgZnJhbWUpOwotfQotCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkRGlzcGF0Y2hET01TdG9yYWdlRXZlbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgU2Vj
dXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBQYWdlKiBwYWdlKQogewogICAgIGlmIChJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQqIGRvbVN0b3JhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGZmNjMwMDUxNmVmMTAz
MzRiMDAyMjEwOWNmZWRiMzZmM2Q2MTJmM2EuLjdmZmJjZmZiZGU0YmJjMzBmNjNkOTZhNGJhY2Ri
ZjYzN2MzODMwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTI1Miw3ICsyNTIsNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZGlkT3BlbkRhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVm
UHRyPERhdGFiYXNlPiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKICNlbmRpZgogCi0gICAgc3RhdGljIHZvaWQgZGlkVXNl
RE9NU3RvcmFnZShQYWdlKiwgU3RvcmFnZUFyZWEqLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFt
ZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50KGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVl
LCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7CiAKICNpZiBFTkFCTEUoV09S
S0VSUykKQEAgLTQ1MSw3ICs0NTAsNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGRpZE9w
ZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFBhc3NSZWZQdHI8RGF0YWJhc2U+
LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZlcnNpb24pOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgdm9pZCBkaWRVc2VET01TdG9yYWdlSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgU3RvcmFnZUFyZWEqLCBib29sIGlzTG9jYWxTdG9yYWdl
LCBGcmFtZSopOwogICAgIHN0YXRpYyB2b2lkIGRpZERpc3BhdGNoRE9NU3RvcmFnZUV2ZW50SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzKiwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFN0b3JhZ2VUeXBlLCBTZWN1cml0eU9y
aWdpbiosIFBhZ2UqKTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQpAQCAtMTc1MCwxOSArMTc0OCw2
IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkV3JpdGVIVE1MKGNv
bnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvCiAjZW5kaWYKIH0KIAotaW5saW5lIHZvaWQgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVc2VET01TdG9yYWdlKFBhZ2UqIHBhZ2UsIFN0b3Jh
Z2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1lKQot
ewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGlu
c3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKLSAg
ICAgICAgZGlkVXNlRE9NU3RvcmFnZUltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgc3RvcmFnZUFy
ZWEsIGlzTG9jYWxTdG9yYWdlLCBmcmFtZSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwYWdl
KTsKLSAgICBVTlVTRURfUEFSQU0oc3RvcmFnZUFyZWEpOwotICAgIFVOVVNFRF9QQVJBTShpc0xv
Y2FsU3RvcmFnZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKLSNlbmRpZgotfQotCiBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2
ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJp
bmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSBzdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qIHNl
Y3VyaXR5T3JpZ2luLCBQYWdlKiBwYWdlKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCmluZGV4IDRh
ZjhhYmQ3NjdhMTExZDU5NjE1NTI3ZWVjYmYyMmE1OGQ5MWQ2NjUuLjdhMWViMTQ0MDkyOWZlY2E0
NjZhMzkyZGE0MzYyZDQwMTNkNzNhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCkBAIC05MTYsNiArOTE2LDIyIEBAIFN0cmluZyBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OmxvYWRlcklkKERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgcmV0
dXJuIGlkZW50aWZpZXI7CiB9CiAKK0ZyYW1lKiBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZpbmRGcmFt
ZVdpdGhTZWN1cml0eU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpblJhd1N0cmluZykKK3sKKyAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luUHRyID0gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luUmF3U3RyaW5nKTsKKyAgICBTZWN1cml0eU9yaWdp
biogc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpblB0ci5nZXQoKTsKKyAgICBib29sIGlz
TG9jYWwgPSBzZWN1cml0eU9yaWdpbi0+aXNMb2NhbCgpOworICAgIGZvciAoRnJhbWUqIGZyYW1l
ID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJh
dmVyc2VOZXh0KCkpIHsKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBkb2N1bWVudE9y
aWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOworICAgICAgICAvLyBF
bXVsYXRlIHRoZSAhZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbiBmb3Igc2VjdXJpdHkgb3JpZ2lu
cy4KKyAgICAgICAgaWYgKGlzTG9jYWwgJiYgZG9jdW1lbnRPcmlnaW4tPmlzTG9jYWwoKSkKKyAg
ICAgICAgICAgIHJldHVybiBmcmFtZTsKKyAgICAgICAgaWYgKGRvY3VtZW50T3JpZ2luLT5lcXVh
bChzZWN1cml0eU9yaWdpbikpCisgICAgICAgICAgICByZXR1cm4gZnJhbWU7CisgICAgfQorICAg
IHJldHVybiAwOworfQorCiBGcmFtZSogSW5zcGVjdG9yUGFnZUFnZW50Ojphc3NlcnRGcmFtZShF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVJZCkKIHsKICAgICBG
cmFtZSogZnJhbWUgPSBmcmFtZUZvcklkKGZyYW1lSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCmluZGV4IGQ1YzViOTAyNTJmZTMxNWRhNWZhNGY1
MWQ1ODNmZjhlMWUyNzQ1ZmQuLmRlMjRmYzQ3YjJkMzgwNWI3NTdhMzkwYjhhZDc5Zjc4MDVmMzZj
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgK
QEAgLTE3Myw2ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGZyYW1lSWQoRnJhbWUqKTsK
ICAgICBib29sIGhhc0lkRm9yRnJhbWUoRnJhbWUqKSBjb25zdDsKICAgICBTdHJpbmcgbG9hZGVy
SWQoRG9jdW1lbnRMb2FkZXIqKTsKKyAgICBGcmFtZSogZmluZEZyYW1lV2l0aFNlY3VyaXR5T3Jp
Z2luKGNvbnN0IFN0cmluZyYgb3JpZ2luUmF3U3RyaW5nKTsKICAgICBGcmFtZSogYXNzZXJ0RnJh
bWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGZyYW1lSWQpOwogICAgIFN0cmluZyBzY3Jp
cHRQcmVwcm9jZXNzb3IoKSB7IHJldHVybiBtX3NjcmlwdFByZXByb2Nlc3NvcjsgfQogICAgIHN0
YXRpYyBEb2N1bWVudExvYWRlciogYXNzZXJ0RG9jdW1lbnRMb2FkZXIoRXJyb3JTdHJpbmcqLCBG
cmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
T01TdG9yYWdlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9y
YWdlLmpzCmluZGV4IGIxMzQ0MTk1OTllMzUyODQ5OTJjMmMwZmIwNjExMDJiYjhkYjhkODguLjAz
OTUxZDc5NjVmNWZmZDJhZjIzYzE2MzA1ZWY4MTA2YjViMDhlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3JhZ2UuanMKQEAgLTI5LDI1ICsyOSwz
OCBAQAogCiAvKioKICAqIEBjb25zdHJ1Y3RvcgorICogQHBhcmFtIHtzdHJpbmd9IHNlY3VyaXR5
T3JpZ2luCisgKiBAcGFyYW0ge2Jvb2xlYW59IGlzTG9jYWxTdG9yYWdlCisgKiBAcGFyYW0ge3N0
cmluZz19IGlkCiAgKi8KLVdlYkluc3BlY3Rvci5ET01TdG9yYWdlID0gZnVuY3Rpb24oaWQsIGRv
bWFpbiwgaXNMb2NhbFN0b3JhZ2UpCitXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZSA9IGZ1bmN0aW9u
KHNlY3VyaXR5T3JpZ2luLCBpc0xvY2FsU3RvcmFnZSwgaWQpCiB7Ci0gICAgdGhpcy5faWQgPSBp
ZDsKLSAgICB0aGlzLl9kb21haW4gPSBkb21haW47CisgICAgdGhpcy5fc2VjdXJpdHlPcmlnaW4g
PSBzZWN1cml0eU9yaWdpbjsKICAgICB0aGlzLl9pc0xvY2FsU3RvcmFnZSA9IGlzTG9jYWxTdG9y
YWdlOwogfQogCisvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgorICogQHBh
cmFtIHtib29sZWFufSBpc0xvY2FsU3RvcmFnZQorICogQHJldHVybiB7RE9NU3RvcmFnZUFnZW50
LlN0b3JhZ2VJZH0KKyAqLworV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uuc3RvcmFnZUlkID0gZnVu
Y3Rpb24oc2VjdXJpdHlPcmlnaW4sIGlzTG9jYWxTdG9yYWdlKQoreworICAgIHJldHVybiB7IHNl
Y3VyaXR5T3JpZ2luOiBzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2U6IGlzTG9jYWxTdG9y
YWdlIH07Cit9CisKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKLSAgICAv
KiogQHJldHVybiB7c3RyaW5nfSAqLworCisgICAgLyoqIEByZXR1cm4ge0RPTVN0b3JhZ2VBZ2Vu
dC5TdG9yYWdlSWR9ICovCiAgICAgZ2V0IGlkKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9pZDsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnN0b3JhZ2VJZCh0
aGlzLl9zZWN1cml0eU9yaWdpbiwgdGhpcy5faXNMb2NhbFN0b3JhZ2UpOwogICAgIH0sCiAKICAg
ICAvKiogQHJldHVybiB7c3RyaW5nfSAqLwotICAgIGdldCBkb21haW4oKQorICAgIGdldCBzZWN1
cml0eU9yaWdpbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZG9tYWluOworICAgICAg
ICByZXR1cm4gdGhpcy5fc2VjdXJpdHlPcmlnaW47CiAgICAgfSwKIAogICAgIC8qKiBAcmV0dXJu
IHtib29sZWFufSAqLwpAQCAtNTcsMzAgKzcwLDMwIEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
LnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5jdGlv
big/UHJvdG9jb2wuRXJyb3IsIEFycmF5LjxET01TdG9yYWdlQWdlbnQuRW50cnk+KTp2b2lkPX0g
Y2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9Qcm90b2NvbC5FcnJvciwgQXJyYXku
PERPTVN0b3JhZ2VBZ2VudC5JdGVtPik6dm9pZD19IGNhbGxiYWNrCiAgICAgICovCi0gICAgZ2V0
RW50cmllczogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgZ2V0SXRlbXM6IGZ1bmN0aW9uKGNhbGxi
YWNrKQogICAgIHsKLSAgICAgICAgRE9NU3RvcmFnZUFnZW50LmdldERPTVN0b3JhZ2VFbnRyaWVz
KHRoaXMuX2lkLCBjYWxsYmFjayk7CisgICAgICAgIERPTVN0b3JhZ2VBZ2VudC5nZXRET01TdG9y
YWdlSXRlbXModGhpcy5pZCwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICAvKioKICAgICAgKiBA
cGFyYW0ge3N0cmluZ30ga2V5CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlCi0gICAgICog
QHBhcmFtIHtmdW5jdGlvbig/UHJvdG9jb2wuRXJyb3IsIGJvb2xlYW4pOnZvaWQ9fSBjYWxsYmFj
aworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKTp2b2lkPX0gY2FsbGJh
Y2sKICAgICAgKi8KICAgICBzZXRJdGVtOiBmdW5jdGlvbihrZXksIHZhbHVlLCBjYWxsYmFjaykK
ICAgICB7Ci0gICAgICAgIERPTVN0b3JhZ2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlzLl9p
ZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0RE9N
U3RvcmFnZUl0ZW0odGhpcy5pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOwogICAgIH0sCiAKICAg
ICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5Ci0gICAgICogQHBhcmFtIHtmdW5jdGlv
big/UHJvdG9jb2wuRXJyb3IsIGJvb2xlYW4pOnZvaWQ9fSBjYWxsYmFjaworICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKTp2b2lkPX0gY2FsbGJhY2sKICAgICAgKi8KICAg
ICByZW1vdmVJdGVtOiBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9N
U3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuX2lkLCBrZXksIGNhbGxiYWNr
KTsKKyAgICAgICAgRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuaWQs
IGtleSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtOTMsMTAgKzEwNiwxMyBAQCBXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZU1vZGVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3N0b3JhZ2VzID0g
e307CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRPTVN0b3JhZ2VEaXNwYXRjaGVyKG5l
dyBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIodGhpcykpOwogICAgIERPTVN0b3Jh
Z2VBZ2VudC5lbmFibGUoKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5T
ZWN1cml0eU9yaWdpbkFkZGVkLCB0aGlzLl9zZWN1cml0eU9yaWdpbkFkZGVkLCB0aGlzKTsKKyAg
ICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5TZWN1cml0eU9yaWdpblJlbW92ZWQs
IHRoaXMuX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlTW9kZWwuRXZlbnRzID0gewogICAgIERPTVN0b3JhZ2VBZGRlZDogIkRPTVN0b3Jh
Z2VBZGRlZCIsCisgICAgRE9NU3RvcmFnZVJlbW92ZWQ6ICJET01TdG9yYWdlUmVtb3ZlZCIsCiAg
ICAgRE9NU3RvcmFnZUl0ZW1zQ2xlYXJlZDogIkRPTVN0b3JhZ2VJdGVtc0NsZWFyZWQiLAogICAg
IERPTVN0b3JhZ2VJdGVtUmVtb3ZlZDogIkRPTVN0b3JhZ2VJdGVtUmVtb3ZlZCIsCiAgICAgRE9N
U3RvcmFnZUl0ZW1BZGRlZDogIkRPTVN0b3JhZ2VJdGVtQWRkZWQiLApAQCAtMTA0LDEzICsxMjAs
NTMgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMgPSB7CiB9CiAKIFdlYklu
c3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlID0geworCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NlY3VyaXR5
T3JpZ2luQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHNlY3VyaXR5
T3JpZ2luID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChldmVudC5kYXRhKTsKKyAgICAgICAgdmFy
IGxvY2FsU3RvcmFnZUtleSA9IHRoaXMuX3N0b3JhZ2VLZXkoc2VjdXJpdHlPcmlnaW4sIHRydWUp
OworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc3RvcmFnZXNbbG9jYWxTdG9yYWdlS2V5
XSk7CisgICAgICAgIHZhciBsb2NhbFN0b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2Uoc2VjdXJpdHlPcmlnaW4sIHRydWUpOworICAgICAgICB0aGlzLl9zdG9yYWdlc1tsb2NhbFN0
b3JhZ2VLZXldID0gbG9jYWxTdG9yYWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRk
ZWQsIGxvY2FsU3RvcmFnZSk7CisKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlS2V5ID0gdGhp
cy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICBjb25zb2xlLmFz
c2VydCghdGhpcy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXldKTsKKyAgICAgICAgdmFyIHNl
c3Npb25TdG9yYWdlID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKHNlY3VyaXR5T3JpZ2lu
LCBmYWxzZSk7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VzW3Nlc3Npb25TdG9yYWdlS2V5XSA9IHNl
c3Npb25TdG9yYWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIHNlc3Npb25T
dG9yYWdlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
RXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZDogZnVuY3Rp
b24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSAvKiogQHR5cGUg
e3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB2YXIgbG9jYWxTdG9yYWdlS2V5ID0g
dGhpcy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIHZhciBsb2Nh
bFN0b3JhZ2UgPSB0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXldOworICAgICAgICBjb25z
b2xlLmFzc2VydChsb2NhbFN0b3JhZ2UpOworICAgICAgICBkZWxldGUgdGhpcy5fc3RvcmFnZXNb
bG9jYWxTdG9yYWdlS2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQsIGxv
Y2FsU3RvcmFnZSk7CisKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlS2V5ID0gdGhpcy5fc3Rv
cmFnZUtleShzZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICB2YXIgc2Vzc2lvblN0b3Jh
Z2UgPSB0aGlzLl9zdG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV07CisgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHNlc3Npb25TdG9yYWdlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3N0b3JhZ2VzW3Nl
c3Npb25TdG9yYWdlS2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQsIHNl
c3Npb25TdG9yYWdlKTsKKyAgICB9LAorCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZX0gZG9tU3RvcmFnZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1
cml0eU9yaWdpbgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UKKyAgICAg
KiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgICovCi0gICAgX2FkZERPTVN0b3JhZ2U6IGZ1bmN0aW9u
KGRvbVN0b3JhZ2UpCisgICAgX3N0b3JhZ2VLZXk6IGZ1bmN0aW9uKHNlY3VyaXR5T3JpZ2luLCBp
c0xvY2FsU3RvcmFnZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VzW2RvbVN0b3JhZ2Uu
aWRdID0gZG9tU3RvcmFnZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZUFkZGVkLCBkb21T
dG9yYWdlKTsKKyAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFdlYkluc3BlY3Rvci5ET01T
dG9yYWdlLnN0b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC0xMTgsNyArMTc0LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VJdGVtc0NsZWFyZWQ6
IGZ1bmN0aW9uKHN0b3JhZ2VJZCkKICAgICB7Ci0gICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhp
cy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLnN0
b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAgICB2YXIgc3RvcmFnZURhdGEgPSB7CiAgICAg
ICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlCiAgICAgICAgIH07CkBAIC0xMzEsNyArMTg3LDcg
QEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgX2RvbVN0b3JhZ2VJdGVtUmVtb3ZlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXkpCiAgICAg
ewotICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuX3N0b3JhZ2VzW3N0b3JhZ2VJZF07Cisg
ICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5zdG9yYWdlRm9ySWQoc3RvcmFnZUlkKTsKICAg
ICAgICAgdmFyIHN0b3JhZ2VEYXRhID0gewogICAgICAgICAgICAgc3RvcmFnZTogZG9tU3RvcmFn
ZSwKICAgICAgICAgICAgIGtleToga2V5CkBAIC0xNDYsNyArMjAyLDcgQEAgV2ViSW5zcGVjdG9y
LkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VJ
dGVtQWRkZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5LCBuZXdWYWx1ZSkKICAgICB7Ci0gICAg
ICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAg
dmFyIGRvbVN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAgICB2
YXIgc3RvcmFnZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlLAogICAg
ICAgICAgICAga2V5OiBrZXksCkBAIC0xNzksNyArMjM1LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc3RvcmFnZUZvcklkOiBmdW5j
dGlvbihzdG9yYWdlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZXNbc3Rv
cmFnZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2VzW0pTT04uc3RyaW5naWZ5KHN0
b3JhZ2VJZCldOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4OCw4ICsyNDQsOCBAQCBXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBzdG9yYWdlczogZnVuY3Rp
b24oKQogICAgIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAgICAgICBmb3IgKHZhciBz
dG9yYWdlSWQgaW4gdGhpcy5fc3RvcmFnZXMpCi0gICAgICAgICAgICByZXN1bHQucHVzaCh0aGlz
Ll9zdG9yYWdlc1tzdG9yYWdlSWRdKTsKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fc3Rv
cmFnZXMpCisgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl9zdG9yYWdlc1tpZF0pOwogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCiAKQEAgLTIwOSwxOCArMjY1LDcgQEAgV2ViSW5z
cGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVyID0gZnVuY3Rpb24obW9kZWwpCiBXZWJJbnNwZWN0
b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogCiAgICAgLyoqCi0gICAgICog
QHBhcmFtIHtET01TdG9yYWdlQWdlbnQuRW50cnl9IHBheWxvYWQKLSAgICAgKi8KLSAgICBhZGRE
T01TdG9yYWdlOiBmdW5jdGlvbihwYXlsb2FkKQotICAgIHsKLSAgICAgICAgdGhpcy5fbW9kZWwu
X2FkZERPTVN0b3JhZ2UobmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKAotICAgICAgICAgICAg
cGF5bG9hZC5pZCwKLSAgICAgICAgICAgIHBheWxvYWQub3JpZ2luLAotICAgICAgICAgICAgcGF5
bG9hZC5pc0xvY2FsU3RvcmFnZSkpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0g
e3N0cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQuU3RvcmFn
ZUlkfSBzdG9yYWdlSWQKICAgICAgKi8KICAgICBkb21TdG9yYWdlSXRlbXNDbGVhcmVkOiBmdW5j
dGlvbihzdG9yYWdlSWQpCiAgICAgewpAQCAtMjI4LDcgKzI3Myw3IEBAIFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VB
Z2VudC5TdG9yYWdlSWR9IHN0b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAg
ICAgKi8KICAgICBkb21TdG9yYWdlSXRlbVJlbW92ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5
KQpAQCAtMjM3LDcgKzI4Miw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hlci5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBz
dG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9IHN0b3Jh
Z2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
bmV3VmFsdWUKICAgICAgKi8KQEAgLTI0Nyw3ICsyOTIsNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3Rv
cmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBA
cGFyYW0ge3N0cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQu
U3RvcmFnZUlkfSBzdG9yYWdlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5CiAgICAgICog
QHBhcmFtIHtzdHJpbmd9IG9sZFZhbHVlCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZhbHVl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0b3Jh
Z2VJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0
b3JhZ2VJdGVtc1ZpZXcuanMKaW5kZXggNTM1ZGExMmMzNTNjYjFlNzA4NjQ4ZmFhYTYyMzJhZGY3
ZDNhMjhjYy4uNzE5ZDlkZmQyNDQxMjlhZjdkNzA0OTljNjQ0MDI3MWU2NDkyMmEwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFn
ZUl0ZW1zVmlldy5qcwpAQCAtNTksNyArNTksNyBAQCBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0
ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICB3YXNTaG93bjogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgdGhpcy5fdXBkYXRlKCk7CisgICAgICAgIHRoaXMudXBkYXRlKCk7CiAgICAgfSwK
IAogICAgIHdpbGxIaWRlOiBmdW5jdGlvbigpCkBAIC0xNTMsMjQgKzE1MywyNCBAQCBXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICB9
LAogCi0gICAgX3VwZGF0ZTogZnVuY3Rpb24oKQorICAgIHVwZGF0ZTogZnVuY3Rpb24oKQogICAg
IHsKICAgICAgICAgdGhpcy5kZXRhY2hDaGlsZFZpZXdzKCk7Ci0gICAgICAgIHRoaXMuZG9tU3Rv
cmFnZS5nZXRFbnRyaWVzKHRoaXMuX3Nob3dET01TdG9yYWdlRW50cmllcy5iaW5kKHRoaXMpKTsK
KyAgICAgICAgdGhpcy5kb21TdG9yYWdlLmdldEl0ZW1zKHRoaXMuX3Nob3dET01TdG9yYWdlSXRl
bXMuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIF9zaG93RE9NU3RvcmFnZUVudHJpZXM6IGZ1
bmN0aW9uKGVycm9yLCBlbnRyaWVzKQorICAgIF9zaG93RE9NU3RvcmFnZUl0ZW1zOiBmdW5jdGlv
bihlcnJvciwgaXRlbXMpCiAgICAgewogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSB0aGlzLl9kYXRhR3JpZEZvckRPTVN0
b3JhZ2VFbnRyaWVzKGVudHJpZXMpOworICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IHRoaXMuX2Rh
dGFHcmlkRm9yRE9NU3RvcmFnZUl0ZW1zKGl0ZW1zKTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQu
c2hvdyh0aGlzLmVsZW1lbnQpOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hdXRvU2l6ZUNvbHVt
bnMoMTApOwogICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi52aXNpYmxlID0gKHRoaXMuX2RhdGFH
cmlkLnJvb3ROb2RlKCkuY2hpbGRyZW4ubGVuZ3RoID4gMSk7CiAgICAgfSwKIAotICAgIF9kYXRh
R3JpZEZvckRPTVN0b3JhZ2VFbnRyaWVzOiBmdW5jdGlvbihlbnRyaWVzKQorICAgIF9kYXRhR3Jp
ZEZvckRPTVN0b3JhZ2VJdGVtczogZnVuY3Rpb24oaXRlbXMpCiAgICAgewogICAgICAgICB2YXIg
Y29sdW1ucyA9IHtrZXk6IHt9LCB2YWx1ZToge319OwogCkBAIC0xODMsMTAgKzE4MywxMCBAQCBX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZUl0ZW1zVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZh
ciBub2RlcyA9IFtdOwogCiAgICAgICAgIHZhciBrZXlzID0gW107Ci0gICAgICAgIHZhciBsZW5n
dGggPSBlbnRyaWVzLmxlbmd0aDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyaWVz
Lmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIga2V5ID0gZW50cmllc1tpXVswXTsKLSAg
ICAgICAgICAgIHZhciB2YWx1ZSA9IGVudHJpZXNbaV1bMV07CisgICAgICAgIHZhciBsZW5ndGgg
PSBpdGVtcy5sZW5ndGg7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlbXMubGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgICAgIHZhciBrZXkgPSBpdGVtc1tpXVswXTsKKyAgICAgICAgICAg
IHZhciB2YWx1ZSA9IGl0ZW1zW2ldWzFdOwogICAgICAgICAgICAgdmFyIG5vZGUgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRhdGFHcmlkTm9kZSh7a2V5OiBrZXksIHZhbHVlOiB2YWx1ZX0sIGZhbHNlKTsK
ICAgICAgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CiAgICAgICAgICAgICBub2Rlcy5w
dXNoKG5vZGUpOwpAQCAtMjEzLDcgKzIxMyw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRl
bXNWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9yZWZyZXNoQnV0dG9uQ2xpY2tlZDogZnVuY3Rp
b24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl91cGRhdGUoKTsKKyAgICAgICAgdGhpcy51
cGRhdGUoKTsKICAgICB9LAogCiAgICAgX2VkaXRpbmdDYWxsYmFjazogZnVuY3Rpb24oZWRpdGlu
Z05vZGUsIGNvbHVtbklkZW50aWZpZXIsIG9sZFRleHQsIG5ld1RleHQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCBl
YWFhMWEyZWQ0ZGUxZWEyZTY5ZjhjN2U0MzI2MTI4NmI4N2VhNjcxLi40MmU1MmQ3ZmI1ZjBmYjg1
MDMzMWYwOWYxOTE5ZDAyODZlYWY3ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKQEAgLTExNSw5ICsxMTUsNiBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwgPSBmdW5jdGlvbihkYXRhYmFzZSkKIAogICAgIFdl
Ykluc3BlY3Rvci5kYXRhYmFzZU1vZGVsLmRhdGFiYXNlcygpLmZvckVhY2godGhpcy5fYWRkRGF0
YWJhc2UuYmluZCh0aGlzKSk7CiAgICAgV2ViSW5zcGVjdG9yLmRhdGFiYXNlTW9kZWwuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YWJhc2VNb2RlbC5FdmVudHMuRGF0YWJhc2VBZGRl
ZCwgdGhpcy5fZGF0YWJhc2VBZGRlZCwgdGhpcyk7Ci0KLSAgICBXZWJJbnNwZWN0b3IuZG9tU3Rv
cmFnZU1vZGVsLnN0b3JhZ2VzKCkuZm9yRWFjaCh0aGlzLl9hZGRET01TdG9yYWdlLmJpbmQodGhp
cykpOwotICAgIFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIHRoaXMu
X2RvbVN0b3JhZ2VBZGRlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5l
bC5wcm90b3R5cGUgPSB7CkBAIC0xMzYsNiArMTMzLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5faW5pdGlhbGl6
ZWQgJiYgdGhpcy5pc1Nob3dpbmcoKSAmJiB0aGlzLl9jYWNoZWRSZXNvdXJjZXNXZXJlTG9hZGVk
KSB7CiAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZVJlc291cmNlVHJlZSgpOworICAgICAgICAg
ICAgdGhpcy5fcG9wdWxhdGVET01TdG9yYWdlVHJlZSgpOwogICAgICAgICAgICAgdGhpcy5fcG9w
dWxhdGVBcHBsaWNhdGlvbkNhY2hlVHJlZSgpOwogICAgICAgICAgICAgdGhpcy5faW5pdERlZmF1
bHRTZWxlY3Rpb24oKTsKICAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTsKQEAg
LTI4NCw2ICsyODIsOCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICB2YXIgYXBwbGljYXRpb25DYWNoZUZyYW1lVHJlZUVsZW1lbnQgPSB0aGlzLl9h
cHBsaWNhdGlvbkNhY2hlRnJhbWVFbGVtZW50c1tmcmFtZUlkXTsKICAgICAgICAgaWYgKGFwcGxp
Y2F0aW9uQ2FjaGVGcmFtZVRyZWVFbGVtZW50KQogICAgICAgICAgICAgYXBwbGljYXRpb25DYWNo
ZUZyYW1lVHJlZUVsZW1lbnQuZnJhbWVOYXZpZ2F0ZWQoZnJhbWUpOworCisgICAgICAgIFdlYklu
c3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuc3RvcmFnZXMoKS5mb3JFYWNoKHRoaXMuX2FkZERPTVN0
b3JhZ2UuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF9jYWNoZWRSZXNvdXJjZXNMb2FkZWQ6
IGZ1bmN0aW9uKCkKQEAgLTMzMSw3ICszMzEsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIF9kb21TdG9yYWdlQWRkZWQ6IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSAvKiogQHR5cGUge1dlYklu
c3BlY3Rvci5ET01TdG9yYWdlfSovIChldmVudC5kYXRhKTsKKyAgICAgICAgdmFyIGRvbVN0b3Jh
Z2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5ET01TdG9yYWdlfSAqLyAoZXZlbnQuZGF0YSk7
CiAgICAgICAgIHRoaXMuX2FkZERPTVN0b3JhZ2UoZG9tU3RvcmFnZSk7CiAgICAgfSwKIApAQCAt
MzQxLDYgKzM0MSw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgX2FkZERPTVN0b3JhZ2U6IGZ1bmN0aW9uKGRvbVN0b3JhZ2UpCiAgICAgewogICAgICAg
ICB2YXIgZG9tU3RvcmFnZVRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
VHJlZUVsZW1lbnQodGhpcywgZG9tU3RvcmFnZSwgKGRvbVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2Ug
PyAibG9jYWwtc3RvcmFnZSIgOiAic2Vzc2lvbi1zdG9yYWdlIikpOworICAgICAgICBpZiAodGhp
cy5fZG9tU3RvcmFnZVRyZWVFbGVtZW50cy5nZXQoZG9tU3RvcmFnZSkpCisgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgdGhpcy5fZG9tU3RvcmFnZVRyZWVFbGVtZW50cy5wdXQoZG9tU3Rv
cmFnZSwgZG9tU3RvcmFnZVRyZWVFbGVtZW50KTsKICAgICAgICAgaWYgKGRvbVN0b3JhZ2UuaXNM
b2NhbFN0b3JhZ2UpCiAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZUxpc3RUcmVlRWxlbWVu
dC5hcHBlbmRDaGlsZChkb21TdG9yYWdlVHJlZUVsZW1lbnQpOwpAQCAtMzQ5LDYgKzM1MiwzMCBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIH0sCiAKICAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8K
KyAgICBfZG9tU3RvcmFnZVJlbW92ZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAg
dmFyIGRvbVN0b3JhZ2UgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5ET01TdG9yYWdlfSAqLyAo
ZXZlbnQuZGF0YSk7CisgICAgICAgIHRoaXMuX3JlbW92ZURPTVN0b3JhZ2UoZG9tU3RvcmFnZSk7
CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2V9IGRvbVN0b3JhZ2UKKyAgICAgKi8KKyAgICBfcmVtb3ZlRE9NU3RvcmFnZTogZnVuY3Rpb24o
ZG9tU3RvcmFnZSkKKyAgICB7CisgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuX2RvbVN0
b3JhZ2VUcmVlRWxlbWVudHMuZ2V0KGRvbVN0b3JhZ2UpOworICAgICAgICBpZiAoIXRyZWVFbGVt
ZW50KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgd2FzU2VsZWN0ZWQgPSB0cmVl
RWxlbWVudC5zZWxlY3RlZDsKKyAgICAgICAgdmFyIHBhcmVudExpc3RUcmVlRWxlbWVudCA9IHRy
ZWVFbGVtZW50LnBhcmVudDsKKyAgICAgICAgcGFyZW50TGlzdFRyZWVFbGVtZW50LnJlbW92ZUNo
aWxkKHRyZWVFbGVtZW50KTsKKyAgICAgICAgaWYgKHdhc1NlbGVjdGVkKQorICAgICAgICAgICAg
cGFyZW50TGlzdFRyZWVFbGVtZW50LnNlbGVjdCgpOworICAgIH0sCisKKyAgICAvKioKICAgICAg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5EYXRhYmFzZX0gZGF0YWJhc2UKICAgICAgKi8KICAgICBz
ZWxlY3REYXRhYmFzZTogZnVuY3Rpb24oZGF0YWJhc2UpCkBAIC00NzYsNiArNTAzLDE5IEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2lu
bmVyU2hvd1ZpZXcodmlldyk7CiAgICAgfSwKIAorICAgIF9kcm9wRE9NU3RvcmFnZTogZnVuY3Rp
b24oZG9tU3RvcmFnZSkKKyAgICB7CisgICAgICAgIGlmICghZG9tU3RvcmFnZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgdmFyIHZpZXcgPSB0aGlzLl9kb21TdG9yYWdlVmlld3MuZ2V0
KGRvbVN0b3JhZ2UpOworICAgICAgICBpZiAoIXZpZXcpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHRoaXMuX2RvbVN0b3JhZ2VWaWV3cy5yZW1vdmUoZG9tU3RvcmFnZSk7CisgICAgICAg
IGlmICghdmlldy5pc1Nob3dpbmcoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhp
cy5jbG9zZVZpc2libGVWaWV3KCk7CisgICAgfSwKKwogICAgIHNob3dDb29raWVzOiBmdW5jdGlv
bih0cmVlRWxlbWVudCwgY29va2llRG9tYWluKQogICAgIHsKICAgICAgICAgdmFyIHZpZXcgPSB0
aGlzLl9jb29raWVWaWV3c1tjb29raWVEb21haW5dOwpAQCAtNTcyLDYgKzYxMiwxMyBAQCBXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBkYXRhYmFzZS5n
ZXRUYWJsZU5hbWVzKHRhYmxlTmFtZXNDYWxsYmFjayk7CiAgICAgfSwKIAorICAgIF9wb3B1bGF0
ZURPTVN0b3JhZ2VUcmVlOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tU3RvcmFnZU1vZGVsLnN0b3JhZ2VzKCkuZm9yRWFjaCh0aGlzLl9hZGRET01TdG9yYWdlLmJp
bmQodGhpcykpOworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZUFk
ZGVkLCB0aGlzLl9kb21TdG9yYWdlQWRkZWQsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3Iu
ZG9tU3RvcmFnZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQsIHRoaXMuX2RvbVN0b3JhZ2VSZW1vdmVkLCB0
aGlzKTsKKyAgICB9LAorCiAgICAgX3BvcHVsYXRlQXBwbGljYXRpb25DYWNoZVRyZWU6IGZ1bmN0
aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbCA9IG5ldyBX
ZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsKCk7CkBAIC0xODUwLDE0ICsxODk3LDE0
IEBAIFdlYkluc3BlY3Rvci5JREJJbmRleFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAqLwog
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5l
bCwgZG9tU3RvcmFnZSwgY2xhc3NOYW1lKQogewotICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFn
ZVRyZWVFbGVtZW50LmNhbGwodGhpcywgc3RvcmFnZVBhbmVsLCBudWxsLCBkb21TdG9yYWdlLmRv
bWFpbiA/IGRvbVN0b3JhZ2UuZG9tYWluIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2NhbCBG
aWxlcyIpLCBbImRvbXN0b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0iLCBjbGFzc05hbWVdKTsKKyAg
ICBXZWJJbnNwZWN0b3IuQmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0b3JhZ2VQ
YW5lbCwgbnVsbCwgZG9tU3RvcmFnZS5zZWN1cml0eU9yaWdpbiA/IGRvbVN0b3JhZ2Uuc2VjdXJp
dHlPcmlnaW4gOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvY2FsIEZpbGVzIiksIFsiZG9tc3Rv
cmFnZS1zdG9yYWdlLXRyZWUtaXRlbSIsIGNsYXNzTmFtZV0pOwogICAgIHRoaXMuX2RvbVN0b3Jh
Z2UgPSBkb21TdG9yYWdlOwogfQogCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50
LnByb3RvdHlwZSA9IHsKICAgICBnZXQgaXRlbVVSTCgpCiAgICAgewotICAgICAgICByZXR1cm4g
InN0b3JhZ2U6Ly8iICsgdGhpcy5fZG9tU3RvcmFnZS5kb21haW4gKyAiLyIgKyAodGhpcy5fZG9t
U3RvcmFnZS5pc0xvY2FsU3RvcmFnZSA/ICJsb2NhbCIgOiAic2Vzc2lvbiIpOworICAgICAgICBy
ZXR1cm4gInN0b3JhZ2U6Ly8iICsgdGhpcy5fZG9tU3RvcmFnZS5zZWN1cml0eU9yaWdpbiArICIv
IiArICh0aGlzLl9kb21TdG9yYWdlLmlzTG9jYWxTdG9yYWdlID8gImxvY2FsIiA6ICJzZXNzaW9u
Iik7CiAgICAgfSwKIAogICAgIG9uc2VsZWN0OiBmdW5jdGlvbihzZWxlY3RlZEJ5VXNlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBlYWRkM2Q4N2JmZjg5NDU4OTk2NjUzMTIzNjdm
YTQwYzk2MGYyNjk5Li4zZjI2YjExNDdmMTU2YzliNTM0OTExNjQwNDY1Y2MyOGU2M2Q3MDc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NjIsNyArNzYyLDYgQEAgU3RvcmFnZSog
RE9NV2luZG93OjpzZXNzaW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAg
ICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFVzZURPTVN0b3JhZ2UocGFnZSwgc3RvcmFnZUFyZWEu
Z2V0KCksIGZhbHNlLCBtX2ZyYW1lKTsKIAogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSBTdG9yYWdl
OjpjcmVhdGUobV9mcmFtZSwgc3RvcmFnZUFyZWEucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbV9z
ZXNzaW9uU3RvcmFnZS5nZXQoKTsKQEAgLTgwMiw3ICs4MDEsNiBAQCBTdG9yYWdlKiBET01XaW5k
b3c6OmxvY2FsU3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgZWMgPSBT
RUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZFVzZURPTVN0b3JhZ2UocGFnZSwgc3RvcmFnZUFyZWEuZ2V0KCksIHRy
dWUsIG1fZnJhbWUpOwogCiAgICAgbV9sb2NhbFN0b3JhZ2UgPSBTdG9yYWdlOjpjcmVhdGUobV9m
cmFtZSwgc3RvcmFnZUFyZWEucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2Uu
Z2V0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNjNkYzU3ZTY3MzAwZGE1MjFkODZjYWU5MTIyNjNkYWY4MWMyMmY5Ny4u
NmUzZDcwYzNiMjU0NDQwZDkyNDU3MGJlZjBkYmUwNDJhNjgyZTQyMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTAyLTIwICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUg
aXRlbXMgaW4gdGhlIFJlc291cmNlcyBwYW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBz
aG93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5
NTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Bl
bi5odG1sOgorCiAyMDEzLTAyLTIwICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRhYmJlZEVkaXRvckNvbnRhaW5lciBhbmQg
T3BlblJlc291cmNlRGlhbG9nIHNob3VsZCBzaG93IHVpU291cmNlQ29kZSBwYXRoIGFuZCBuYW1l
IGluc3RlYWQgb2YgcGFyc2VkVVJMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3ItZW5hYmxlZC9kb20tc3RvcmFnZS1vcGVuLWV4cGVj
dGVkLnR4dAppbmRleCBjYmVkZjcwOTM5NTllZTc4MjA1MDk4ODFhMmJhMzUwZDhkMjQzNzYwLi5h
NDY4MjExYTU2N2Y1NzNkOGMwNDA3N2IwOTE5MTBiMmIxZWUyMjlkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQv
ZG9tLXN0b3JhZ2Utb3Blbi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw3IEBACi1UZXN0cyB0aGF0
IFdlYiBJbnNwZWN0b3IgZ2V0cyBwb3B1bGF0ZWQgd2l0aCBET00gc3RvcmFnZXMgdGhhdCB3ZXJl
IG9wZW5lZCBiZWZvcmUgaW5zcGVjdG9yIGlzIHNob3duLgorVGVzdHMgdGhhdCBXZWIgSW5zcGVj
dG9yIGdldHMgcG9wdWxhdGVkIHdpdGggRE9NIHN0b3JhZ2VzIGFjY29yZGluZyB0byBzZWN1cml0
eSBvcmlnaW5zIGZvdW5kIGluIHRoZSBwYWdlLgogCi1Eb21haW46IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMAorU2VjdXJpdHlPcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorSXNMb2NhbFN0b3Jh
Z2U6IHRydWUKK1NlY3VyaXR5T3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKIElzTG9jYWxT
dG9yYWdlOiBmYWxzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCmluZGV4IDIwMTgxYzY3
MmMwNjljOGZhODZiNTk2MTk4ZTA0NGJhZDM4MDAzMjQuLjEzMDIwMDcyNGU1YWFhZTQ0ZmEyNjI3
NjI3MDE3OGFkMjRmNmI2ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCkBAIC0yMiw3
ICsyMiw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgdmFyIHN0b3JhZ2VzID0g
V2ViSW5zcGVjdG9yLmRvbVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpOwogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHN0b3JhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiRG9tYWluOiAiICsgc3RvcmFnZXNbaV0uZG9tYWluKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTZWN1cml0eU9yaWdpbjogIiArIHN0b3Jh
Z2VzW2ldLnNlY3VyaXR5T3JpZ2luKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJJc0xvY2FsU3RvcmFnZTogIiArIHN0b3JhZ2VzW2ldLmlzTG9jYWxTdG9yYWdlKTsKICAg
ICAgICAgfQogICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpAQCAtMzQsNiAr
MzQsNiBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJvbmxvYWQo
KSI+Ci08cD5UZXN0cyB0aGF0IFdlYiBJbnNwZWN0b3IgZ2V0cyBwb3B1bGF0ZWQgd2l0aCBET00g
c3RvcmFnZXMgdGhhdCB3ZXJlIG9wZW5lZCBiZWZvcmUgaW5zcGVjdG9yIGlzIHNob3duLjwvcD4K
KzxwPlRlc3RzIHRoYXQgV2ViIEluc3BlY3RvciBnZXRzIHBvcHVsYXRlZCB3aXRoIERPTSBzdG9y
YWdlcyBhY2NvcmRpbmcgdG8gc2VjdXJpdHkgb3JpZ2lucyBmb3VuZCBpbiB0aGUgcGFnZS48L3A+
CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189478</attachid>
            <date>2013-02-21 01:59:58 -0800</date>
            <delta_ts>2013-02-21 03:58:45 -0800</delta_ts>
            <desc>Comments addressed</desc>
            <filename>bug-109572-20130221135618.patch</filename>
            <type>text/plain</type>
            <size>77467</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwNjI0YzRiMjNhYWFl
ZDVlOWVmODUyYTg3ZTFhNDMxYTI3OTE2Ni4uZWM0ZDgwMTVkNzMxZWQyMzU3ZGUyODVjMzczNGU0
MWVkMmVhMTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEzLTAyLTIxICBBbGV4
YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUgaXRlbXMgaW4gdGhlIFJlc291cmNlcyBw
YW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBzaG93bgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTcyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6CisgICAgICAgICogV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdFNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjbGVhckZyb250
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6aXNFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZW5hYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlzYWJsZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmdldERPTVN0b3Jh
Z2VJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjp0b0Vycm9yU3RyaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9NU3RvcmFnZUl0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpyZW1vdmVET01TdG9yYWdl
SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnN0b3Jh
Z2VJZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmRpZERp
c3BhdGNoRE9NU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6ZmluZFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAo
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmg6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwp
OgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAg
ICAgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
OmZpbmRGcmFtZVdpdGhTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JQ
YWdlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlLnN0b3JhZ2VJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFn
ZS5wcm90b3R5cGUuZ2V0IGlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnBy
b3RvdHlwZS5nZXQgc2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2UucHJvdG90eXBlLmdldEl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlLnByb3RvdHlwZS5zZXRJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
LnByb3RvdHlwZS5yZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUu
X3NlY3VyaXR5T3JpZ2luQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VN
b2RlbC5wcm90b3R5cGUuX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fc3RvcmFnZUtleSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZUl0ZW1zQ2xl
YXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5f
ZG9tU3RvcmFnZUl0ZW1SZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdl
TW9kZWwucHJvdG90eXBlLl9kb21TdG9yYWdlSXRlbUFkZGVkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlLnN0b3JhZ2VGb3JJZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZS5zdG9yYWdlcyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRlbXNWaWV3LmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl91cGRhdGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlLl9zaG93RE9N
U3RvcmFnZUl0ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlSXRlbXNWaWV3
LnByb3RvdHlwZS5fZGF0YUdyaWRGb3JET01TdG9yYWdlSXRlbXMpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5faW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlLl9kb21TdG9yYWdlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlc1BhbmVsLnByb3RvdHlwZS5fZG9tU3RvcmFnZVJlbW92ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZS5fcG9wdWxhdGVET01TdG9yYWdlVHJl
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBpdGVt
VVJMKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnNlc3Npb25TdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
bG9jYWxTdG9yYWdlKToKKwogMjAxMy0wMi0yMCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBUYWJiZWRFZGl0b3JDb250YWlu
ZXIgYW5kIE9wZW5SZXNvdXJjZURpYWxvZyBzaG91bGQgc2hvdyB1aVNvdXJjZUNvZGUgcGF0aCBh
bmQgbmFtZSBpbnN0ZWFkIG9mIHBhcnNlZFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZjg5
YTBlYzJlOTVjMzMxNGMwYjJiODUxYmVhY2ZlOGYwNTFmYTE0Li40NTAxN2I0NWYwN2FkNjFmZWM0
OTFmODdiZmVlMDM0NDQ1NDBjZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTYyMyw3ICsx
NjIzLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAKICAg
ICBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcAotICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRh
dGFiYXNlQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlUmVzb3VyY2Uu
Y3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCA2MWY0MWJjNDIyZTE5NGM5MWY5ZDVkZjQ5MDkxOTRhNmZk
ZWU2ZDBiLi4xMTcyYjY2OTI3NTA1ZmJmN2Y5MmZhYzY1NTNlZTdjODlhNmFlM2ZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM4MzgsOCArMzgzOCw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VB
Z2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGaWxl
U3lzdGVtQWdlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2hhbm5lbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDlhMDlhMDQ2MDQ4ZjcyNDUzYzQyNWFhZjIz
ZGEyNGExODk0NTg3ZTAuLjVkNjdjZjBkZTI2NTQwOTkxNDI4NTUwM2UwMTdkMDAzYmU5ZmFkMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQpAQCAtNzk4LDcgKzc5OCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01E
ZWJ1Z2dlckFnZW50LmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dC5jcHAgXAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIFwK
ICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgXAogICAgIGlu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIFwKQEAgLTE5OTksNyArMTk5OCw2IEBAIEhFQURFUlMg
Kz0gXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggXAogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQuaCBcCi0gICAgaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmggXAog
ICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIFwKICAgICBpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNzc0
NDQ1NDVhYjFiMTI5ZDBkOTMwZTQzYTQyZjk1NTVmOWFhYzc2Li5iYTU2YmNiMmUxMjUzZWIxNGI1
YWMwNGE3OGE5YzI3OTk4OGZmZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODU5LDggKzE4NTks
NiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50Lmgn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgnLAotICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwJywKLSAg
ICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuaCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlSW5zdHJ1bWVudGF0aW9uLmgnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
b3JkZXIKaW5kZXggNjMzYjBmNDc0NTJkODgwOWRiMWJiMTllYTYxNjM5YzlmMThiNDAzMC4uYzE2
M2E4ZTUzMzk1MWZmZjBhMzQ0ODA3MGY2MjZiMjJiMmIzOGM5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CkBAIC0xOTE4Miw3ICsxOTE4Miw2IEBAIF9fWk4zV1RGMTdIYXNoTWFwVHJhbnNsYXRvcklTdDRw
YWlySU5TXzZSZWZQdHJJTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbkVFRU5TMl9JCiBfX1pON1dl
YkNvcmUyNEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjIwZGlkVXNlRE9NU3RvcmFnZUltcGxFUE5T
XzE5SW5zdHJ1bWVudGluZ0FnZW50c0VQTlNfMTFTdG9yYWdlQXJlYUViUE5TXzVGcmFtZUUKIF9f
Wk43V2ViQ29yZTI0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50MTZkaWRVc2VET01TdG9yYWdlRVBO
U18xMVN0b3JhZ2VBcmVhRWJQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlN1N0b3JhZ2U2Y3JlYXRl
RVBOU181RnJhbWVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFTdG9yYWdlQXJlYUVFRQotX19aTjdX
ZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VDMUVQTlNfN1N0b3JhZ2VFYlBOU181
RnJhbWVFCiBfX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xv
YmFsT2JqZWN0RVBOU183U3RvcmFnZUUKIF9fWk43V2ViQ29yZTR3cmFwSU5TXzlKU1N0b3JhZ2VF
TlNfN1N0b3JhZ2VFRUVOM0pTQzdKU1ZhbHVlRVBOUzNfOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUds
b2JhbE9iamVjdEVQVDBfCiBfX1pON1dlYkNvcmUxNWdldERPTVN0cnVjdHVyZUlOU185SlNTdG9y
YWdlRUVFUE4zSlNDOVN0cnVjdHVyZUVQTlMyXzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxP
YmplY3RFCkBAIC0xOTIwNSw3ICsxOTIwNCw2IEBAIF9fWk43V2ViQ29yZTE0SlNTdG9yYWdlT3du
ZXIyNmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzRU4zSlNDNkhhbmRsZUlOUzFfN1Vua25vCiBf
X1pON1dlYkNvcmUxNEpTU3RvcmFnZU93bmVyOGZpbmFsaXplRU4zSlNDNkhhbmRsZUlOUzFfN1Vu
a25vd25FRUVQdgogX19aTjdXZWJDb3JlOUpTU3RvcmFnZUQxRXYKIF9fWk43V2ViQ29yZTdTdG9y
YWdlRDFFdgotX19aTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VEMEV2CiBf
X1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjVlcXVhbEVQS1MwXwogX19aTjdXZWJDb3JlOUpT
U3RvcmFnZTEwbmFtZUdldHRlckVQTjNKU0M5RXhlY1N0YXRlRU5TMV83SlNWYWx1ZUVSS05TMV8x
MElkZW50aWZpZXJFCiBfX1pOSzdXZWJDb3JlN1N0b3JhZ2U3Z2V0SXRlbUVSS04zV1RGNlN0cmlu
Z0UKQEAgLTIwMzc0LDcgKzIwMzcyLDYgQEAgX19aTjdXZWJDb3JlMTdnZXRET01Db25zdHJ1Y3Rv
cklOU18yNUpTQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3JFRUVQTjNKU0M4SlNPYmplY3QKIF9fWk43
V2ViQ29yZTMwanNET01XaW5kb3dGaWxlTGlzdENvbnN0cnVjdG9yRVBOM0pTQzlFeGVjU3RhdGVF
TlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTEwSlNGaWxlTGlz
dDE0Z2V0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMxXzE0SlNHbG9iYWxPYmplY3RF
CiBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5TXzIxSlNGaWxlTGlzdENvbnN0cnVj
dG9yRUVFUE4zSlNDOEpTT2JqZWN0RVBOUzJfOUV4ZWNTdGF0ZUVQS05TXzE3SlNET01HbG9iYWxP
YmplY3RFCi1fX1pOSzdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UxN2lzU2Ft
ZUhvc3RBbmRUeXBlRVBOU181RnJhbWVFYgogX19aTjdXZWJDb3JlNTNqc0RPTVdpbmRvd1NWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWxDb25zdHJ1Y3RvckVQTjNKU0M5RXhlY1N0YXRlRU5T
MF83SlNWYWx1ZUVSS05TMF8xMElkZW50aWZpZXJFCiBfX1pON1dlYkNvcmUzM0pTU1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY1Ntb290aFJlbDE0Z2V0Q29uc3RydWN0b3JFUE4zSlNDOUV4ZWNTdGF0ZUVQ
TlMxXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pON1dlYkNvcmUxN2dldERPTUNvbnN0cnVjdG9ySU5T
XzQ0SlNTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsQ29uc3RydWN0b3JFRUVQTjNKU0M4
SlNPYmplY3RFUE5TMl85RXhlY1N0YXRlRVBLTlNfMTdKU0RPTUdsb2JhbE9iamVjdEUKQEAgLTI3
NDAxLDIzICsyNzM5OCwxNCBAQCBfX1pON1dlYkNvcmUxOEluc3BlY3RvclBhZ2VBZ2VudDEwZnJh
bWVGb3JJZEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE4SW5zcGVjdG9yUGFnZUFnZW50
MTVyZXNvdXJjZUNvbnRlbnRFUE4zV1RGNlN0cmluZ0VQTlNfNUZyYW1lRVJLTlNfNEtVUkxFUzNf
CiBfX1pON1dlYkNvcmVMMThkZWNvZGVNYWluUmVzb3VyY2VFUE5TXzVGcmFtZUVQTjNXVEY2U3Ry
aW5nRQogX19aTjdXZWJDb3JlTDE4ZGVjb2RlU2hhcmVkQnVmZmVyRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzEyU2hhcmVkQnVmZmVyRUVFUktOUzBfNlN0cmluZ0VQUzRfCi1fX1pON1dlYkNvcmUyN0lu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTRiaW5kRVBOU18xN0luc3BlY3RvckZyb250ZW5kRQog
X19aTjdXZWJDb3JlMTdJbnNwZWN0b3JGcm9udGVuZDEwRE9NU3RvcmFnZTEzYWRkRE9NU3RvcmFn
ZUVOM1dURjEwUGFzc1JlZlB0cklOU18xNUluc3BlY3Rvck9iamVjdEVFRQogX19aTjdXZWJDb3Jl
MTVTdG9yYWdlQXJlYVN5bmMxM3NjaGVkdWxlQ2xlYXJFdgogX19aTjdXZWJDb3JlMjZJbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlcjMxRE9NU3RvcmFnZV9nZXRET01TdG9yYWdlRW50cmllc0VsUE5T
XzE1SW5zcGVjdG9yT2JqZWN0RQogX19aTjdXZWJDb3JlMjRJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQyMGdldERPTVN0b3JhZ2VFbnRyaWVzRVBOM1dURjZTdHJpbmdFaVBOUzFfNlJlZlB0cklOU18x
NEluc3BlY3RvckFycmF5RUVFCi1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQ
dHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmly
c3RFeHRyYWN0b3JJUzZfRUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEw
SGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VFRUVTRF9FMTZsb29rdXBGb3JXcml0aW5nRVJLaQotX19a
TjNXVEY5SGFzaFRhYmxlSWlTdDRwYWlySWlOU182UmVmUHRySU43V2ViQ29yZTI3SW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlRUVFRU5TXzE4UGFpckZpcnN0RXh0cmFjdG9ySVM2X0VFTlNfN0lu
dEhhc2hJakVFTlNfMTRQYWlySGFzaFRyYWl0c0lOU18xMEhhc2hUcmFpdHNJaUVFTlNDX0lTNV9F
RUVFU0RfRTNhZGRJaVM1X05TXzE3SGFzaE1hcFRyYW5zbGF0b3JJUzZfU0ZfU0FfRUVFRVMxX0lO
U18xN0hhc2hUYWJsZUl0ZXJhdG9ySWlTNl9TOF9TQV9TRl9TRF9FRWJFUktUX1JLVDBfCi1fX1pO
M1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZfRUVOU183SW50
SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVOU0NfSVM1X0VF
RUVTRF9FNGZpbmRJaU5TXzIySWRlbnRpdHlIYXNoVHJhbnNsYXRvcklpUzZfU0FfRUVFRU5TXzE3
SGFzaFRhYmxlSXRlcmF0b3JJaVM2X1M4X1NBX1NGX1NEX0VFUktUXwotX19aTjNXVEY5SGFzaFRh
YmxlSWlTdDRwYWlySWlOU182UmVmUHRySU43V2ViQ29yZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlRUVFRU5TXzE4UGFpckZpcnN0RXh0cmFjdG9ySVM2X0VFTlNfN0ludEhhc2hJakVFTlNf
MTRQYWlySGFzaFRyYWl0c0lOU18xMEhhc2hUcmFpdHNJaUVFTlNDX0lTNV9FRUVFU0RfRTVjbGVh
ckV2Ci1fX1pOM1dURjlIYXNoVGFibGVJaVN0NHBhaXJJaU5TXzZSZWZQdHJJTjdXZWJDb3JlMjdJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VFRUVFTlNfMThQYWlyRmlyc3RFeHRyYWN0b3JJUzZf
RUVOU183SW50SGFzaElqRUVOU18xNFBhaXJIYXNoVHJhaXRzSU5TXzEwSGFzaFRyYWl0c0lpRUVO
U0NfSVM1X0VFRUVTRF9FNnJlaGFzaEVpCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZTMxc3RhcnRSZXBvcnRpbmdDaGFuZ2VzVG9Gcm9udGVuZEV2CiBfX1pOSzdXZWJD
b3JlN1N0b3JhZ2Uza2V5RWoKIF9fWk5LN1dlYkNvcmUxNVN0b3JhZ2VBcmVhSW1wbDNrZXlFagog
X19aTjdXZWJDb3JlMTBTdG9yYWdlTWFwM2tleUVqCiBfX1pON1dlYkNvcmUxMFN0b3JhZ2VNYXAx
OHNldEl0ZXJhdG9yVG9JbmRleEVqCi1fX1pON1dlYkNvcmUyN0luc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZWVxRVJLTlNfMTNFdmVudExpc3RlbmVyRQotX19aTjdXZWJDb3JlMjdJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2U2dW5iaW5kRXYKIF9fWk43V2ViQ29yZTE0Q29uc29sZU1lc3NhZ2Ux
M2FkZFRvRnJvbnRlbmRFUE5TXzE3SW5zcGVjdG9yRnJvbnRlbmQ3Q29uc29sZUVQTlNfMjFJbmpl
Y3RlZFNjcmlwdE1hbmFnZXJFCiBfX1pON1dlYkNvcmUxN0luc3BlY3RvckZyb250ZW5kN0NvbnNv
bGUxMm1lc3NhZ2VBZGRlZEVOM1dURjEwUGFzc1JlZlB0cklOU18xNUluc3BlY3Rvck9iamVjdEVF
RQogX19aTjdXZWJDb3JlMjZJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcjExUGFnZV9yZWxvYWRF
bFBOU18xNUluc3BlY3Rvck9iamVjdEUKQEAgLTM2NDA1LDEwICszNjM5Myw4IEBAIF9fWlRWTjdX
ZWJDb3JlMTFUeXBlQnVpbGRlcjVBcnJheUlOUzBfM0RPTTROb2RlRUVFCiBfX1pUVk43V2ViQ29y
ZTE4SW5zcGVjdG9yQmFzZUFnZW50SU5TXzE3SW5zcGVjdG9yRE9NQWdlbnRFRUUKIF9fWlRWTjdX
ZWJDb3JlNVRpbWVySU5TXzI4UmV2YWxpZGF0ZVN0eWxlQXR0cmlidXRlVGFza0VFRQogX19aVFZO
N1dlYkNvcmUxOEluc3BlY3RvckJhc2VBZ2VudElOU18yNUluc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnRFRUUKLV9fWlRWTjNXVEYyMU1lbW9yeUluc3RydW1lbnRhdGlvbjdXcmFwcGVySU43V2ViQ29y
ZTI3SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlRUVFCiBfX1pUVk43V2ViQ29yZTExVHlwZUJ1
aWxkZXI1QXJyYXlJTlMxX0lOM1dURjZTdHJpbmdFRUVFRQogX19aVFZON1dlYkNvcmUxOEluc3Bl
Y3RvckJhc2VBZ2VudElOU18yNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudEVFRQotX19aTjdXZWJD
b3JlMjdJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UxNHNfbmV4dFVudXNlZElkRQogX19aVFZO
M1dURjIxTWVtb3J5SW5zdHJ1bWVudGF0aW9uN1dyYXBwZXJJTjdXZWJDb3JlMTFTdG9yYWdlQXJl
YUVFRQogX19aVFZON1dlYkNvcmU1VGltZXJJTlNfMjhJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hU
YXNrRUVFCiBfX1pUVk43V2ViQ29yZTIwRnJvbnRlbmRNZW51UHJvdmlkZXJFCkBAIC0zODQ1NCw3
ICszODQ0MCw2IEBAIF9fWk43V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzOUluc3BlY3RvckUK
IF9fWk43V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMTlJbnNwZWN0b3JDb250cm9sbGVyRQog
X19aTjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMyMEluc3BlY3Rvck1lbW9yeUFnZW50RQog
X19aTjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMyNEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dEUKLV9fWk43V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjhJbnNwZWN0b3JET01TdG9yYWdl
UmVzb3VyY2VzRQogX19aTjdXZWJDb3JlMThXZWJDb3JlTWVtb3J5VHlwZXMxNkluc3BlY3Rvck92
ZXJsYXlFCiBfX1pON1dlYkNvcmUxOFdlYkNvcmVNZW1vcnlUeXBlczIySW5zcGVjdG9yUHJvZmls
ZXJBZ2VudEUKIF9fWk43V2ViQ29yZTE4V2ViQ29yZU1lbW9yeVR5cGVzMjJJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCA2NzRlOTQ1MWIyMDI2NmFjNDFkNTljNzM0NjRlNzA3NDA1MTAzZWVjLi5iZDk1ZDM4
YjUxZDc0MGM4ZTU4M2Q4YTNiYWNlNWFjOGM0M2VjODU0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzYxMDMsMzAgKzc2MTAzLDYgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9y
XEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZp
bGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2UuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5caW5zcGVjdG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKaW5kZXggOGEzY2M1NDQ5MGYxYjY0MDNkNTNhN2VmNjZiNTE3ZDkzNmZjZmI4
ZC4uZTZiODc3YTRmZTU2YTMxY2VmYTQ2MDcwYTdhYjJmY2YxNDE4OTk5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC04MDM4LDEwICs4
MDM4LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwIj4KLSAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVh
c2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21C
dWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rp
b258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGaWxlU3lzdGVtQWdl
bnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3Vy
YXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTEwODE4LDcgKzEwODE0LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JET01BZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvckRPTURlYnVnZ2VyQWdlbnQuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCIg
Lz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJ
bnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIiAvPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCmluZGV4IDFkYWZhNjg0NDA4YzBmYWFkNGExYjE1YjM3M2UyNGM1ZTZjZWQ0ZTMuLmM2
NDM4YTJhZDFjOGVkOTNhYTY3NTI1NTYzOTVlMzgzMTJiZjI2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAg
LTY0ODMsOSArNjQ4Myw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3Jc
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCI+CiAgICAgICA8RmlsdGVyPmluc3BlY3Rvcjwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5z
cGVjdG9yXEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiPgotICAgICAgPEZpbHRlcj5p
bnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0xMzc5MSw5ICsx
Mzc4OCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuaCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3RvcjwvRmls
dGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVj
dG9yXEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5oIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9y
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmY3ZjQ5MTU1YjMwOWE5NzQ0MzkzNGZj
MTJiOTVmNThmNDcwNjIzNC4uMGZlZTRiYzA4NjJmMmZmMWY3M2I1NmQyZjYxNjQwZTdlMjc1MWNk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTExOSw4ICsxMTE5LDYgQEAKIAkJNDFFMUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8q
IEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCAqLzsg
fTsKIAkJNDFFMUIxRDMwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDRDBGRjU5ODY5
MDA1NzZCM0IgLyogU2hhcmVkV29ya2VyLmNwcCAqLzsgfTsKIAkJNDFFMUIxRDQwRkY1OTg2OTAw
NTc2QjNCIC8qIFNoYXJlZFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFFMUIxQ0UwRkY1OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5o
ICovOyB9OwotCQk0MUYwNjE3NDBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUYwNjE3MjBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmggKi87IH07Ci0JCTQxRjA2MTc1MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFGMDYxNzMwRjVGMDBBQzAwQTA3RUFDIC8qIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNv
dXJjZS5jcHAgKi87IH07CiAJCTQxRjA2MThFMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVz
c2FnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFG
MDYxOEMwRjVGMDY5ODAwQTA3RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggKi87IH07CiAJCTQxRjA2
MThGMEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUYwNjE4RDBGNUYwNjk4MDBBMDdFQUMg
LyogQ29uc29sZU1lc3NhZ2UuY3BwICovOyB9OwogCQk0MUYwNjIxNDBGNUYxOTI2MDBBMDdFQUMg
LyogSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFGMDYyMTIwRjVGMTkyNjAwQTA3RUFDIC8qIEluc3BlY3Rv
ckRhdGFiYXNlUmVzb3VyY2UuaCAqLzsgfTsKQEAgLTg1MDMsOCArODUwMSw2IEBACiAJCTQxRTFC
MUNEMEZGNTk4NjkwMDU3NkIzQiAvKiBTaGFyZWRXb3JrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gU2hhcmVkV29ya2VyLmNwcDsgcGF0aCA9IHdvcmtlcnMvU2hh
cmVkV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIxQ0UwRkY1
OTg2OTAwNTc2QjNCIC8qIFNoYXJlZFdvcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBTaGFyZWRXb3JrZXIuaDsgcGF0aCA9IHdvcmtlcnMvU2hhcmVkV29ya2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFCMUNGMEZGNTk4NjkwMDU3NkIzQiAvKiBT
aGFyZWRXb3JrZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFNoYXJlZFdvcmtlci5pZGw7
IHBhdGggPSB3b3JrZXJzL1NoYXJlZFdvcmtlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTQxRjA2MTcyMEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yRE9NU3Rv
cmFnZVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxRjA2MTczMEY1
RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGMDYxOEMwRjVGMDY5ODAwQTA3
RUFDIC8qIENvbnNvbGVNZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbnNvbGVNZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRjA2MThE
MEY1RjA2OTgwMEEwN0VBQyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDb25zb2xlTWVzc2FnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxRjA2MjEyMEY1RjE5MjYwMEEwN0VBQyAvKiBJbnNwZWN0b3JEYXRhYmFz
ZVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckRh
dGFiYXNlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjY1LDgg
KzE1MjYxLDYgQEAKIAkJCQlGM0Q0QzQ3NzEyRTA3NjYzMDAzREExNTAgLyogSW5zcGVjdG9yRE9N
RGVidWdnZXJBZ2VudC5oICovLAogCQkJCTdBNzRFQ0I4MTAxODM5QTUwMEJGOTM5RSAvKiBJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwICovLAogCQkJCTdBNzRFQ0I5MTAxODM5QTYwMEJGOTM5
RSAvKiBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaCAqLywKLQkJCQk0MUYwNjE3MzBGNUYwMEFD
MDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmNwcCAqLywKLQkJCQk0MUYw
NjE3MjBGNUYwMEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggKi8s
CiAJCQkJMTVEMTdEMUUxNDcyMzFFQjAwNUVCQ0E2IC8qIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2Vu
dC5jcHAgKi8sCiAJCQkJMTVEMTdEMUYxNDcyMzFFQjAwNUVCQ0E2IC8qIEluc3BlY3RvckZpbGVT
eXN0ZW1BZ2VudC5oICovLAogCQkJCTIyNzc3NzVGMTM0NURFQTkwMDhFQTQ1NSAvKiBJbnNwZWN0
b3JGcm9udGVuZENoYW5uZWwuaCAqLywKQEAgLTI0NzYzLDcgKzI0NzU3LDYgQEAKIAkJCQk3QTI0
NTg3QzEwMjFFQUY0MDAwQTAwQUEgLyogSW5zcGVjdG9yRE9NQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUYzRDRDNDc5MTJFMDc2NjMwMDNEQTE1MCAvKiBJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTc0RUNCQjEwMTgzOUE2MDBCRjkzOUUgLyogSW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MUYwNjE3NDBGNUYw
MEFDMDBBMDdFQUMgLyogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNUQxN0QyMjE0NzIzMUVCMDA1RUJDQTYgLyogSW5zcGVjdG9yRmlsZVN5c3RlbUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzhEQTIwRTE1MjBFQjhDMDA2MTQxQzEgLyogSW5z
cGVjdG9yRnJvbnRlbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIyNzc3NzYwMTM0NURFQTkwMDhF
QTQ1NSAvKiBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjgw
NTcsNyArMjgwNTAsNiBAQAogCQkJCTdBMjQ1ODdCMTAyMUVBRjQwMDBBMDBBQSAvKiBJbnNwZWN0
b3JET01BZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGM0Q0QzQ3ODEyRTA3NjYzMDAzREEx
NTAgLyogSW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QTc0RUNCQTEwMTgzOUE2MDBCRjkzOUUgLyogSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTQxRjA2MTc1MEY1RjAwQUMwMEEwN0VBQyAvKiBJbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTVEMTdEMjExNDcyMzFF
QjAwNUVCQ0E2IC8qIEluc3BlY3RvckZpbGVTeXN0ZW1BZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0RjRGNUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRjM0NEM3NTgxMTI5NEZGNjAwRjI2RUVFIC8qIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNDE1OTNlYTg2
OTE4ZDU5MDc5OGY0MTE2ZTA4ZTgwMTZiY2Q3Y2FiMi4uMmQ4NTFhMmY1NWEwOWRlMzVhNjNlZjNi
MzM2NDhlMzM0MmY3MGE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVN
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjAsNyArNjAsNiBAQCBNZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yID0gIldlYkluc3BlY3RvciI7CiBNZW1v
cnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yQ29udHJvbGxlciA9ICJX
ZWJJbnNwZWN0b3IiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6Okluc3Bl
Y3Rvck1lbW9yeUFnZW50ID0gIldlYkluc3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNv
cmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50ID0gIldlYkluc3BlY3RvciI7
Ci1NZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlcyA9ICJXZWJJbnNwZWN0b3IiOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVt
b3J5VHlwZXM6Okluc3BlY3Rvck92ZXJsYXkgPSAiV2ViSW5zcGVjdG9yIjsKIE1lbW9yeU9iamVj
dFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JQcm9maWxlckFnZW50ID0gIldlYklu
c3BlY3RvciI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6SW5zcGVjdG9y
RGVidWdnZXJBZ2VudCA9ICJXZWJJbnNwZWN0b3IiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggYWJjZjE3NjE2MWRmZjU5NjA5
YTkwOGVjYjYxNjE3MjRiNGIxOWFlZS4uMTM2NDE5ZmQyNzBmNzE5NmIwODVmOGUxMGZlZDU2NmY2
ZmM2ZmEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oCkBAIC02NSw3ICs2NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5
T2JqZWN0VHlwZSBJbnNwZWN0b3JDb250cm9sbGVyOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RU
eXBlIEluc3BlY3Rvck1lbW9yeUFnZW50OwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDsKLSAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbnNw
ZWN0b3JET01TdG9yYWdlUmVzb3VyY2VzOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIElu
c3BlY3Rvck92ZXJsYXk7CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDsKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291
cmNlLmpzCmluZGV4IGM5ZTYzZWY0OTg3NjVlMmU3ZDgxZmQ2MDAwODgxYTEyY2Q1NzI2ZjQuLjcw
MDA5NjdmNWVmZDYwNjFjMjg2ODUzMDVkZDQ1Y2ZkY2U1NDA3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTE4NSw3ICsxODUs
NyBAQCBJbmplY3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYXNlICJTdG9y
YWdlIjoKICAgICAgICAgICAgICAgICB2YXIgc3RvcmFnZUlkID0gSW5qZWN0ZWRTY3JpcHRIb3N0
LnN0b3JhZ2VJZChvYmplY3QpCiAgICAgICAgICAgICAgICAgaWYgKHN0b3JhZ2VJZCkKLSAgICAg
ICAgICAgICAgICAgICAgaGludHMuZG9tU3RvcmFnZUlkID0gc3RvcmFnZUlkOworICAgICAgICAg
ICAgICAgICAgICBoaW50cy5kb21TdG9yYWdlSWQgPSBJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVh
dGUoIigiICsgc3RvcmFnZUlkICsgIikiKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBJbmplY3RlZFNjcmlwdEhvc3QuaW5zcGVjdChvYmplY3RJZCwgaGludHMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDMyMDBiYTlkMTBi
MzFlNDkzN2E5ZGI0MzI2YmI1N2U5MmI3ODU3MzIuLmY0NzZjOTg5ZjZiMzdhYjBlZmM1NGNlMjYy
ZDM4NmQ2ZDBlODQ1YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24K
QEAgLTE0MjMsMjIgKzE0MjMsMTYgQEAKICAgICB7CiAgICAgICAgICJkb21haW4iOiAiRE9NU3Rv
cmFnZSIsCiAgICAgICAgICJoaWRkZW4iOiB0cnVlLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAi
UXVlcnkgYW5kIG1vZGlmeSBET00gc3RvcmFnZS4iLAogICAgICAgICAidHlwZXMiOiBbCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgImlkIjogIlN0b3JhZ2VJZCIsCi0gICAgICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
VW5pcXVlIGlkZW50aWZpZXIgb2YgRE9NIHN0b3JhZ2UgZW50cnkuIiwKLSAgICAgICAgICAgICAg
ICAiaGlkZGVuIjogdHJ1ZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAiaWQiOiAiRW50cnkiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIs
Ci0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGVudHJ5LiIsCisg
ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRPTSBTdG9yYWdlIGlkZW50aWZpZXIuIiwK
ICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAicHJvcGVy
dGllcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAidHlwZSI6
ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiRG9jdW1lbnQgb3JpZ2luLiIgfSwKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJpc0xvY2FsU3RvcmFnZSIsICJ0eXBlIjogImJvb2xlYW4i
LCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBmb3IgbG9jYWwgc3RvcmFnZS4iIH0sCi0gICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiLCAiZGVzY3JpcHRp
b24iOiAiRW50cnkgaWQgZm9yIGZ1cnRoZXIgcmVmZXJlbmNlLiIgfQorICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNlY3VyaXR5T3JpZ2luIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2Ny
aXB0aW9uIjogIlNlY3VyaXR5IG9yaWdpbiBmb3IgdGhlIHN0b3JhZ2UuIiB9LAorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImlzTG9jYWxTdG9yYWdlIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJkZXNjcmlwdGlvbiI6ICJXaGV0aGVyIHRoZSBzdG9yYWdlIGlzIGxvY2FsIHN0b3JhZ2UgKG5v
dCBzZXNzaW9uIHN0b3JhZ2UpLiIgfQogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0s
CiAgICAgICAgICAgICB7CkBAIC0xNDU5LDcgKzE0NTMsNyBAQAogICAgICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJEaXNhYmxlcyBzdG9yYWdlIHRyYWNraW5nLCBwcmV2ZW50cyBzdG9yYWdl
IGV2ZW50cyBmcm9tIGJlaW5nIHNlbnQgdG8gdGhlIGNsaWVudC4iCiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogImdldERPTVN0b3JhZ2VFbnRy
aWVzIiwKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnZXRET01TdG9yYWdlSXRlbXMiLAogICAg
ICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInN0b3JhZ2VJZCIsICIkcmVmIjogIlN0b3JhZ2VJZCIgfQogICAgICAgICAgICAgICAgIF0s
CkBAIC0xNDczLDkgKzE0NjcsNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0
b3JhZ2VJZCIsICIkcmVmIjogIlN0b3JhZ2VJZCIgfSwKICAgICAgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJrZXkiLCAidHlwZSI6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJpbmciIH0KLSAgICAgICAgICAgICAgICBdLAot
ICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInN1Y2Nlc3MiLCAidHlwZSI6ICJib29sZWFuIiB9CiAgICAgICAgICAgICAgICAgXQogICAg
ICAgICAgICAgfSwKICAgICAgICAgICAgIHsKQEAgLTE0ODMsMjAgKzE0NzQsMTEgQEAKICAgICAg
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdG9yYWdlSWQiLCAiJHJlZiI6ICJTdG9yYWdlSWQiIH0sCiAgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAia2V5IiwgInR5cGUiOiAic3RyaW5nIiB9Ci0gICAgICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdWNjZXNzIiwgInR5cGUiOiAiYm9vbGVhbiIgfQogICAgICAgICAgICAgICAgIF0KICAg
ICAgICAgICAgIH0KICAgICAgICAgXSwKICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJhZGRET01TdG9yYWdlIiwKLSAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdG9y
YWdlIiwgIiRyZWYiOiAiRW50cnkiIH0KLSAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICB9
LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImRvbVN0b3JhZ2VJdGVt
c0NsZWFyZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInN0b3JhZ2VJZCIsICAiJHJlZiI6ICJTdG9yYWdlSWQiIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUuY3BwCmluZGV4IDY3
Y2VhNDYwZTIwZTE5ZjJkYWZjZmM5NWNkZDNhNjc2YjgyMDk5MzkuLjFlYjhlMjE1YzVlNjQyOGU3
OGNhYWVmN2FkMGFiOTkyNmVkNzc4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtNDksNyArNDksNiBAQAogI2luY2x1ZGUgIkluc3Bl
Y3RvckRPTUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50LmNw
cCIKICNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIgotI2luY2x1ZGUgIklu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJh
c2VBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRGF0YWJhc2VSZXNvdXJjZS5jcHAiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggODU0ODM2MjMxMDFlZDdh
NThmOGMyYjQ5NTBlNTUxYzI4MzEwMzBkYy4uZmRjNDRjZjhjNzM3YWVmOGVkMDc0YjY0YTA2ZmRh
ZWViNTFkNzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Oklu
c3BlY3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JD
CiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQogICAgIG1fYWdlbnRzLmFwcGVuZChJbnNwZWN0b3JG
aWxlU3lzdGVtQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2VB
Z2VudCwgbV9zdGF0ZS5nZXQoKSkpOwogI2VuZGlmCi0gICAgT3duUHRyPEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudD4gZG9tU3RvcmFnZUFnZW50UHRyKEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSkpOworICAg
IE93blB0cjxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+IGRvbVN0b3JhZ2VBZ2VudFB0cihJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IG1fcGFnZUFnZW50LCBtX3N0YXRlLmdldCgpKSk7CiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdlQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9h
Z2VudHMuYXBwZW5kKGRvbVN0b3JhZ2VBZ2VudFB0ci5yZWxlYXNlKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCmlu
ZGV4IDA2YzQyNzBlNzIyYTkyNjU2NGU3YmJiZjdiMWNmOGJlNzZmNzFmM2EuLmRmMDc0OGU5N2Fh
N2NiZTE4YTBjOTE2N2Q2ZWNkMDRlZGU2YjM2NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwCkBAIC0zNywxNCArMzcs
MTkgQEAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlRGVzY3JpcHRp
b24uaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5z
cGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNlY3Vy
aXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVh
LmgiCisjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIApAQCAtNzEs
MTAgKzc2LDEwIEBAIHN0YXRpYyBib29sIGhhZEV4Y2VwdGlvbihFeGNlcHRpb25Db2RlIGVjLCBF
cnJvclN0cmluZyogZXJyb3JTdHJpbmcpCiAgICAgfQogfQogCi1JbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCitJbnNwZWN0
b3JET01TdG9yYWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQogICAgIDogSW5zcGVjdG9yQmFzZUFn
ZW50PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4oIkRPTVN0b3JhZ2UiLCBpbnN0cnVtZW50aW5n
QWdlbnRzLCBzdGF0ZSkKKyAgICAsIG1fcGFnZUFnZW50KHBhZ2VBZ2VudCkKICAgICAsIG1fZnJv
bnRlbmQoMCkKLSAgICAsIG1fZW5hYmxlZChmYWxzZSkKIHsKICAgICBtX2luc3RydW1lbnRpbmdB
Z2VudHMtPnNldEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCh0aGlzKTsKIH0KQEAgLTkyLDU1ICs5
NywzNSBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kKQogCiB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y2xlYXJGcm9udGVuZCgpCiB7Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3Ig
ZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOwotICAgIGZvciAoRE9NU3RvcmFnZVJl
c291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkb21T
dG9yYWdlRW5kOyArK2l0KQotICAgICAgICBpdC0+dmFsdWUtPnVuYmluZCgpOwogICAgIG1fZnJv
bnRlbmQgPSAwOwogICAgIGRpc2FibGUoMCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50OjpyZXN0b3JlKCkKK2Jvb2wgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojppc0VuYWJs
ZWQoKSBjb25zdAogewotICAgIG1fZW5hYmxlZCA9ICBtX3N0YXRlLT5nZXRCb29sZWFuKERPTVN0
b3JhZ2VBZ2VudFN0YXRlOjpkb21TdG9yYWdlQWdlbnRFbmFibGVkKTsKKyAgICByZXR1cm4gbV9z
dGF0ZS0+Z2V0Qm9vbGVhbihET01TdG9yYWdlQWdlbnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5h
YmxlZCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjplbmFibGUoRXJyb3JT
dHJpbmcqKQogewotICAgIGlmIChtX2VuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2Vu
YWJsZWQgPSB0cnVlOwotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3Rh
dGU6OmRvbVN0b3JhZ2VBZ2VudEVuYWJsZWQsIG1fZW5hYmxlZCk7Ci0KLSAgICBET01TdG9yYWdl
UmVzb3VyY2VzTWFwOjppdGVyYXRvciByZXNvdXJjZXNFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsK
LSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJj
ZXMuYmVnaW4oKTsgaXQgIT0gcmVzb3VyY2VzRW5kOyArK2l0KQotICAgICAgICBpdC0+dmFsdWUt
PmJpbmQobV9mcm9udGVuZCk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihET01TdG9yYWdlQWdl
bnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCwgdHJ1ZSk7CiB9CiAKIHZvaWQgSW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKIHsKLSAgICBpZiAoIW1f
ZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fZW5hYmxlZCA9IGZhbHNlOwotICAgIG1f
c3RhdGUtPnNldEJvb2xlYW4oRE9NU3RvcmFnZUFnZW50U3RhdGU6OmRvbVN0b3JhZ2VBZ2VudEVu
YWJsZWQsIG1fZW5hYmxlZCk7CisgICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihET01TdG9yYWdlQWdl
bnRTdGF0ZTo6ZG9tU3RvcmFnZUFnZW50RW5hYmxlZCwgZmFsc2UpOwogfQogCi12b2lkIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Z2V0RE9NU3RvcmFnZUVudHJpZXMoRXJyb3JTdHJpbmcqIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpB
cnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+ID4mIGVudHJpZXMpCit2b2lkIEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Z2V0RE9NU3RvcmFnZUl0ZW1zKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mIHN0b3JhZ2VJZCwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+ID4mIGl0ZW1z
KQogewotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNlID0g
Z2V0RE9NU3RvcmFnZVJlc291cmNlRm9ySWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoIXN0b3JhZ2VS
ZXNvdXJjZSkgewotICAgICAgICAqZXJyb3JTdHJpbmcgPSAiU3RvcmFnZSByZXNvdXJjZSBub3Qg
Zm91bmQgZm9yIHRoZSBnaXZlbiBzdG9yYWdlIGlkZW50aWZpZXIiOworICAgIEZyYW1lKiBmcmFt
ZTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhID0gZmluZFN0b3JhZ2VBcmVh
KGVycm9yU3RyaW5nLCBzdG9yYWdlSWQsIGZyYW1lKTsKKyAgICBpZiAoIXN0b3JhZ2VBcmVhKQog
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEZyYW1lKiBmcmFtZSA9IHN0b3JhZ2VSZXNvdXJj
ZS0+ZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKSB7Ci0gICAgICAgICplcnJvclN0cmluZyA9ICJG
cmFtZSBub3QgZm91bmQiOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCi0gICAgUmVmUHRyPFR5
cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJyYXk8U3RyaW5nPiA+ID4gc3RvcmFnZUVu
dHJpZXMgPSBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPjo6
Y3JlYXRlKCk7CisgICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6QXJy
YXk8U3RyaW5nPiA+ID4gc3RvcmFnZUl0ZW1zID0gVHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWls
ZGVyOjpBcnJheTxTdHJpbmc+ID46OmNyZWF0ZSgpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhID0gc3RvcmFnZVJlc291cmNlLT5zdG9y
YWdlQXJlYSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzdG9yYWdlQXJlYS0+bGVu
Z3RoKGVjLCBmcmFtZSk7ICsraSkgewogICAgICAgICBTdHJpbmcgbmFtZShzdG9yYWdlQXJlYS0+
a2V5KGksIGVjLCBmcmFtZSkpOwogICAgICAgICBpZiAoaGFkRXhjZXB0aW9uKGVjLCBlcnJvclN0
cmluZykpCkBAIC0xNTEsODcgKzEzNiw3MyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dDo6Z2V0RE9NU3RvcmFnZUVudHJpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjbwogICAg
ICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFN0cmluZz4gPiBlbnRyeSA9IFR5cGVCdWls
ZGVyOjpBcnJheTxTdHJpbmc+OjpjcmVhdGUoKTsKICAgICAgICAgZW50cnktPmFkZEl0ZW0obmFt
ZSk7CiAgICAgICAgIGVudHJ5LT5hZGRJdGVtKHZhbHVlKTsKLSAgICAgICAgc3RvcmFnZUVudHJp
ZXMtPmFkZEl0ZW0oZW50cnkpOworICAgICAgICBzdG9yYWdlSXRlbXMtPmFkZEl0ZW0oZW50cnkp
OwogICAgIH0KLSAgICBlbnRyaWVzID0gc3RvcmFnZUVudHJpZXMucmVsZWFzZSgpOworICAgIGl0
ZW1zID0gc3RvcmFnZUl0ZW1zLnJlbGVhc2UoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6OnNldERPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBz
dG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBz
dWNjZXNzKQorc3RhdGljIFN0cmluZyB0b0Vycm9yU3RyaW5nKGNvbnN0IEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogc3RvcmFnZVJlc291cmNl
ID0gZ2V0RE9NU3RvcmFnZVJlc291cmNlRm9ySWQoc3RvcmFnZUlkKTsKLSAgICBpZiAoc3RvcmFn
ZVJlc291cmNlKSB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uID0gMDsKLSAgICAg
ICAgc3RvcmFnZVJlc291cmNlLT5zdG9yYWdlQXJlYSgpLT5zZXRJdGVtKGtleSwgdmFsdWUsIGV4
Y2VwdGlvbiwgc3RvcmFnZVJlc291cmNlLT5mcmFtZSgpKTsKLSAgICAgICAgKnN1Y2Nlc3MgPSAh
ZXhjZXB0aW9uOwotICAgIH0gZWxzZQotICAgICAgICAqc3VjY2VzcyA9IGZhbHNlOworICAgIGlm
IChlYykgeworICAgICAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb24oZWMp
OworICAgICAgICByZXR1cm4gZGVzY3JpcHRpb24ubmFtZTsKKyAgICB9CisgICAgcmV0dXJuICIi
OwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6cmVtb3ZlRE9NU3RvcmFnZUl0
ZW0oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBr
ZXksIGJvb2wqIHN1Y2Nlc3MpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c2V0RE9N
U3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKIHsKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIHN0b3JhZ2VSZXNvdXJj
ZSA9IGdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKHN0b3Jh
Z2VSZXNvdXJjZSkgewotICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbiA9IDA7Ci0gICAg
ICAgIHN0b3JhZ2VSZXNvdXJjZS0+c3RvcmFnZUFyZWEoKS0+cmVtb3ZlSXRlbShrZXksIGV4Y2Vw
dGlvbiwgc3RvcmFnZVJlc291cmNlLT5mcmFtZSgpKTsKLSAgICAgICAgKnN1Y2Nlc3MgPSAhZXhj
ZXB0aW9uOwotICAgIH0gZWxzZQotICAgICAgICAqc3VjY2VzcyA9IGZhbHNlOwotfQorICAgIEZy
YW1lKiBmcmFtZTsKKyAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IHN0b3JhZ2VBcmVhID0gZmluZFN0
b3JhZ2VBcmVhKDAsIHN0b3JhZ2VJZCwgZnJhbWUpOworICAgIGlmICghc3RvcmFnZUFyZWEpIHsK
KyAgICAgICAgKmVycm9yU3RyaW5nID0gIlN0b3JhZ2Ugbm90IGZvdW5kIjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KIAotU3RyaW5nIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlk
KFN0b3JhZ2UqIHN0b3JhZ2UpCi17Ci0gICAgQVNTRVJUKHN0b3JhZ2UpOwotICAgIEZyYW1lKiBm
cmFtZSA9IHN0b3JhZ2UtPmZyYW1lKCk7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAg
Ym9vbCBpc0xvY2FsU3RvcmFnZSA9IChmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmxv
Y2FsU3RvcmFnZShlYykgPT0gc3RvcmFnZSAmJiAhZWMpOwotICAgIHJldHVybiBzdG9yYWdlSWQo
ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGlzTG9jYWxTdG9yYWdlKTsKKyAg
ICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbiA9IDA7CisgICAgc3RvcmFnZUFyZWEtPnNldEl0ZW0o
a2V5LCB2YWx1ZSwgZXhjZXB0aW9uLCBmcmFtZSk7CisgICAgKmVycm9yU3RyaW5nID0gdG9FcnJv
clN0cmluZyhleGNlcHRpb24pOwogfQogCi1TdHJpbmcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
OjpzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBib29sIGlzTG9jYWxT
dG9yYWdlKQordm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnJlbW92ZURPTVN0b3JhZ2VJ
dGVtKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4mIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgQVNTRVJUKHNlY3VyaXR5
T3JpZ2luKTsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkb21TdG9yYWdl
RW5kID0gbV9yZXNvdXJjZXMuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdlUmVzb3VyY2VzTWFw
OjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2luKCk7IGl0ICE9IGRvbVN0b3JhZ2VFbmQ7
ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LT52YWx1ZS0+aXNTYW1lT3JpZ2luQW5kVHlwZShzZWN1
cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpKQotICAgICAgICAgICAgcmV0dXJuIGl0LT5rZXk7
CisgICAgRnJhbWUqIGZyYW1lOworICAgIFJlZlB0cjxTdG9yYWdlQXJlYT4gc3RvcmFnZUFyZWEg
PSBmaW5kU3RvcmFnZUFyZWEoMCwgc3RvcmFnZUlkLCBmcmFtZSk7CisgICAgaWYgKCFzdG9yYWdl
QXJlYSkgeworICAgICAgICAqZXJyb3JTdHJpbmcgPSAiU3RvcmFnZSBub3QgZm91bmQiOworICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIEV4Y2VwdGlv
bkNvZGUgZXhjZXB0aW9uID0gMDsKKyAgICBzdG9yYWdlQXJlYS0+cmVtb3ZlSXRlbShrZXksIGV4
Y2VwdGlvbiwgZnJhbWUpOworICAgICplcnJvclN0cmluZyA9IHRvRXJyb3JTdHJpbmcoZXhjZXB0
aW9uKTsKIH0KIAotSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6OmdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKGNvbnN0IFN0cmluZyYgc3RvcmFn
ZUlkKQorU3RyaW5nIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6c3RvcmFnZUlkKFN0b3JhZ2Uq
IHN0b3JhZ2UpCiB7Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBt
X3Jlc291cmNlcy5maW5kKHN0b3JhZ2VJZCk7Ci0gICAgaWYgKGl0ID09IG1fcmVzb3VyY2VzLmVu
ZCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gaXQtPnZhbHVlLmdldCgpOworICAg
IEFTU0VSVChzdG9yYWdlKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBzdG9yYWdlLT5mcmFt
ZSgpLT5kb2N1bWVudCgpOworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgRE9NV2luZG93KiB3
aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCk7CisgICAgQVNTRVJUKHdpbmRvdyk7CisgICAg
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0
eU9yaWdpbigpOworICAgIGJvb2wgaXNMb2NhbFN0b3JhZ2UgPSB3aW5kb3ctPm9wdGlvbmFsTG9j
YWxTdG9yYWdlKCkgPT0gc3RvcmFnZTsKKyAgICByZXR1cm4gc3RvcmFnZUlkKHNlY3VyaXR5T3Jp
Z2luLmdldCgpLCBpc0xvY2FsU3RvcmFnZSktPnRvSlNPTlN0cmluZygpOwogfQogCi12b2lkIElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkVXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3Rv
cmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKK1Bhc3NSZWZQdHI8
VHlwZUJ1aWxkZXI6OkRPTVN0b3JhZ2U6OlN0b3JhZ2VJZD4gSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50OjpzdG9yYWdlSWQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luLCBib29sIGlzTG9j
YWxTdG9yYWdlKQogewotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0
b3JhZ2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJj
ZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZG9tU3RvcmFn
ZUVuZDsgKytpdCkgewotICAgICAgICBpZiAoaXQtPnZhbHVlLT5pc1NhbWVPcmlnaW5BbmRUeXBl
KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBpc0xvY2FsU3RvcmFnZSkpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgUmVmUHRyPEluc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZT4gcmVzb3VyY2UgPSBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6OmNyZWF0
ZShzdG9yYWdlQXJlYSwgaXNMb2NhbFN0b3JhZ2UsIGZyYW1lKTsKLQotICAgIG1fcmVzb3VyY2Vz
LnNldChyZXNvdXJjZS0+aWQoKSwgcmVzb3VyY2UpOwotCi0gICAgLy8gUmVzb3VyY2VzIGFyZSBv
bmx5IGJvdW5kIHdoaWxlIHZpc2libGUuCi0gICAgaWYgKG1fZW5hYmxlZCkKLSAgICAgICAgcmVz
b3VyY2UtPmJpbmQobV9mcm9udGVuZCk7CisgICAgcmV0dXJuIFR5cGVCdWlsZGVyOjpET01TdG9y
YWdlOjpTdG9yYWdlSWQ6OmNyZWF0ZSgpCisgICAgICAgIC5zZXRTZWN1cml0eU9yaWdpbihzZWN1
cml0eU9yaWdpbi0+dG9SYXdTdHJpbmcoKSkKKyAgICAgICAgLnNldElzTG9jYWxTdG9yYWdlKGlz
TG9jYWxTdG9yYWdlKS5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50OjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3Qg
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUgc3Rv
cmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgUGFnZSopCiB7Ci0gICAg
aWYgKCFtX2Zyb250ZW5kIHx8ICFtX2VuYWJsZWQpCisgICAgaWYgKCFtX2Zyb250ZW5kIHx8ICFp
c0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIGlkID0gc3RvcmFnZUlk
KHNlY3VyaXR5T3JpZ2luLCBzdG9yYWdlVHlwZSA9PSBMb2NhbFN0b3JhZ2UpOwotCi0gICAgaWYg
KGlkLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxUeXBlQnVpbGRlcjo6
RE9NU3RvcmFnZTo6U3RvcmFnZUlkPiBpZCA9IHN0b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgc3Rv
cmFnZVR5cGUgPT0gTG9jYWxTdG9yYWdlKTsKIAogICAgIGlmIChrZXkuaXNOdWxsKCkpCiAgICAg
ICAgIG1fZnJvbnRlbmQtPmRvbXN0b3JhZ2UoKS0+ZG9tU3RvcmFnZUl0ZW1zQ2xlYXJlZChpZCk7
CkBAIC0yNDMsMTYgKzIxNCwzNyBAQCB2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlk
RGlzcGF0Y2hET01TdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbgogICAgICAgICBt
X2Zyb250ZW5kLT5kb21zdG9yYWdlKCktPmRvbVN0b3JhZ2VJdGVtVXBkYXRlZChpZCwga2V5LCBv
bGRWYWx1ZSwgbmV3VmFsdWUpOwogfQogCi12b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6
Y2xlYXJSZXNvdXJjZXMoKQorUGFzc1JlZlB0cjxTdG9yYWdlQXJlYT4gSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpmaW5kU3RvcmFnZUFyZWEoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25z
dCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBGcmFtZSomIHRhcmdldEZyYW1l
KQogewotICAgIG1fcmVzb3VyY2VzLmNsZWFyKCk7CisgICAgU3RyaW5nIHNlY3VyaXR5T3JpZ2lu
OworICAgIGJvb2wgaXNMb2NhbFN0b3JhZ2U7CisgICAgYm9vbCBzdWNjZXNzID0gc3RvcmFnZUlk
LT5nZXRTdHJpbmcoInNlY3VyaXR5T3JpZ2luIiwgJnNlY3VyaXR5T3JpZ2luKTsKKyAgICBpZiAo
c3VjY2VzcykKKyAgICAgICAgc3VjY2VzcyA9IHN0b3JhZ2VJZC0+Z2V0Qm9vbGVhbigiaXNMb2Nh
bFN0b3JhZ2UiLCAmaXNMb2NhbFN0b3JhZ2UpOworICAgIGlmICghc3VjY2VzcykgeworICAgICAg
ICBpZiAoZXJyb3JTdHJpbmcpCisgICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW52YWxpZCBz
dG9yYWdlSWQgZm9ybWF0IjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgRnJhbWUq
IGZyYW1lID0gbV9wYWdlQWdlbnQtPmZpbmRGcmFtZVdpdGhTZWN1cml0eU9yaWdpbihzZWN1cml0
eU9yaWdpbik7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICBpZiAoZXJyb3JTdHJpbmcpCisg
ICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiRnJhbWUgbm90IGZvdW5kIGZvciB0aGUgZ2l2ZW4g
c2VjdXJpdHkgb3JpZ2luIjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHRhcmdldEZy
YW1lID0gZnJhbWU7CisKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlQWdlbnQtPnBhZ2UoKTsKKyAg
ICBpZiAoaXNMb2NhbFN0b3JhZ2UpCisgICAgICAgIHJldHVybiBwYWdlLT5ncm91cCgpLmxvY2Fs
U3RvcmFnZSgpLT5zdG9yYWdlQXJlYShmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSk7CisgICAgcmV0dXJuIHBhZ2UtPnNlc3Npb25TdG9yYWdlKCktPnN0b3JhZ2VBcmVhKGZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQp
OwogICAgIEluc3BlY3RvckJhc2VBZ2VudDxJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ+OjpyZXBv
cnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3Jl
c291cmNlcywgInJlc291cmNlcyIpOwogICAgIGluZm8uYWRkV2Vha1BvaW50ZXIobV9mcm9udGVu
ZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01T
dG9yYWdlQWdlbnQuaAppbmRleCBlOThlMzkyMWQwNTY4Njk1MjM3YmY5YmViMDczOGMxNDM4Yzk3
MTUyLi42YTBjN2I3MGRhNzFlZDc3MjFiODBiNGVjNjUyMGMyMWRkZTljYjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCkBA
IC0zOSw4ICszOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRnJhbWU7CiBjbGFz
cyBJbnNwZWN0b3JBcnJheTsKLWNsYXNzIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTsKIGNs
YXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwogY2xhc3Mg
SW5zcGVjdG9yU3RhdGU7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgUGFnZTsK
QEAgLTUxLDQ0ICs1MSw0MCBAQCB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3Mg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50IDogcHVibGljIEluc3BlY3RvckJhc2VBZ2VudDxJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ+LCBwdWJsaWMgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6
OkRPTVN0b3JhZ2VDb21tYW5kSGFuZGxlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqIHN0YXRlKQorICAg
IHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRlKEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50LCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSogc3RhdGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChpbnN0cnVtZW50
aW5nQWdlbnRzLCBzdGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBwYWdlQWdlbnQsIHN0YXRlKSk7
CiAgICAgfQogICAgIH5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCopOwogICAgIHZpcnR1YWwgdm9pZCBj
bGVhckZyb250ZW5kKCk7Ci0gICAgdm9pZCByZXN0b3JlKCk7Ci0KLSAgICB2b2lkIGNsZWFyUmVz
b3VyY2VzKCk7CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJvbnQtZW5kLgogICAgIHZpcnR1
YWwgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShF
cnJvclN0cmluZyopOwotICAgIHZpcnR1YWwgdm9pZCBnZXRET01TdG9yYWdlRW50cmllcyhFcnJv
clN0cmluZyosIGNvbnN0IFN0cmluZyYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgZW50cmllcyk7Ci0gICAgdmlydHVh
bCB2b2lkIHNldERPTVN0b3JhZ2VJdGVtKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzdG9y
YWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNj
ZXNzKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmIHN0b3JhZ2VJZCwgY29uc3QgU3RyaW5nJiBrZXksIGJvb2wqIHN1Y2Nl
c3MpOworICAgIHZpcnR1YWwgdm9pZCBnZXRET01TdG9yYWdlSXRlbXMoRXJyb3JTdHJpbmcqLCBj
b25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpBcnJheTxTdHJpbmc+ID4gPiYgaXRlbXMpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRET01TdG9yYWdlSXRlbShFcnJvclN0cmluZyosIGNvbnN0IFJlZlB0cjxJ
bnNwZWN0b3JPYmplY3Q+JiBzdG9yYWdlSWQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIHZhbHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRE9NU3RvcmFnZUl0ZW0oRXJyb3JT
dHJpbmcqLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYgc3RvcmFnZUlkLCBjb25zdCBT
dHJpbmcmIGtleSk7CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgaW5qZWN0ZWQgc2NyaXB0Lgog
ICAgIFN0cmluZyBzdG9yYWdlSWQoU3RvcmFnZSopOwotICAgIFN0cmluZyBzdG9yYWdlSWQoU2Vj
dXJpdHlPcmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdlKTsKKyAgICBQYXNzUmVmUHRyPFR5cGVC
dWlsZGVyOjpET01TdG9yYWdlOjpTdG9yYWdlSWQ+IHN0b3JhZ2VJZChTZWN1cml0eU9yaWdpbios
IGJvb2wgaXNMb2NhbFN0b3JhZ2UpOwogCiAgICAgLy8gQ2FsbGVkIGZyb20gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uCi0gICAgdm9pZCBkaWRVc2VET01TdG9yYWdlKFN0b3JhZ2VBcmVhKiwgYm9v
bCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAgICB2b2lkIGRpZERpc3BhdGNoRE9NU3RvcmFn
ZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBT
dHJpbmcmIG5ld1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJ
bnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqKTsKIAotICAgIElu
c3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZSogZ2V0RE9NU3RvcmFnZVJlc291cmNlRm9ySWQoY29u
c3QgU3RyaW5nJiBzdG9yYWdlSWQpOworICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yUGFnZUFnZW50KiwgSW5zcGVjdG9yQ29tcG9zaXRl
U3RhdGUqKTsKKworICAgIGJvb2wgaXNFbmFibGVkKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYT4gZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5nKiwgY29uc3QgUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4mLCBGcmFtZSomKTsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IFJlZlB0cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+ID4gRE9NU3RvcmFnZVJlc291cmNl
c01hcDsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwIG1fcmVzb3VyY2VzOworICAgIEluc3Bl
Y3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQ7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQqIG1fZnJv
bnRlbmQ7Ci0gICAgYm9vbCBtX2VuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9y
YWdlUmVzb3VyY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZjNjZmUxNWI0
MGRjNzc1OTc1ZGJiODc2NjBiODJlNzAyMDM3ZWVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JE
T01TdG9yYWdlUmVzb3VyY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsu
Y29tPgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBD
b21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLQotI2luY2x1
ZGUgIkluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93
LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgotI2luY2x1ZGUg
Ikluc3BlY3RvclZhbHVlcy5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVk
ZSAiU3RvcmFnZS5oIgotI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCi0jaW5jbHVkZSAiU3RvcmFn
ZUV2ZW50LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotaW50IEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZTo6c19uZXh0VW51c2VkSWQgPSAxOwot
Ci1JbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U6Okluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBm
cmFtZSkKLSAgICA6IG1fc3RvcmFnZUFyZWEoc3RvcmFnZUFyZWEpCi0gICAgLCBtX2lzTG9jYWxT
dG9yYWdlKGlzTG9jYWxTdG9yYWdlKQotICAgICwgbV9mcmFtZShmcmFtZSkKLSAgICAsIG1fZnJv
bnRlbmQoMCkKLSAgICAsIG1faWQoU3RyaW5nOjpudW1iZXIoc19uZXh0VW51c2VkSWQrKykpCi17
Ci19Ci0KLWJvb2wgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjppc1NhbWVPcmlnaW5BbmRU
eXBlKFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgYm9vbCBpc0xvY2FsU3RvcmFnZSkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KS0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pICYmIG1faXNMb2NhbFN0b3JhZ2UgPT0gaXNMb2NhbFN0
b3JhZ2U7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpiaW5kKEluc3Bl
Y3RvckZyb250ZW5kKiBmcm9udGVuZCkKLXsKLSAgICBBU1NFUlQoIW1fZnJvbnRlbmQpOwotICAg
IG1fZnJvbnRlbmQgPSBmcm9udGVuZC0+ZG9tc3RvcmFnZSgpOwotCi0gICAgUmVmUHRyPFR5cGVC
dWlsZGVyOjpET01TdG9yYWdlOjpFbnRyeT4ganNvbk9iamVjdCA9IFR5cGVCdWlsZGVyOjpET01T
dG9yYWdlOjpFbnRyeTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldE9yaWdpbihtX2ZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1Jhd1N0cmluZygpKQotICAgICAgICAuc2V0SXNM
b2NhbFN0b3JhZ2UobV9pc0xvY2FsU3RvcmFnZSkKLSAgICAgICAgLnNldElkKG1faWQpOwotICAg
IG1fZnJvbnRlbmQtPmFkZERPTVN0b3JhZ2UoanNvbk9iamVjdCk7Ci19Ci0KLXZvaWQgSW5zcGVj
dG9yRE9NU3RvcmFnZVJlc291cmNlOjp1bmJpbmQoKQotewotICAgIGlmICghbV9mcm9udGVuZCkK
LSAgICAgICAgcmV0dXJuOyAgLy8gQWxyZWFkeSB1bmJvdW5kLgotCi0gICAgbV9mcm9udGVuZCA9
IDA7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAotewotICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlU
eXBlczo6SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlcyk7Ci0gICAgaW5mby5hZGRNZW1iZXIo
bV9zdG9yYWdlQXJlYSwgInN0b3JhZ2VBcmVhIik7Ci0gICAgaW5mby5hZGRNZW1iZXIobV9mcmFt
ZSwgImZyYW1lIik7Ci0gICAgaW5mby5hZGRXZWFrUG9pbnRlcihtX2Zyb250ZW5kKTsKLSAgICBp
bmZvLmFkZE1lbWJlcihtX2lkLCAiaWQiKTsKLSAgICBpbmZvLmFkZFByaXZhdGVCdWZmZXIobV9z
dG9yYWdlQXJlYS0+bWVtb3J5Qnl0ZXNVc2VkQnlDYWNoZSgpLCAwLCAiU3RvcmFnZUFyZWFDYWNo
ZSIsICJjYWNoZSIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoSU5TUEVDVE9SKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDEwZDQ2ZDc1MGZhYTc2NjZjYWM2NGYyZDI2OGU1NjdlZDI0YmI3N2IuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0dCBMaWxlayA8d2Via2l0
QG1hdHRsaWxlay5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZV9oCi0jZGVm
aW5lIEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJjZV9oCi0KLSNpbmNsdWRlICJJbnNwZWN0b3JG
cm9udGVuZC5oIgotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTdG9yYWdlQXJlYTsKLWNsYXNzIEZy
YW1lOwotY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7Ci0KLWNsYXNzIEluc3BlY3RvckRPTVN0b3Jh
Z2VSZXNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3BlY3RvckRPTVN0b3JhZ2VSZXNvdXJj
ZT4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VS
ZXNvdXJjZT4gY3JlYXRlKFN0b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9vbCBpc0xvY2FsU3Rv
cmFnZSwgRnJhbWUqIGZyYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
bnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2Uoc3RvcmFnZUFyZWEsIGlzTG9jYWxTdG9yYWdlLCBm
cmFtZSkpOwotICAgIH0KLQotICAgIHZvaWQgYmluZChJbnNwZWN0b3JGcm9udGVuZCopOwotICAg
IHZvaWQgdW5iaW5kKCk7Ci0KLSAgICBib29sIGlzU2FtZU9yaWdpbkFuZFR5cGUoU2VjdXJpdHlP
cmlnaW4qLCBib29sIGlzTG9jYWxTdG9yYWdlKSBjb25zdDsKLSAgICBTdHJpbmcgaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9Ci0gICAgU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhKCkgY29uc3Qg
eyByZXR1cm4gbV9zdG9yYWdlQXJlYS5nZXQoKTsgfQotICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZnJhbWUuZ2V0KCk7IH0KLQotICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwotCi1wcml2YXRlOgotICAgIEluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZShTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7
Ci0KLSAgICBSZWZQdHI8U3RvcmFnZUFyZWE+IG1fc3RvcmFnZUFyZWE7Ci0gICAgYm9vbCBtX2lz
TG9jYWxTdG9yYWdlOwotICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKLSAgICBJbnNwZWN0b3JG
cm9udGVuZDo6RE9NU3RvcmFnZSogbV9mcm9udGVuZDsKLSAgICBTdHJpbmcgbV9pZDsKLQotICAg
IHN0YXRpYyBpbnQgc19uZXh0VW51c2VkSWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2VfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRl
eCA1YWFhYjE4YWM2N2M0MmEzODY2ODcwN2Q4Y2U1NGYyNGUxZTNjNTVjLi5kYTExYTNiNWM3N2Iy
OGI4ZTUzNDI5ZjI2OTBiNGY5MTc5OTQxOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtOTE1LDggKzkxNSw2
IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50CiAgICAgICAgIGlmIChJbnNwZWN0b3JEYXRhYmFz
ZUFnZW50KiBkYXRhYmFzZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRGF0
YWJhc2VBZ2VudCgpKQogICAgICAgICAgICAgZGF0YWJhc2VBZ2VudC0+Y2xlYXJSZXNvdXJjZXMo
KTsKICNlbmRpZgotICAgICAgICBpZiAoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9y
YWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01TdG9yYWdlQWdlbnQo
KSkKLSAgICAgICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+Y2xlYXJSZXNvdXJjZXMoKTsKICAgICAg
ICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvckRPTUFnZW50KCkpCiAgICAgICAgICAgICBkb21BZ2VudC0+c2V0RG9jdW1lbnQo
bWFpbkZyYW1lLT5kb2N1bWVudCgpKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CkBAIC0xMTAxLDE1ICsxMDk5LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWUKIH0KICNlbmRp
ZgogCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgU3RvcmFnZUFyZWEqIHN0
b3JhZ2VBcmVhLCBib29sIGlzTG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCi17Ci0gICAgSW5z
cGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yQWdlbnQoKTsKLSAgICBpZiAoIWluc3BlY3RvckFnZW50IHx8ICFpbnNwZWN0b3JBZ2VudC0+
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkpCi0gICAgICAgIGRvbVN0b3JhZ2VBZ2VudC0+
ZGlkVXNlRE9NU3RvcmFnZShzdG9yYWdlQXJlYSwgaXNMb2NhbFN0b3JhZ2UsIGZyYW1lKTsKLX0K
LQogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZERpc3BhdGNoRE9NU3RvcmFnZUV2
ZW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBT
dHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1
ZSwgU3RvcmFnZVR5cGUgc3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdp
biwgUGFnZSogcGFnZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21T
dG9yYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaAppbmRleCBmZjYzMDA1MTZlZjEwMzM0YjAwMjIxMDljZmVkYjM2ZjNkNjEyZjNh
Li43ZmZiY2ZmYmRlNGJiYzMwZjYzZDk2YTRiYWNkYmY2MzdjMzgzMGQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0y
NTIsNyArMjUyLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxEYXRhYmFzZT4sIGNvbnN0IFN0cmlu
ZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAj
ZW5kaWYKIAotICAgIHN0YXRpYyB2b2lkIGRpZFVzZURPTVN0b3JhZ2UoUGFnZSosIFN0b3JhZ2VB
cmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRE
aXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUsIFNlY3VyaXR5T3Jp
Z2luKiwgUGFnZSopOwogCiAjaWYgRU5BQkxFKFdPUktFUlMpCkBAIC00NTEsNyArNDUwLDYgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2VJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqLCBQYXNzUmVmUHRyPERhdGFiYXNlPiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKICNlbmRpZgogCi0gICAg
c3RhdGljIHZvaWQgZGlkVXNlRE9NU3RvcmFnZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIFN0
b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqKTsKICAgICBzdGF0aWMgdm9p
ZCBkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5l
d1ZhbHVlLCBTdG9yYWdlVHlwZSwgU2VjdXJpdHlPcmlnaW4qLCBQYWdlKik7CiAKICNpZiBFTkFC
TEUoV09SS0VSUykKQEAgLTE3NTAsMTkgKzE3NDgsNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFdyaXRlSFRNTChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
bwogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
VXNlRE9NU3RvcmFnZShQYWdlKiBwYWdlLCBTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wg
aXNMb2NhbFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQot
ICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1
bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSkpCi0gICAgICAgIGRpZFVzZURPTVN0b3JhZ2VJbXBs
KGluc3RydW1lbnRpbmdBZ2VudHMsIHN0b3JhZ2VBcmVhLCBpc0xvY2FsU3RvcmFnZSwgZnJhbWUp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocGFnZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHN0b3Jh
Z2VBcmVhKTsKLSAgICBVTlVTRURfUEFSQU0oaXNMb2NhbFN0b3JhZ2UpOwotICAgIFVOVVNFRF9Q
QVJBTShmcmFtZSk7Ci0jZW5kaWYKLX0KLQogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWREaXNwYXRjaERPTVN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgU3RvcmFnZVR5cGUg
c3RvcmFnZVR5cGUsIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbiwgUGFnZSogcGFnZSkK
IHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCA0YWY4YWJkNzY3YTExMWQ1OTYxNTUyN2VlY2Jm
MjJhNThkOTFkNjY1Li43YTFlYjE0NDA5MjlmZWNhNDY2YTM5MmRhNDM2MmQ0MDEzZDczYTI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApA
QCAtOTE2LDYgKzkxNiwyMiBAQCBTdHJpbmcgSW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkZXJJZChE
b2N1bWVudExvYWRlciogbG9hZGVyKQogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCitGcmFt
ZSogSW5zcGVjdG9yUGFnZUFnZW50OjpmaW5kRnJhbWVXaXRoU2VjdXJpdHlPcmlnaW4oY29uc3Qg
U3RyaW5nJiBvcmlnaW5SYXdTdHJpbmcpCit7CisgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cml0eU9yaWdpblB0ciA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdp
blJhd1N0cmluZyk7CisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luID0gc2VjdXJp
dHlPcmlnaW5QdHIuZ2V0KCk7CisgICAgYm9vbCBpc0xvY2FsID0gc2VjdXJpdHlPcmlnaW4tPmlz
TG9jYWwoKTsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCk7IGZy
YW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CisgICAgICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gZG9jdW1lbnRPcmlnaW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgLy8gRW11bGF0ZSB0aGUgIWVuZm9yY2VGaWxlUGF0
aFNlcGFyYXRpb24gZm9yIHNlY3VyaXR5IG9yaWdpbnMuCisgICAgICAgIGlmIChpc0xvY2FsICYm
IGRvY3VtZW50T3JpZ2luLT5pc0xvY2FsKCkpCisgICAgICAgICAgICByZXR1cm4gZnJhbWU7Cisg
ICAgICAgIGlmIChkb2N1bWVudE9yaWdpbi0+ZXF1YWwoc2VjdXJpdHlPcmlnaW4pKQorICAgICAg
ICAgICAgcmV0dXJuIGZyYW1lOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKwogRnJhbWUqIElu
c3BlY3RvclBhZ2VBZ2VudDo6YXNzZXJ0RnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGZyYW1lSWQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gZnJhbWVGb3JJZChm
cmFtZUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQ
YWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQu
aAppbmRleCBkNWM1YjkwMjUyZmUzMTVkYTVmYTRmNTFkNTgzZmY4ZTFlMjc0NWZkLi5kZTI0ZmM0
N2IyZDM4MDViNzU3YTM5MGI4YWQ3OWY3ODA1ZjM2Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHVibGlj
OgogICAgIFN0cmluZyBmcmFtZUlkKEZyYW1lKik7CiAgICAgYm9vbCBoYXNJZEZvckZyYW1lKEZy
YW1lKikgY29uc3Q7CiAgICAgU3RyaW5nIGxvYWRlcklkKERvY3VtZW50TG9hZGVyKik7CisgICAg
RnJhbWUqIGZpbmRGcmFtZVdpdGhTZWN1cml0eU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdpblJh
d1N0cmluZyk7CiAgICAgRnJhbWUqIGFzc2VydEZyYW1lKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBmcmFtZUlkKTsKICAgICBTdHJpbmcgc2NyaXB0UHJlcHJvY2Vzc29yKCkgeyByZXR1cm4g
bV9zY3JpcHRQcmVwcm9jZXNzb3I7IH0KICAgICBzdGF0aWMgRG9jdW1lbnRMb2FkZXIqIGFzc2Vy
dERvY3VtZW50TG9hZGVyKEVycm9yU3RyaW5nKiwgRnJhbWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3RvcmFnZS5qcwppbmRleCBiMTM0NDE5NTk5ZTM1
Mjg0OTkyYzJjMGZiMDYxMTAyYmI4ZGI4ZDg4Li5iMjA5ZjcyNmMwOTM0ZGRjNDZiZTI2OWMyZmVi
ODEwNjFhNDFhZTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTVN0b3JhZ2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9ET01TdG9yYWdlLmpzCkBAIC0yOSwyNSArMjksMzcgQEAKIAogLyoqCiAgKiBAY29uc3RydWN0
b3IKKyAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgorICogQHBhcmFtIHtib29sZWFu
fSBpc0xvY2FsU3RvcmFnZQogICovCi1XZWJJbnNwZWN0b3IuRE9NU3RvcmFnZSA9IGZ1bmN0aW9u
KGlkLCBkb21haW4sIGlzTG9jYWxTdG9yYWdlKQorV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2UgPSBm
dW5jdGlvbihzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpCiB7Ci0gICAgdGhpcy5faWQg
PSBpZDsKLSAgICB0aGlzLl9kb21haW4gPSBkb21haW47CisgICAgdGhpcy5fc2VjdXJpdHlPcmln
aW4gPSBzZWN1cml0eU9yaWdpbjsKICAgICB0aGlzLl9pc0xvY2FsU3RvcmFnZSA9IGlzTG9jYWxT
dG9yYWdlOwogfQogCisvKioKKyAqIEBwYXJhbSB7c3RyaW5nfSBzZWN1cml0eU9yaWdpbgorICog
QHBhcmFtIHtib29sZWFufSBpc0xvY2FsU3RvcmFnZQorICogQHJldHVybiB7RE9NU3RvcmFnZUFn
ZW50LlN0b3JhZ2VJZH0KKyAqLworV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2Uuc3RvcmFnZUlkID0g
ZnVuY3Rpb24oc2VjdXJpdHlPcmlnaW4sIGlzTG9jYWxTdG9yYWdlKQoreworICAgIHJldHVybiB7
IHNlY3VyaXR5T3JpZ2luOiBzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2U6IGlzTG9jYWxT
dG9yYWdlIH07Cit9CisKIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnByb3RvdHlwZSA9IHsKLSAg
ICAvKiogQHJldHVybiB7c3RyaW5nfSAqLworCisgICAgLyoqIEByZXR1cm4ge0RPTVN0b3JhZ2VB
Z2VudC5TdG9yYWdlSWR9ICovCiAgICAgZ2V0IGlkKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9pZDsKKyAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlLnN0b3JhZ2VJ
ZCh0aGlzLl9zZWN1cml0eU9yaWdpbiwgdGhpcy5faXNMb2NhbFN0b3JhZ2UpOwogICAgIH0sCiAK
ICAgICAvKiogQHJldHVybiB7c3RyaW5nfSAqLwotICAgIGdldCBkb21haW4oKQorICAgIGdldCBz
ZWN1cml0eU9yaWdpbigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZG9tYWluOworICAg
ICAgICByZXR1cm4gdGhpcy5fc2VjdXJpdHlPcmlnaW47CiAgICAgfSwKIAogICAgIC8qKiBAcmV0
dXJuIHtib29sZWFufSAqLwpAQCAtNTcsMzAgKzY5LDMwIEBAIFdlYkluc3BlY3Rvci5ET01TdG9y
YWdlLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtmdW5j
dGlvbig/UHJvdG9jb2wuRXJyb3IsIEFycmF5LjxET01TdG9yYWdlQWdlbnQuRW50cnk+KTp2b2lk
PX0gY2FsbGJhY2sKKyAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKD9Qcm90b2NvbC5FcnJvciwgQXJy
YXkuPERPTVN0b3JhZ2VBZ2VudC5JdGVtPik6dm9pZD19IGNhbGxiYWNrCiAgICAgICovCi0gICAg
Z2V0RW50cmllczogZnVuY3Rpb24oY2FsbGJhY2spCisgICAgZ2V0SXRlbXM6IGZ1bmN0aW9uKGNh
bGxiYWNrKQogICAgIHsKLSAgICAgICAgRE9NU3RvcmFnZUFnZW50LmdldERPTVN0b3JhZ2VFbnRy
aWVzKHRoaXMuX2lkLCBjYWxsYmFjayk7CisgICAgICAgIERPTVN0b3JhZ2VBZ2VudC5nZXRET01T
dG9yYWdlSXRlbXModGhpcy5pZCwgY2FsbGJhY2spOwogICAgIH0sCiAKICAgICAvKioKICAgICAg
KiBAcGFyYW0ge3N0cmluZ30ga2V5CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlCi0gICAg
ICogQHBhcmFtIHtmdW5jdGlvbig/UHJvdG9jb2wuRXJyb3IsIGJvb2xlYW4pOnZvaWQ9fSBjYWxs
YmFjaworICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKTp2b2lkPX0gY2Fs
bGJhY2sKICAgICAgKi8KICAgICBzZXRJdGVtOiBmdW5jdGlvbihrZXksIHZhbHVlLCBjYWxsYmFj
aykKICAgICB7Ci0gICAgICAgIERPTVN0b3JhZ2VBZ2VudC5zZXRET01TdG9yYWdlSXRlbSh0aGlz
Ll9pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOworICAgICAgICBET01TdG9yYWdlQWdlbnQuc2V0
RE9NU3RvcmFnZUl0ZW0odGhpcy5pZCwga2V5LCB2YWx1ZSwgY2FsbGJhY2spOwogICAgIH0sCiAK
ICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5Ci0gICAgICogQHBhcmFtIHtmdW5j
dGlvbig/UHJvdG9jb2wuRXJyb3IsIGJvb2xlYW4pOnZvaWQ9fSBjYWxsYmFjaworICAgICAqIEBw
YXJhbSB7ZnVuY3Rpb24oP1Byb3RvY29sLkVycm9yKTp2b2lkPX0gY2FsbGJhY2sKICAgICAgKi8K
ICAgICByZW1vdmVJdGVtOiBmdW5jdGlvbihrZXksIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAg
RE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMuX2lkLCBrZXksIGNhbGxi
YWNrKTsKKyAgICAgICAgRE9NU3RvcmFnZUFnZW50LnJlbW92ZURPTVN0b3JhZ2VJdGVtKHRoaXMu
aWQsIGtleSwgY2FsbGJhY2spOwogICAgIH0KIH0KIApAQCAtOTMsMTAgKzEwNSwxMyBAQCBXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3N0b3JhZ2Vz
ID0ge307CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckRPTVN0b3JhZ2VEaXNwYXRjaGVy
KG5ldyBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIodGhpcykpOwogICAgIERPTVN0
b3JhZ2VBZ2VudC5lbmFibGUoKTsKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5TZWN1cml0eU9yaWdpbkFkZGVkLCB0aGlzLl9zZWN1cml0eU9yaWdpbkFkZGVkLCB0aGlzKTsK
KyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5TZWN1cml0eU9yaWdpblJlbW92
ZWQsIHRoaXMuX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlTW9kZWwuRXZlbnRzID0gewogICAgIERPTVN0b3JhZ2VBZGRlZDogIkRPTVN0
b3JhZ2VBZGRlZCIsCisgICAgRE9NU3RvcmFnZVJlbW92ZWQ6ICJET01TdG9yYWdlUmVtb3ZlZCIs
CiAgICAgRE9NU3RvcmFnZUl0ZW1zQ2xlYXJlZDogIkRPTVN0b3JhZ2VJdGVtc0NsZWFyZWQiLAog
ICAgIERPTVN0b3JhZ2VJdGVtUmVtb3ZlZDogIkRPTVN0b3JhZ2VJdGVtUmVtb3ZlZCIsCiAgICAg
RE9NU3RvcmFnZUl0ZW1BZGRlZDogIkRPTVN0b3JhZ2VJdGVtQWRkZWQiLApAQCAtMTA0LDEzICsx
MTksNTMgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMgPSB7CiB9CiAKIFdl
Ykluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwucHJvdG90eXBlID0geworCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NlY3Vy
aXR5T3JpZ2luQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHNlY3Vy
aXR5T3JpZ2luID0gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChldmVudC5kYXRhKTsKKyAgICAgICAg
dmFyIGxvY2FsU3RvcmFnZUtleSA9IHRoaXMuX3N0b3JhZ2VLZXkoc2VjdXJpdHlPcmlnaW4sIHRy
dWUpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc3RvcmFnZXNbbG9jYWxTdG9yYWdl
S2V5XSk7CisgICAgICAgIHZhciBsb2NhbFN0b3JhZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2Uoc2VjdXJpdHlPcmlnaW4sIHRydWUpOworICAgICAgICB0aGlzLl9zdG9yYWdlc1tsb2Nh
bFN0b3JhZ2VLZXldID0gbG9jYWxTdG9yYWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdl
QWRkZWQsIGxvY2FsU3RvcmFnZSk7CisKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlS2V5ID0g
dGhpcy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICBjb25zb2xl
LmFzc2VydCghdGhpcy5fc3RvcmFnZXNbc2Vzc2lvblN0b3JhZ2VLZXldKTsKKyAgICAgICAgdmFy
IHNlc3Npb25TdG9yYWdlID0gbmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKHNlY3VyaXR5T3Jp
Z2luLCBmYWxzZSk7CisgICAgICAgIHRoaXMuX3N0b3JhZ2VzW3Nlc3Npb25TdG9yYWdlS2V5XSA9
IHNlc3Npb25TdG9yYWdlOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLkV2ZW50cy5ET01TdG9yYWdlQWRkZWQsIHNlc3Np
b25TdG9yYWdlKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0
b3IuRXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NlY3VyaXR5T3JpZ2luUmVtb3ZlZDogZnVu
Y3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgc2VjdXJpdHlPcmlnaW4gPSAvKiogQHR5
cGUge3N0cmluZ30gKi8gKGV2ZW50LmRhdGEpOworICAgICAgICB2YXIgbG9jYWxTdG9yYWdlS2V5
ID0gdGhpcy5fc3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIHZhciBs
b2NhbFN0b3JhZ2UgPSB0aGlzLl9zdG9yYWdlc1tsb2NhbFN0b3JhZ2VLZXldOworICAgICAgICBj
b25zb2xlLmFzc2VydChsb2NhbFN0b3JhZ2UpOworICAgICAgICBkZWxldGUgdGhpcy5fc3RvcmFn
ZXNbbG9jYWxTdG9yYWdlS2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQs
IGxvY2FsU3RvcmFnZSk7CisKKyAgICAgICAgdmFyIHNlc3Npb25TdG9yYWdlS2V5ID0gdGhpcy5f
c3RvcmFnZUtleShzZWN1cml0eU9yaWdpbiwgZmFsc2UpOworICAgICAgICB2YXIgc2Vzc2lvblN0
b3JhZ2UgPSB0aGlzLl9zdG9yYWdlc1tzZXNzaW9uU3RvcmFnZUtleV07CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHNlc3Npb25TdG9yYWdlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3N0b3JhZ2Vz
W3Nlc3Npb25TdG9yYWdlS2V5XTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZVJlbW92ZWQs
IHNlc3Npb25TdG9yYWdlKTsKKyAgICB9LAorCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZX0gZG9tU3RvcmFnZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBz
ZWN1cml0eU9yaWdpbgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb2NhbFN0b3JhZ2UKKyAg
ICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgICovCi0gICAgX2FkZERPTVN0b3JhZ2U6IGZ1bmN0
aW9uKGRvbVN0b3JhZ2UpCisgICAgX3N0b3JhZ2VLZXk6IGZ1bmN0aW9uKHNlY3VyaXR5T3JpZ2lu
LCBpc0xvY2FsU3RvcmFnZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3N0b3JhZ2VzW2RvbVN0b3Jh
Z2UuaWRdID0gZG9tU3RvcmFnZTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZUFkZGVkLCBk
b21TdG9yYWdlKTsKKyAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFdlYkluc3BlY3Rvci5E
T01TdG9yYWdlLnN0b3JhZ2VJZChzZWN1cml0eU9yaWdpbiwgaXNMb2NhbFN0b3JhZ2UpKTsKICAg
ICB9LAogCiAgICAgLyoqCkBAIC0xMTgsNyArMTczLDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3Jh
Z2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VJdGVtc0NsZWFy
ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCkKICAgICB7Ci0gICAgICAgIHZhciBkb21TdG9yYWdlID0g
dGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAgICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlz
LnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAgICB2YXIgc3RvcmFnZURhdGEgPSB7CiAg
ICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlCiAgICAgICAgIH07CkBAIC0xMzEsNyArMTg2
LDcgQEAgV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICov
CiAgICAgX2RvbVN0b3JhZ2VJdGVtUmVtb3ZlZDogZnVuY3Rpb24oc3RvcmFnZUlkLCBrZXkpCiAg
ICAgewotICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IHRoaXMuX3N0b3JhZ2VzW3N0b3JhZ2VJZF07
CisgICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5zdG9yYWdlRm9ySWQoc3RvcmFnZUlkKTsK
ICAgICAgICAgdmFyIHN0b3JhZ2VEYXRhID0gewogICAgICAgICAgICAgc3RvcmFnZTogZG9tU3Rv
cmFnZSwKICAgICAgICAgICAgIGtleToga2V5CkBAIC0xNDYsNyArMjAxLDcgQEAgV2ViSW5zcGVj
dG9yLkRPTVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3Jh
Z2VJdGVtQWRkZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwga2V5LCBuZXdWYWx1ZSkKICAgICB7Ci0g
ICAgICAgIHZhciBkb21TdG9yYWdlID0gdGhpcy5fc3RvcmFnZXNbc3RvcmFnZUlkXTsKKyAgICAg
ICAgdmFyIGRvbVN0b3JhZ2UgPSB0aGlzLnN0b3JhZ2VGb3JJZChzdG9yYWdlSWQpOwogICAgICAg
ICB2YXIgc3RvcmFnZURhdGEgPSB7CiAgICAgICAgICAgICBzdG9yYWdlOiBkb21TdG9yYWdlLAog
ICAgICAgICAgICAga2V5OiBrZXksCkBAIC0xNzksNyArMjM0LDcgQEAgV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2VNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc3RvcmFnZUZvcklkOiBm
dW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc3RvcmFnZXNb
c3RvcmFnZUlkXTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3N0b3JhZ2VzW0pTT04uc3RyaW5naWZ5
KHN0b3JhZ2VJZCldOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4OCw4ICsyNDMsOCBAQCBXZWJJ
bnNwZWN0b3IuRE9NU3RvcmFnZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBzdG9yYWdlczogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwotICAgICAgICBmb3IgKHZh
ciBzdG9yYWdlSWQgaW4gdGhpcy5fc3RvcmFnZXMpCi0gICAgICAgICAgICByZXN1bHQucHVzaCh0
aGlzLl9zdG9yYWdlc1tzdG9yYWdlSWRdKTsKKyAgICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5f
c3RvcmFnZXMpCisgICAgICAgICAgICByZXN1bHQucHVzaCh0aGlzLl9zdG9yYWdlc1tpZF0pOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCiAKQEAgLTIwOSwxOCArMjY0LDcgQEAgV2Vi
SW5zcGVjdG9yLkRPTVN0b3JhZ2VEaXNwYXRjaGVyID0gZnVuY3Rpb24obW9kZWwpCiBXZWJJbnNw
ZWN0b3IuRE9NU3RvcmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogCiAgICAgLyoqCi0gICAg
ICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQuRW50cnl9IHBheWxvYWQKLSAgICAgKi8KLSAgICBh
ZGRET01TdG9yYWdlOiBmdW5jdGlvbihwYXlsb2FkKQotICAgIHsKLSAgICAgICAgdGhpcy5fbW9k
ZWwuX2FkZERPTVN0b3JhZ2UobmV3IFdlYkluc3BlY3Rvci5ET01TdG9yYWdlKAotICAgICAgICAg
ICAgcGF5bG9hZC5pZCwKLSAgICAgICAgICAgIHBheWxvYWQub3JpZ2luLAotICAgICAgICAgICAg
cGF5bG9hZC5pc0xvY2FsU3RvcmFnZSkpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFy
YW0ge3N0cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdlbnQuU3Rv
cmFnZUlkfSBzdG9yYWdlSWQKICAgICAgKi8KICAgICBkb21TdG9yYWdlSXRlbXNDbGVhcmVkOiBm
dW5jdGlvbihzdG9yYWdlSWQpCiAgICAgewpAQCAtMjI4LDcgKzI3Miw3IEBAIFdlYkluc3BlY3Rv
ci5ET01TdG9yYWdlRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3Jh
Z2VBZ2VudC5TdG9yYWdlSWR9IHN0b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkK
ICAgICAgKi8KICAgICBkb21TdG9yYWdlSXRlbVJlbW92ZWQ6IGZ1bmN0aW9uKHN0b3JhZ2VJZCwg
a2V5KQpAQCAtMjM3LDcgKzI4MSw3IEBAIFdlYkluc3BlY3Rvci5ET01TdG9yYWdlRGlzcGF0Y2hl
ci5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBzdG9yYWdlSWQKKyAgICAgKiBAcGFyYW0ge0RPTVN0b3JhZ2VBZ2VudC5TdG9yYWdlSWR9IHN0
b3JhZ2VJZAogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gbmV3VmFsdWUKICAgICAgKi8KQEAgLTI0Nyw3ICsyOTEsNyBAQCBXZWJJbnNwZWN0b3IuRE9N
U3RvcmFnZURpc3BhdGNoZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge3N0cmluZ30gc3RvcmFnZUlkCisgICAgICogQHBhcmFtIHtET01TdG9yYWdlQWdl
bnQuU3RvcmFnZUlkfSBzdG9yYWdlSWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5CiAgICAg
ICogQHBhcmFtIHtzdHJpbmd9IG9sZFZhbHVlCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1Zh
bHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTVN0
b3JhZ2VJdGVtc1ZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TVN0b3JhZ2VJdGVtc1ZpZXcuanMKaW5kZXggNTM1ZGExMmMzNTNjYjFlNzA4NjQ4ZmFhYTYyMzJh
ZGY3ZDNhMjhjYy4uZjVkYjFlOTFjNGRlZGEzNDc2Y2ZiM2RiODIwODFkOTAyOGQ0YmM4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01TdG9yYWdlSXRl
bXNWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NU3Rv
cmFnZUl0ZW1zVmlldy5qcwpAQCAtMTU2LDIxICsxNTYsMjEgQEAgV2ViSW5zcGVjdG9yLkRPTVN0
b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgIF91cGRhdGU6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIHRoaXMuZGV0YWNoQ2hpbGRWaWV3cygpOwotICAgICAgICB0aGlzLmRvbVN0
b3JhZ2UuZ2V0RW50cmllcyh0aGlzLl9zaG93RE9NU3RvcmFnZUVudHJpZXMuYmluZCh0aGlzKSk7
CisgICAgICAgIHRoaXMuZG9tU3RvcmFnZS5nZXRJdGVtcyh0aGlzLl9zaG93RE9NU3RvcmFnZUl0
ZW1zLmJpbmQodGhpcykpOwogICAgIH0sCiAKLSAgICBfc2hvd0RPTVN0b3JhZ2VFbnRyaWVzOiBm
dW5jdGlvbihlcnJvciwgZW50cmllcykKKyAgICBfc2hvd0RPTVN0b3JhZ2VJdGVtczogZnVuY3Rp
b24oZXJyb3IsIGl0ZW1zKQogICAgIHsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAg
cmV0dXJuOwogCi0gICAgICAgIHRoaXMuX2RhdGFHcmlkID0gdGhpcy5fZGF0YUdyaWRGb3JET01T
dG9yYWdlRW50cmllcyhlbnRyaWVzKTsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQgPSB0aGlzLl9k
YXRhR3JpZEZvckRPTVN0b3JhZ2VJdGVtcyhpdGVtcyk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlk
LnNob3codGhpcy5lbGVtZW50KTsKICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXV0b1NpemVDb2x1
bW5zKDEwKTsKICAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udmlzaWJsZSA9ICh0aGlzLl9kYXRh
R3JpZC5yb290Tm9kZSgpLmNoaWxkcmVuLmxlbmd0aCA+IDEpOwogICAgIH0sCiAKLSAgICBfZGF0
YUdyaWRGb3JET01TdG9yYWdlRW50cmllczogZnVuY3Rpb24oZW50cmllcykKKyAgICBfZGF0YUdy
aWRGb3JET01TdG9yYWdlSXRlbXM6IGZ1bmN0aW9uKGl0ZW1zKQogICAgIHsKICAgICAgICAgdmFy
IGNvbHVtbnMgPSB7a2V5OiB7fSwgdmFsdWU6IHt9fTsKIApAQCAtMTgzLDEwICsxODMsMTAgQEAg
V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VJdGVtc1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB2
YXIgbm9kZXMgPSBbXTsKIAogICAgICAgICB2YXIga2V5cyA9IFtdOwotICAgICAgICB2YXIgbGVu
Z3RoID0gZW50cmllcy5sZW5ndGg7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZW50cmll
cy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgdmFyIGtleSA9IGVudHJpZXNbaV1bMF07Ci0g
ICAgICAgICAgICB2YXIgdmFsdWUgPSBlbnRyaWVzW2ldWzFdOworICAgICAgICB2YXIgbGVuZ3Ro
ID0gaXRlbXMubGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIga2V5ID0gaXRlbXNbaV1bMF07CisgICAgICAgICAg
ICB2YXIgdmFsdWUgPSBpdGVtc1tpXVsxXTsKICAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdl
Ykluc3BlY3Rvci5EYXRhR3JpZE5vZGUoe2tleToga2V5LCB2YWx1ZTogdmFsdWV9LCBmYWxzZSk7
CiAgICAgICAgICAgICBub2RlLnNlbGVjdGFibGUgPSB0cnVlOwogICAgICAgICAgICAgbm9kZXMu
cHVzaChub2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IGVhYWExYTJlZDRkZTFlYTJlNjlmOGM3ZTQzMjYxMjg2
Yjg3ZWE2NzEuLjg4MDYyNjljYzg5ZDJjMTU1YmFmM2FjZTZhYTA0NDJiZjgwNDhjNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5l
bC5qcwpAQCAtMTE1LDkgKzExNSw2IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbCA9IGZ1
bmN0aW9uKGRhdGFiYXNlKQogCiAgICAgV2ViSW5zcGVjdG9yLmRhdGFiYXNlTW9kZWwuZGF0YWJh
c2VzKCkuZm9yRWFjaCh0aGlzLl9hZGREYXRhYmFzZS5iaW5kKHRoaXMpKTsKICAgICBXZWJJbnNw
ZWN0b3IuZGF0YWJhc2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhYmFz
ZU1vZGVsLkV2ZW50cy5EYXRhYmFzZUFkZGVkLCB0aGlzLl9kYXRhYmFzZUFkZGVkLCB0aGlzKTsK
LQotICAgIFdlYkluc3BlY3Rvci5kb21TdG9yYWdlTW9kZWwuc3RvcmFnZXMoKS5mb3JFYWNoKHRo
aXMuX2FkZERPTVN0b3JhZ2UuYmluZCh0aGlzKSk7Ci0gICAgV2ViSW5zcGVjdG9yLmRvbVN0b3Jh
Z2VNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01TdG9yYWdlTW9kZWwuRXZl
bnRzLkRPTVN0b3JhZ2VBZGRlZCwgdGhpcy5fZG9tU3RvcmFnZUFkZGVkLCB0aGlzKTsKIH0KIAog
V2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3RvdHlwZSA9IHsKQEAgLTEzNiw2ICsxMzMs
NyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAg
ICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZCAmJiB0aGlzLmlzU2hvd2luZygpICYmIHRoaXMu
X2NhY2hlZFJlc291cmNlc1dlcmVMb2FkZWQpIHsKICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRl
UmVzb3VyY2VUcmVlKCk7CisgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZURPTVN0b3JhZ2VUcmVl
KCk7CiAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZUFwcGxpY2F0aW9uQ2FjaGVUcmVlKCk7CiAg
ICAgICAgICAgICB0aGlzLl9pbml0RGVmYXVsdFNlbGVjdGlvbigpOwogICAgICAgICAgICAgdGhp
cy5faW5pdGlhbGl6ZWQgPSB0cnVlOwpAQCAtMzMxLDcgKzMyOSw3IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2RvbVN0b3JhZ2VBZGRl
ZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB2YXIgZG9tU3RvcmFnZSA9IC8qKiBA
dHlwZSB7V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2V9Ki8gKGV2ZW50LmRhdGEpOworICAgICAgICB2
YXIgZG9tU3RvcmFnZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2V9ICovIChl
dmVudC5kYXRhKTsKICAgICAgICAgdGhpcy5fYWRkRE9NU3RvcmFnZShkb21TdG9yYWdlKTsKICAg
ICB9LAogCkBAIC0zNDAsNiArMzM4LDggQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBfYWRkRE9NU3RvcmFnZTogZnVuY3Rpb24oZG9tU3Rv
cmFnZSkKICAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9kb21TdG9yYWdlVHJl
ZUVsZW1lbnRzLmdldChkb21TdG9yYWdlKSk7CisKICAgICAgICAgdmFyIGRvbVN0b3JhZ2VUcmVl
RWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50KHRoaXMsIGRv
bVN0b3JhZ2UsIChkb21TdG9yYWdlLmlzTG9jYWxTdG9yYWdlID8gImxvY2FsLXN0b3JhZ2UiIDog
InNlc3Npb24tc3RvcmFnZSIpKTsKICAgICAgICAgdGhpcy5fZG9tU3RvcmFnZVRyZWVFbGVtZW50
cy5wdXQoZG9tU3RvcmFnZSwgZG9tU3RvcmFnZVRyZWVFbGVtZW50KTsKICAgICAgICAgaWYgKGRv
bVN0b3JhZ2UuaXNMb2NhbFN0b3JhZ2UpCkBAIC0zNDksNiArMzQ5LDMyIEBAIFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqLworICAgIF9kb21TdG9y
YWdlUmVtb3ZlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIgZG9tU3RvcmFn
ZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2V9ICovIChldmVudC5kYXRhKTsK
KyAgICAgICAgdGhpcy5fcmVtb3ZlRE9NU3RvcmFnZShkb21TdG9yYWdlKTsKKyAgICB9LAorCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZX0gZG9tU3RvcmFn
ZQorICAgICAqLworICAgIF9yZW1vdmVET01TdG9yYWdlOiBmdW5jdGlvbihkb21TdG9yYWdlKQor
ICAgIHsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5fZG9tU3RvcmFnZVRyZWVFbGVt
ZW50cy5nZXQoZG9tU3RvcmFnZSk7CisgICAgICAgIGlmICghdHJlZUVsZW1lbnQpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIHZhciB3YXNTZWxlY3RlZCA9IHRyZWVFbGVtZW50LnNlbGVj
dGVkOworICAgICAgICB2YXIgcGFyZW50TGlzdFRyZWVFbGVtZW50ID0gdHJlZUVsZW1lbnQucGFy
ZW50OworICAgICAgICBwYXJlbnRMaXN0VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1l
bnQpOworICAgICAgICBpZiAod2FzU2VsZWN0ZWQpCisgICAgICAgICAgICBwYXJlbnRMaXN0VHJl
ZUVsZW1lbnQuc2VsZWN0KCk7CisgICAgICAgIHRoaXMuX2RvbVN0b3JhZ2VUcmVlRWxlbWVudHMu
cmVtb3ZlKHRyZWVFbGVtZW50KTsKKyAgICAgICAgdGhpcy5fZG9tU3RvcmFnZVZpZXdzLnJlbW92
ZShkb21TdG9yYWdlKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRGF0YWJhc2V9IGRhdGFiYXNlCiAgICAgICovCiAgICAgc2VsZWN0RGF0YWJhc2U6IGZ1
bmN0aW9uKGRhdGFiYXNlKQpAQCAtNTcyLDYgKzU5OCwxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBkYXRhYmFzZS5nZXRUYWJsZU5hbWVzKHRh
YmxlTmFtZXNDYWxsYmFjayk7CiAgICAgfSwKIAorICAgIF9wb3B1bGF0ZURPTVN0b3JhZ2VUcmVl
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVs
LnN0b3JhZ2VzKCkuZm9yRWFjaCh0aGlzLl9hZGRET01TdG9yYWdlLmJpbmQodGhpcykpOworICAg
ICAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9NU3RvcmFnZUFkZGVkLCB0aGlzLl9kb21T
dG9yYWdlQWRkZWQsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tU3RvcmFnZU1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTVN0b3JhZ2VNb2RlbC5FdmVudHMuRE9N
U3RvcmFnZVJlbW92ZWQsIHRoaXMuX2RvbVN0b3JhZ2VSZW1vdmVkLCB0aGlzKTsKKyAgICB9LAor
CiAgICAgX3BvcHVsYXRlQXBwbGljYXRpb25DYWNoZVRyZWU6IGZ1bmN0aW9uKCkKICAgICB7CiAg
ICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uQ2FjaGVNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuQXBw
bGljYXRpb25DYWNoZU1vZGVsKCk7CkBAIC0xODUwLDE0ICsxODgzLDE0IEBAIFdlYkluc3BlY3Rv
ci5JREJJbmRleFRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKICAqLwogV2ViSW5zcGVjdG9yLkRP
TVN0b3JhZ2VUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHN0b3JhZ2VQYW5lbCwgZG9tU3RvcmFnZSwg
Y2xhc3NOYW1lKQogewotICAgIFdlYkluc3BlY3Rvci5CYXNlU3RvcmFnZVRyZWVFbGVtZW50LmNh
bGwodGhpcywgc3RvcmFnZVBhbmVsLCBudWxsLCBkb21TdG9yYWdlLmRvbWFpbiA/IGRvbVN0b3Jh
Z2UuZG9tYWluIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2NhbCBGaWxlcyIpLCBbImRvbXN0
b3JhZ2Utc3RvcmFnZS10cmVlLWl0ZW0iLCBjbGFzc05hbWVdKTsKKyAgICBXZWJJbnNwZWN0b3Iu
QmFzZVN0b3JhZ2VUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHN0b3JhZ2VQYW5lbCwgbnVsbCwgZG9t
U3RvcmFnZS5zZWN1cml0eU9yaWdpbiA/IGRvbVN0b3JhZ2Uuc2VjdXJpdHlPcmlnaW4gOiBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkxvY2FsIEZpbGVzIiksIFsiZG9tc3RvcmFnZS1zdG9yYWdlLXRy
ZWUtaXRlbSIsIGNsYXNzTmFtZV0pOwogICAgIHRoaXMuX2RvbVN0b3JhZ2UgPSBkb21TdG9yYWdl
OwogfQogCiBXZWJJbnNwZWN0b3IuRE9NU3RvcmFnZVRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICBnZXQgaXRlbVVSTCgpCiAgICAgewotICAgICAgICByZXR1cm4gInN0b3JhZ2U6Ly8iICsg
dGhpcy5fZG9tU3RvcmFnZS5kb21haW4gKyAiLyIgKyAodGhpcy5fZG9tU3RvcmFnZS5pc0xvY2Fs
U3RvcmFnZSA/ICJsb2NhbCIgOiAic2Vzc2lvbiIpOworICAgICAgICByZXR1cm4gInN0b3JhZ2U6
Ly8iICsgdGhpcy5fZG9tU3RvcmFnZS5zZWN1cml0eU9yaWdpbiArICIvIiArICh0aGlzLl9kb21T
dG9yYWdlLmlzTG9jYWxTdG9yYWdlID8gImxvY2FsIiA6ICJzZXNzaW9uIik7CiAgICAgfSwKIAog
ICAgIG9uc2VsZWN0OiBmdW5jdGlvbihzZWxlY3RlZEJ5VXNlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAppbmRleCBlYWRkM2Q4N2JmZjg5NDU4OTk2NjUzMTIzNjdmYTQwYzk2MGYyNjk5Li4z
ZjI2YjExNDdmMTU2YzliNTM0OTExNjQwNDY1Y2MyOGU2M2Q3MDc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCkBAIC03NjIsNyArNzYyLDYgQEAgU3RvcmFnZSogRE9NV2luZG93OjpzZXNz
aW9uU3RvcmFnZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgZWMgPSBTRUNVUklU
WV9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZFVzZURPTVN0b3JhZ2UocGFnZSwgc3RvcmFnZUFyZWEuZ2V0KCksIGZhbHNlLCBt
X2ZyYW1lKTsKIAogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSBTdG9yYWdlOjpjcmVhdGUobV9mcmFt
ZSwgc3RvcmFnZUFyZWEucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbV9zZXNzaW9uU3RvcmFnZS5n
ZXQoKTsKQEAgLTgwMiw3ICs4MDEsNiBAQCBTdG9yYWdlKiBET01XaW5kb3c6OmxvY2FsU3RvcmFn
ZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAg
ICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFVzZURPTVN0b3JhZ2UocGFnZSwgc3RvcmFnZUFyZWEuZ2V0KCksIHRydWUsIG1fZnJhbWUpOwog
CiAgICAgbV9sb2NhbFN0b3JhZ2UgPSBTdG9yYWdlOjpjcmVhdGUobV9mcmFtZSwgc3RvcmFnZUFy
ZWEucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbV9sb2NhbFN0b3JhZ2UuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NjNkYzU3ZTY3MzAwZGE1MjFkODZjYWU5MTIyNjNkYWY4MWMyMmY5Ny4uNDUzZWE4YTNlYzRiNTJk
ZmMxMjViNjFmMGZkYzI4MmQ2NDM4MjE2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAy
LTIxICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogTG9jYWwvc2Vzc2lvbiBzdG9yYWdlIHRyZWUgaXRlbXMgaW4gdGhlIFJl
c291cmNlcyBwYW5lbCBhZnRlciBwYWdlIHJlZnJlc2ggYXJlIG5vdCBzaG93bgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NTcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2luc3Bl
Y3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sOgorCiAyMDEz
LTAyLTIwICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IFRhYmJlZEVkaXRvckNvbnRhaW5lciBhbmQgT3BlblJlc291cmNlRGlh
bG9nIHNob3VsZCBzaG93IHVpU291cmNlQ29kZSBwYXRoIGFuZCBuYW1lIGluc3RlYWQgb2YgcGFy
c2VkVVJMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFi
bGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3ItZW5hYmxlZC9kb20tc3RvcmFnZS1vcGVuLWV4cGVjdGVkLnR4dAppbmRleCBj
YmVkZjcwOTM5NTllZTc4MjA1MDk4ODFhMmJhMzUwZDhkMjQzNzYwLi5hNDY4MjExYTU2N2Y1NzNk
OGMwNDA3N2IwOTE5MTBiMmIxZWUyMjlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci1lbmFibGVkL2RvbS1zdG9yYWdlLW9wZW4tZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Bl
bi1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw3IEBACi1UZXN0cyB0aGF0IFdlYiBJbnNwZWN0b3Ig
Z2V0cyBwb3B1bGF0ZWQgd2l0aCBET00gc3RvcmFnZXMgdGhhdCB3ZXJlIG9wZW5lZCBiZWZvcmUg
aW5zcGVjdG9yIGlzIHNob3duLgorVGVzdHMgdGhhdCBXZWIgSW5zcGVjdG9yIGdldHMgcG9wdWxh
dGVkIHdpdGggRE9NIHN0b3JhZ2VzIGFjY29yZGluZyB0byBzZWN1cml0eSBvcmlnaW5zIGZvdW5k
IGluIHRoZSBwYWdlLgogCi1Eb21haW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorU2VjdXJpdHlP
cmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorSXNMb2NhbFN0b3JhZ2U6IHRydWUKK1NlY3Vy
aXR5T3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAKIElzTG9jYWxTdG9yYWdlOiBmYWxzZQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci1lbmFibGVkL2Rv
bS1zdG9yYWdlLW9wZW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVu
YWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCmluZGV4IDIwMTgxYzY3MmMwNjljOGZhODZiNTk2
MTk4ZTA0NGJhZDM4MDAzMjQuLjEzMDIwMDcyNGU1YWFhZTQ0ZmEyNjI3NjI3MDE3OGFkMjRmNmI2
ZDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yLWVuYWJsZWQv
ZG9tLXN0b3JhZ2Utb3Blbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yLWVuYWJsZWQvZG9tLXN0b3JhZ2Utb3Blbi5odG1sCkBAIC0yMiw3ICsyMiw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgdmFyIHN0b3JhZ2VzID0gV2ViSW5zcGVjdG9yLmRv
bVN0b3JhZ2VNb2RlbC5zdG9yYWdlcygpOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0
b3JhZ2VzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiRG9tYWluOiAiICsgc3RvcmFnZXNbaV0uZG9tYWluKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJTZWN1cml0eU9yaWdpbjogIiArIHN0b3JhZ2VzW2ldLnNlY3VyaXR5
T3JpZ2luKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJJc0xvY2FsU3Rv
cmFnZTogIiArIHN0b3JhZ2VzW2ldLmlzTG9jYWxTdG9yYWdlKTsKICAgICAgICAgfQogICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwpAQCAtMzQsNiArMzQsNiBAQCBmdW5jdGlv
biB0ZXN0KCkKIAogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Ci08cD5UZXN0cyB0
aGF0IFdlYiBJbnNwZWN0b3IgZ2V0cyBwb3B1bGF0ZWQgd2l0aCBET00gc3RvcmFnZXMgdGhhdCB3
ZXJlIG9wZW5lZCBiZWZvcmUgaW5zcGVjdG9yIGlzIHNob3duLjwvcD4KKzxwPlRlc3RzIHRoYXQg
V2ViIEluc3BlY3RvciBnZXRzIHBvcHVsYXRlZCB3aXRoIERPTSBzdG9yYWdlcyBhY2NvcmRpbmcg
dG8gc2VjdXJpdHkgb3JpZ2lucyBmb3VuZCBpbiB0aGUgcGFnZS48L3A+CiA8L2JvZHk+CiA8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>