<?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>236245</bug_id>
          
          <creation_ts>2022-02-07 08:51:15 -0800</creation_ts>
          <short_desc>Add settings to restrict media containers and codecs when in Captive Portal mode</short_desc>
          <delta_ts>2022-02-12 10:19: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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1838187</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-07 08:51:15 -0800</bug_when>
    <thetext>Add settings to restrict media containers and codecs when in Captive Portal mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838249</commentid>
    <comment_count>1</comment_count>
      <attachid>451125</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-07 10:48:02 -0800</bug_when>
    <thetext>Created attachment 451125
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838318</commentid>
    <comment_count>2</comment_count>
      <attachid>451125</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2022-02-07 13:15:41 -0800</bug_when>
    <thetext>Comment on attachment 451125
Patch

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

&gt; Source/WTF/Scripts/Preferences/WebPreferences.yaml:1329
&gt; +MediaAudioCodecIDsAllowedWhenCaptivePortalModeEnabled:

The name looks a little strange. Is &quot;MediaAudioCodecIDsAllowedInCaptivePortalMode&quot; better?

&gt; Source/WebCore/page/SettingsBase.cpp:238
&gt; +    Vector&lt;FourCC&gt; newTypes;
&gt; +    for (auto type : StringView(types).split(&apos;,&apos;)) {

Nit. Maybe we can implement this in a function and reuse the function?

&gt; Source/WebKit/WebKit.xcodeproj/xcshareddata/xcschemes/WebKitSwift.xcscheme:1
&gt; +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

Is this change relevant?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838372</commentid>
    <comment_count>3</comment_count>
      <attachid>451125</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-07 14:49:29 -0800</bug_when>
    <thetext>Comment on attachment 451125
Patch

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

r=me once the bots are happy

&gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:362
&gt; +    auto&amp; settings = document().settings();
&gt; +    if (!contentTypeMeetsContainerAndCodecTypeRequirements(contentType, settings.allowedMediaContainerTypes(), settings.allowedMediaCodecTypes()))
&gt; +        return Exception { NotSupportedError };

You could add a public method to MediaSource instead of repeating the check here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838550</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-07 23:50:38 -0800</bug_when>
    <thetext>(In reply to Peng Liu from comment #2)
&gt; Comment on attachment 451125 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451125&amp;action=review
&gt; 
&gt; &gt; Source/WTF/Scripts/Preferences/WebPreferences.yaml:1329
&gt; &gt; +MediaAudioCodecIDsAllowedWhenCaptivePortalModeEnabled:
&gt; 
&gt; The name looks a little strange. Is
&gt; &quot;MediaAudioCodecIDsAllowedInCaptivePortalMode&quot; better?

Ok!

&gt; &gt; Source/WebCore/page/SettingsBase.cpp:238
&gt; &gt; +    Vector&lt;FourCC&gt; newTypes;
&gt; &gt; +    for (auto type : StringView(types).split(&apos;,&apos;)) {
&gt; 
&gt; Nit. Maybe we can implement this in a function and reuse the function?

I dunno, it&apos;s pretty concise as it is.

&gt; &gt; Source/WebKit/WebKit.xcodeproj/xcshareddata/xcschemes/WebKitSwift.xcscheme:1
&gt; &gt; +&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&gt; 
&gt; Is this change relevant?

Whoops! Nope.

(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 451125 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451125&amp;action=review
&gt; 
&gt; r=me once the bots are happy
&gt; 
&gt; &gt; Source/WebCore/Modules/mediasource/SourceBuffer.cpp:362
&gt; &gt; +    auto&amp; settings = document().settings();
&gt; &gt; +    if (!contentTypeMeetsContainerAndCodecTypeRequirements(contentType, settings.allowedMediaContainerTypes(), settings.allowedMediaCodecTypes()))
&gt; &gt; +        return Exception { NotSupportedError };
&gt; 
&gt; You could add a public method to MediaSource instead of repeating the check
&gt; here.

It&apos;s already been factored into a single utility method; I&apos;m not sure it&apos;s worth further refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838694</commentid>
    <comment_count>5</comment_count>
      <attachid>451255</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-08 08:52:21 -0800</bug_when>
    <thetext>Created attachment 451255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838730</commentid>
    <comment_count>6</comment_count>
      <attachid>451264</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-08 09:49:23 -0800</bug_when>
    <thetext>Created attachment 451264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838740</commentid>
    <comment_count>7</comment_count>
      <attachid>451267</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-08 10:01:03 -0800</bug_when>
    <thetext>Created attachment 451267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838745</commentid>
    <comment_count>8</comment_count>
      <attachid>451267</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-02-08 10:05:08 -0800</bug_when>
    <thetext>Comment on attachment 451267
Patch

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

&gt; Source/WTF/ChangeLog:3
&gt; +        [Cocoa] Adopt -streamDataParser:didProvideContentKeySpecifier:forTrackID: delegate callback

Is the right change for this bug? The title is quite different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838753</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-08 10:34:06 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #8)
&gt; Comment on attachment 451267 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=451267&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:3
&gt; &gt; +        [Cocoa] Adopt -streamDataParser:didProvideContentKeySpecifier:forTrackID: delegate callback
&gt; 
&gt; Is the right change for this bug? The title is quite different.

Ugh. webkit-patch uploaded that patch to the wrong bug. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838757</commentid>
    <comment_count>10</comment_count>
      <attachid>451271</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-08 10:38:53 -0800</bug_when>
    <thetext>Created attachment 451271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838769</commentid>
    <comment_count>11</comment_count>
      <attachid>451271</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-02-08 10:55:05 -0800</bug_when>
    <thetext>Comment on attachment 451271
Patch

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

&gt; Source/WTF/ChangeLog:134
&gt; +2022-02-07  Jer Noble  &lt;jer.noble@apple.com&gt;
&gt; +
&gt; +        Add settings to restrict media containers and codecs when in Captive Portal mode
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=236245
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Scripts/Preferences/WebPreferences.yaml:
&gt; +

Nit: move this to the top of the ChangeLog

&gt; LayoutTests/media/video-test.js:243
&gt; +    return waitFor(element, type, false, true);

s/false, true/false, false/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838802</commentid>
    <comment_count>12</comment_count>
      <attachid>451271</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2022-02-08 11:35:34 -0800</bug_when>
    <thetext>Comment on attachment 451271
Patch

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

&gt; LayoutTests/ChangeLog:373
&gt; +2022-02-07  Jer Noble  &lt;jer.noble@apple.com&gt;

Nit: move this to the top of the ChangeLog. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840412</commentid>
    <comment_count>13</comment_count>
      <attachid>451713</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-11 09:42:58 -0800</bug_when>
    <thetext>Created attachment 451713
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840536</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-11 13:46:11 -0800</bug_when>
    <thetext>Looks like settings are bleeding between runs. Will update with a patch that resets these new settings to consistent values between runs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840642</commentid>
    <comment_count>15</comment_count>
      <attachid>451764</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-11 18:04:35 -0800</bug_when>
    <thetext>Created attachment 451764
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840645</commentid>
    <comment_count>16</comment_count>
      <attachid>451766</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-11 18:14:28 -0800</bug_when>
    <thetext>Created attachment 451766
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840704</commentid>
    <comment_count>17</comment_count>
      <attachid>451785</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2022-02-12 09:05:36 -0800</bug_when>
    <thetext>Created attachment 451785
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840709</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-12 10:18:04 -0800</bug_when>
    <thetext>Committed r289697 (247182@main): &lt;https://commits.webkit.org/247182@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451785.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1840710</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-12 10:19:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/88857365&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451125</attachid>
            <date>2022-02-07 10:48:02 -0800</date>
            <delta_ts>2022-02-08 08:52:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236245-20220207104801.patch</filename>
            <type>text/plain</type>
            <size>90822</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkYmQwOWQ0N2NmY2Q5OWRlMjUyNmNj
MzJkNWI3MzMwZTI5NWUyYjMuLmRhZDA3NTI3MzMxZWQ4ZWQ3YzRiOTI0ZThjMmE5NzU5YzZmYWM3
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNv
bnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sOgorCiAyMDIyLTAyLTAyICBYYW4gTG9wZXogIDx4YW5A
aWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBSZW1vdmUgY29tcGlsZXIgd2FybmluZyBpbiBU
cmFpbGluZ0FycmF5LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMjdkNjJiMGUwMzc4NmMyOGY0MTg4NDMxZGM3
Nzc1N2Q4ZWNmYmFmLi5iODk1YTA4ZjMzMzIwYTEyYzJmN2RmZmE4M2QzOWI2ZDZlNTBlMTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRp
YSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtYWxs
b3dlZC1jb250YWluZXJzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbAorCisgICAgICAg
IEFkZCBzZXR0aW5ncyBhdCB0aGUgV2ViQ29yZSBsZXZlbCB0byBvcHRpb25hbGx5IGRlY2xhcmUg
YSBsaXN0IG9mIGNvbnRhaW5lciB0eXBlcywKKyAgICAgICAgdmlkZW8gY29kZWNzLCBhdWRpbyBj
b2RlY3MsIGFuZCBjYXB0aW9uIGZvcm1hdHMgdG8gYWxsb3cgd2hlbiBsb2FkaW5nIG1lZGlhIHRo
cm91Z2gKKyAgICAgICAgSFRNTE1lZGlhRWxlbWVudCBhbmQgTWVkaWFTb3VyY2UuCisKKyAgICAg
ICAgVGhlcmUgYXJlIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGNvZGVjIElELCB0eXBpY2FsbHkgYSBm
b3VyLWNoYXJhY3Rlci1jb2RlIGVtYmVkZGVkCisgICAgICAgIGluIHRoZSBjb250YWluZXIgaXRz
ZWxmLCBkb2VzIG5vdCBtYXRjaCB0aGUgUkZDNDI4MSBjb2RlYyBzdHJpbmcuIE5vdGFibHksIHRo
aXMgaXMgdGhlIGNhc2UKKyAgICAgICAgd2l0aCAibXA0YS40MCIgYW5kICdhYWMgJy4gU28gdGhl
IHNldHRpbmdzIG11c3QgaW5jbHVkZSBib3RoIHRoZSBjb2RlYyBJRCBhbmQgdGhlIGNvZGVjCisg
ICAgICAgIHR5cGUgaW4gc3RyaW5nIGZvcm0uCisKKyAgICAgICAgUXVlcnkgdGhlc2UgbGlzdHMg
aW4gSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoKSBhbmQgTWVkaWFTb3VyY2U6OmlzVHlw
ZVN1cHBvcnRlZCgpCisgICAgICAgIGFuZCByZWplY3QgQ29udGVudFR5cGVzIHdoaWNoIGRvIG5v
dCBjb25mb3JtIHRvIHRoZSBhbGxvd2VkIHR5cGVzLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxp
c3RzIGluIE1lZGlhU291cmNlOjpjaGFuZ2VUeXBlKCkgdG8gZGlzYWxsb3cgc3dpdGNoaW5nIHRv
IGFuIHVuc3VwcG9ydGVkCisgICAgICAgIENvbnRlbnRUeXBlLgorICAgICAgICAKKyAgICAgICAg
SWYgdGhlc2UgbGlzdHMgYXJlIHNldCwgcGFzcyB0aGVtIGludG8gQVZVUkxBc3NldCBhcyBjcmVh
dGlvbiBvcHRpb25zLgorCisgICAgICAgIFdoZW4gYSBuZXcgQVZBc3NldFRyYWNrIGlzIGxvYWRl
ZCwgcXVlcnkgdGhlc2UgbGlzdHMgYW5kIGlmIHRoZSB0cmFjaydzIHR5cGUgZG9lcyBub3QKKyAg
ICAgICAgY29uZm9ybSB0byB0aGUgYWxsb3dlZCB0eXBlcywgc3ludGhlc2l6ZSBhbiBlcnJvciBh
bmQgYmxvY2sgZnVydGhlciBsb2FkaW5nLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBl
U3VwcG9ydGVkKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmNoYW5nZVR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUlu
aXRpYWxpemF0aW9uU2VnbWVudCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5Q
bGF5VHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjphbGxvd2VkTWVkaWFDb2RlY1R5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlh
QXVkaW9Db2RlY1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzQmFzZTo6YWxsb3dlZE1lZGlhVmlkZW9Db2RlY1R5cGVzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6YWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGVudFR5cGVzVG9Db2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGVudFR5cGVN
ZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXZWJDb3JlOjpGb3VyQ0M6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb3VyQ0M6OmRlY29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bnVs
bE9wdGlvbmFsU3RyaW5nVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRpb25hbEZv
dXJDQ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bmV4dEJlc3RNZWRp
YUVuZ2luZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllcjo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb246OmxvYWRpbmdNZXRhZGF0YSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGVudFR5cGVzVG9Db2RlY3MpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjphbGxUcmFja3NBcmVQbGF5YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja0lzUGxheWFibGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRT
dGF0dXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmFz
c2V0VHJhY2tNZXRhZGF0YUtleU5hbWVzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMjItMDItMDMgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBZG9wdCAtc3RyZWFtRGF0
YVBhcnNlcjpkaWRQcm92aWRlQ29udGVudEtleVNwZWNpZmllcjpmb3JUcmFja0lEOiBkZWxlZ2F0
ZSBjYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggYjIwNTJjOTgyNmU0OGFiMWNmMWU5OGIy
YzVkNDI4OTYzMjYyZjQxYS4uNjFhZWVjNjE2OWEwODI4NjhlYTYzMmY3NWE5ODYwMjczMjgwMGQ0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDItMDcgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJl
c3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFs
IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAgICAgICogcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tOgorCiAyMDIyLTAyLTAyICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVXNlIHByaXZhdGUgcmVsYXkgZm9y
IGFsbCBzdWJyZXNvdXJjZXMgaWYgdGhlIG1haW4gZG9jdW1lbnQgbWFpbiByZXNvdXJjZSB3YXMg
bG9hZGVkIHVzaW5nIHByaXZhdGUgcmVsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOWRkY2JjMmUxNDgzMGIwZWU5
OWNkNjk3ODk3ZWMwYjgyMTZiYzZlYy4uNjFjOGYzNmNhZDc5ZWQ3NGUzY2NjNDc0ZTFjZTVmOGJh
MjZlOGFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMi0wMi0wNyAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3MgdG8gcmVzdHJp
Y3QgbWVkaWEgY29udGFpbmVycyBhbmQgY29kZWNzIHdoZW4gaW4gQ2FwdGl2ZSBQb3J0YWwgbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjQ1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyIGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBzdXBwb3J0c1R5cGVBbmRD
b2RlY3MoKSBjYWxscywgd2hpY2gKKyAgICAgICAgaXMgcHJvYmxlbWF0aWMgd2hlbiB0aG9zZSBy
ZXN1bHRzIGNhbiBjaGFuZ2UgZHVlIHRvIGEgY2hhbmdlIGluIHNldHRpbmdzLiBTbyBlbmZvcmNl
CisgICAgICAgIHRoZSBhbGxvd2VkIGNvZGVjIGFuZCBjb250YWluZXJzIHNldHRpbmdzIGF0IHRo
ZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgbGV2ZWwuIEFsc28sCisgICAgICAgIHBhc3MgdGhv
c2Ugc2V0dGluZ3MgYWNyb3NzIHRoZSBHUFUgcHJvY2VzcyBib3VuZGFyeSB2aWEgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgRHJpdmUtYnkgZml4OiByZWZh
Y3RvciBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZGVjb2RlKCkgc28gYXMg
bm90IHRvIHJlcXVpcmUKKyAgICAgICAgcmUtZGVjbGFyaW5nIHRoZSB0eXBlcyBvZiBldmVyeSBp
dmFyLCBhbmQgZ3JlYXRseSBzaW1wbGlmeSB0aGUgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAg
KiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDIyLTAyLTAzICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRvcHQgLXN0cmVhbURhdGFQYXJzZXI6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlTcGVjaWZpZXI6Zm9yVHJhY2tJRDogZGVsZWdhdGUgY2FsbGJh
Y2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJl
bmNlcy55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
LnlhbWwKaW5kZXggZTc5YzdkOTJkMTI4YTg2NjhmMzRjMzI0MTg1MzkxNDYzMzFmMmVjZS4uNTMz
OTdhNTQxM2U2M2MzNTQ5ZDMwZjhlMWFkY2IxZDg2ZjY5NDRiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEzMjYsNiAr
MTMyNiwxNCBAQCBNYXhQYXJzZUR1cmF0aW9uOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0
OiAtMQogCitNZWRpYUF1ZGlvQ29kZWNJRHNBbGxvd2VkV2hlbkNhcHRpdmVQb3J0YWxNb2RlRW5h
YmxlZDoKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6
IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6
ICciYWFjICx6YWFjLHFhYWMsY2FhYywubXAzIicKKwogTWVkaWFDYXBhYmlsaXRpZXNFbmFibGVk
OgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToKQEAgLTEzMzYsNiArMTM0NCwzMCBAQCBN
ZWRpYUNhcGFiaWxpdGllc0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZh
bHNlCiAKK01lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzQWxsb3dlZFdoZW5DYXB0aXZlUG9ydGFsTW9k
ZUVuYWJsZWQ6CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBv
c2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiAnImM2MDgsd3Z0dCInCisKK01lZGlhQ29kZWNUeXBlc0FsbG93ZWRXaGVuQ2FwdGl2ZVBv
cnRhbE1vZGVFbmFibGVkOgorICB0eXBlOiBTdHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUK
KyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAg
ICAgZGVmYXVsdDogJyJtcDRhLjQwLGF2YzEiJworCitNZWRpYUNvbnRhaW5lclR5cGVzQWxsb3dl
ZFdoZW5DYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQ6CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3Jl
QmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAg
ICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnInZpZGVvL21wNCxhdWRpby9tcDQsdmlkZW8veC1t
NHYsYXVkaW8veC1tNGEsYXVkaW8vbXAzLGFwcGxpY2F0aW9uL3gtbXBlZ1VSTCx2bmQuYXBwbGUu
bXBlZ1VSTCInCisKIE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0Ogog
ICB0eXBlOiBTdHJpbmcKICAgd2ViY29yZUV4Y2x1ZGVGcm9tSW50ZXJuYWxTZXR0aW5nczogdHJ1
ZQpAQCAtMTQ1NSw2ICsxNDg3LDE0IEBAIE1lZGlhVXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1
bWVudDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorTWVkaWFWaWRlb0Nv
ZGVjSURzQWxsb3dlZFdoZW5DYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWQ6CisgIHR5cGU6IFN0cmlu
ZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1
bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnImF2YzEsemF2YyxxYXZjLGNh
dmMiJworCiBNZW51SXRlbUVsZW1lbnRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIHdlYmNvcmVC
aW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDU5NWU0MjU0MjdlOGViYWM5
ZjVhYjZhZjEwYTU3M2MwNTQ1YmI0YWIuLjkxMjc0N2Y0MDZjMjk1OTQ5OTczYjViYjEzNDlkYmNh
Njc0MWMxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
TWVkaWFTb3VyY2UuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAKICNpbmNsdWRlICJBdWRpb1RyYWNr
TGlzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGVV
dGlsaXRpZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCkBAIC05MDksNiArOTEwLDE3IEBAIGJvb2wg
TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgcGFyYW1ldGVycy5pc01lZGlhU291cmNlID0gdHJ1ZTsK
ICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IFdU
Rk1vdmUoY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KTsKIAorICAgIGlmIChj
b250ZXh0LmlzRG9jdW1lbnQoKSkgeworICAgICAgICBhdXRvJiBzZXR0aW5ncyA9IGRvd25jYXN0
PERvY3VtZW50Pihjb250ZXh0KS5zZXR0aW5ncygpOworICAgICAgICBpZiAoIWNvbnRlbnRUeXBl
TWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29udGVudFR5cGUsIHNldHRp
bmdzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCksIHNldHRpbmdzLmFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcGFyYW1l
dGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHNldHRpbmdzLmFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKCk7CisgICAgICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y0lEcyA9IHNldHRpbmdzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICAgICAgcGFy
YW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gc2V0dGluZ3MuYWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcyA9IHNldHRpbmdzLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOwor
ICAgIH0KKwogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydGVkID0gTWVkaWFQ
bGF5ZXI6OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzKTsKIAogICAgIGlmIChjb2RlY3MuaXNFbXB0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCmluZGV4IDJiM2NkZTM2MDgyNDcxYzExYzg3ZmNmNjFjYzgxY2MzNjBjMzlkOTAu
LmUwNjkyNzBkZjZiNmQxZTdiZmJjM2UyMDkzMjc2NzZiMmQ4YTM5OTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTM4
LDYgKzM4LDcgQEAKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogI2luY2x1ZGUgIkF1ZGlv
VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiQnVmZmVyU291cmNlLmgiCisjaW5jbHVkZSAiQ29u
dGVudFR5cGVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCkBAIC0zNTUsNiArMzU2LDEx
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6Y2hhbmdlVHlwZShjb25zdCBTdHJp
bmcmIHR5cGUpCiAgICAgLy8gdGhlIHR5cGVzIHNwZWNpZmllZCAoY3VycmVudGx5IG9yIHByZXZp
b3VzbHkpIG9mIFNvdXJjZUJ1ZmZlciBvYmplY3RzIGluIHRoZSBzb3VyY2VCdWZmZXJzIGF0dHJp
YnV0ZSBvZgogICAgIC8vIHRoZSBwYXJlbnQgbWVkaWEgc291cmNlLCB0aGVuIHRocm93IGEgTm90
U3VwcG9ydGVkRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBDb250
ZW50VHlwZSBjb250ZW50VHlwZSh0eXBlKTsKKworICAgIGF1dG8mIHNldHRpbmdzID0gZG9jdW1l
bnQoKS5zZXR0aW5ncygpOworICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENv
ZGVjVHlwZVJlcXVpcmVtZW50cyhjb250ZW50VHlwZSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoKSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpKSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisKICAgICBpZiAoIW1f
cHJpdmF0ZS0+Y2FuU3dpdGNoVG9UeXBlKGNvbnRlbnRUeXBlKSkKICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiAKQEAgLTc4Niw2ICs3OTIsMjUgQEAgdm9p
ZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZlSW5pdGlhbGl6YXRp
b25TZWdtZW50KEluaXRpYWxpemEKICAgICAgICAgLy8gNS4xIElmIHRoZSBpbml0aWFsaXphdGlv
biBzZWdtZW50IGNvbnRhaW5zIHRyYWNrcyB3aXRoIGNvZGVjcyB0aGUgdXNlciBhZ2VudCBkb2Vz
IG5vdCBzdXBwb3J0LAogICAgICAgICAvLyB0aGVuIHJ1biB0aGUgYXBwZW5kIGVycm9yIGFsZ29y
aXRobSB3aXRoIHRoZSBkZWNvZGUgZXJyb3IgcGFyYW1ldGVyIHNldCB0byB0cnVlIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KICAgICAgICAgLy8gTk9URTogVGhpcyBjaGVjayBpcyB0aGUgcmVzcG9u
c2liaWxpdHkgb2YgdGhlIFNvdXJjZUJ1ZmZlclByaXZhdGUuCisgICAgICAgIGlmIChhdXRvJiBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoKSkgeworICAgICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNr
SW5mbyA6IHNlZ21lbnQuYXVkaW9UcmFja3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXVkaW9U
cmFja0luZm8uZGVzY3JpcHRpb24gJiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcy0+Y29udGFp
bnMoRm91ckNDOjpmcm9tU3RyaW5nKGF1ZGlvVHJhY2tJbmZvLmRlc2NyaXB0aW9uLT5jb2RlYygp
KSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGFwcGVu
ZEVycm9yKHRydWUpOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
aWYgKGF1dG8mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBkb2N1bWVudCgpLnNldHRpbmdz
KCkuYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8m
IHZpZGVvVHJhY2tJbmZvIDogc2VnbWVudC52aWRlb1RyYWNrcykgeworICAgICAgICAgICAgICAg
IGlmICh2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbiAmJiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzLT5jb250YWlucyhGb3VyQ0M6OmZyb21TdHJpbmcodmlkZW9UcmFja0luZm8uZGVzY3JpcHRp
b24tPmNvZGVjKCkpKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgYXBwZW5kRXJyb3IodHJ1ZSk7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0K
IAogICAgICAgICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sgaW4gdGhlIGluaXRpYWxpemF0
aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAgICAgIGZvciAoYXV0byYgYXVk
aW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmggYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKaW5kZXggYTk3YTg3NjFl
OTY0ODEwODE3MjFiZWM1MjdjMDEwYmU0NTNmZDM5Ny4uYjNjYTdhMWQ0ODE2NTM3NzQyOTQ2MGU1
NTA3Yjk3MjIwY2Y2OTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2Nv
YS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaApAQCAtMTI3LDYgKzEyNywxNCBAQCBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVBdWRpbywg
TlNTdHJpbmcgKikKICNkZWZpbmUgQVZNZWRpYVR5cGVBdWRpbyBQQUw6OmdldF9BVkZvdW5kYXRp
b25fQVZNZWRpYVR5cGVBdWRpbygpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVNZXRhZGF0YSwgTlNTdHJpbmcgKikKICNkZWZpbmUg
QVZNZWRpYVR5cGVNZXRhZGF0YSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZNZWRpYVR5cGVNZXRh
ZGF0YSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwg
QVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5LCBOU1N0cmluZyAqKQorI2RlZmlu
ZSBBVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0
aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSgpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZUF1
ZGlvQ29kZWNUeXBlc0tleSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJs
ZUF1ZGlvQ29kZWNUeXBlc0tleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93
YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleSwg
TlNTdHJpbmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tl
eSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBl
c0tleSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwg
QVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5LCBOU1N0cmluZyAqKQorI2RlZmlu
ZSBBVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0
aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSgpCiBTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEluaGVyaXRVUklR
dWVyeUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSwgTlNTdHJpbmcgKikKICNkZWZpbmUg
QVZVUkxBc3NldEluaGVyaXRVUklRdWVyeUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSBQ
QUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEluaGVyaXRVUklRdWVyeUNvbXBvbmVudEZy
b21SZWZlcmVuY2luZ1VSSUtleSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IEFWRm91bmRhdGlvbiwgQVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVy
dHVyZSwgTlNTdHJpbmcgKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29h
L0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGJkNmViYmNiOTkxM2RhOGMxMmE4Yjk2YWEy
YmUxMjhmMDgxOTM3N2QuLmFhMzY1Njc4NmM0ZjI5OWFlM2Q4NTBkMWM5YTBhYjQ2YmM2NzZhMmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5tbQpAQCAtMTgyLDYgKzE4MiwxMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NP
VVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRpbwog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tl
eSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNF
X1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb25Db250ZW50UHJv
dGVjdGlvblNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZE5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwg
UEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbWluZ0tleURlbGl2ZXJ5Q29udGVudEtleVR5cGUsIE5T
U3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29y
aWVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVB
dWRpb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3Nl
dEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXksIE5TU3RyaW5nICosIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFW
Rm91bmRhdGlvbiwgQVZVUkxBc3NldENhY2hlS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklL
ZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldE91dE9mQmFuZEFsdGVy
bmF0ZVRyYWNrc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
YjNmNWUwYjc4NDE3MGJmMDI0ZDc4ODM5ZmZjOTA4MTcyNGE3NGNhNi4uMDI5NGI2ODU2MDgxNmYx
NjY2MzNiMGYyYTk1NDVmMzExYTJmYmMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIwMDIsNiArMjAw
Miw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU2VyaWFsaXphdGlvbi5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yU3BhY2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGll
cy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKK3BsYXRm
b3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9EZXN0aW5hdGlv
bkNvbG9yU3BhY2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggYzVmNDRlZjA0YTcwNThiMTliMjRjODVkMTFkNjNkOTQ1NGUzZGIwYy4uMjhlM2Fi
MDlhZGJiZWMwNDIzZGYzNTY1N2QxNDE1ZGUzMmE4YTM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDU2Miw2ICs0NTYyLDcg
QEAKIAkJQ0RBQjZEMkUxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVkaWFDb250cm9sc0hvc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUI2RDJDMTdD
ODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmggKi87IH07CiAJCUNEQUI2RDMx
MTdDOTI1OTUwMEM2MEIzNCAvKiBVc2VyQWdlbnRTY3JpcHRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFCNkQyRjE3QzkyNTk1MDBDNjBCMzQgLyog
VXNlckFnZW50U2NyaXB0cy5oICovOyB9OwogCQlDREFDMDY4MzI0QzZBOTVBMDAyRjcyN0YgLyog
VlA5VXRpbGl0aWVzQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENkZFNUI3MjRCQ0U2NDUwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXNDb2NvYS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEQUQx
QTVBMjdBRkMyN0MwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBRDFBNTcyN0FGQkYzOTAwNjk5
Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RCNjM1NDkyM0Y2MDIzQTAwQzBGOURFIC8qIFdlYkFW
UGxheWVyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RBMjlBMkMxQ0JGNzNGQzAwOTAxQ0NGIC8qIFdlYkFWUGxheWVyQ29udHJvbGxl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNE
QjcwNDVBMUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVhbWluZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCNzA0NTgxRjc0NjVBMTAw
MzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmggKi87IH07CiAJCUNEQjcwNDVCMUY3NDY1
QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVhbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyog
Q0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwICovOyB9OwpAQCAtMTYxNTMsNiArMTYxNTQsOCBAQAog
CQlDREFCNkQyQzE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lZGlhQ29udHJvbHNIb3N0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUI2RDJGMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2Vy
QWdlbnRTY3JpcHRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVzZXJBZ2Vu
dFNjcmlwdHMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U2NyaXB0
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlDREFCNkQzMDE3Qzky
NTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUNEQUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBD
b250ZW50VHlwZVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50VHlwZVV0aWxpdGll
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREFEMUE1ODI3QUZCRjM5MDA2OTky
ODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVu
dFR5cGVVdGlsaXRpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFFOEMw
NzE3NDZCOTU3MDA1MzJENzggLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUU4QzA4MTc0NkI5NTcw
MDUzMkQ3OCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWly
UGxheVN0cmVhbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg4MzQsNiArMjg4MzcsOCBAQAogCQkJCUMy
RjRFNzg5MUU0NUFFREYwMDZENzEwNSAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCAqLywKIAkJ
CQkxQzg0QkU0MTI2RDM5MzlGMDAyRDYxRkMgLyogQ29tcG9zZWRDaGFyYWN0ZXJDbHVzdGVyVGV4
dEl0ZXJhdG9yLmggKi8sCiAJCQkJNzJCQUMzQTcyM0UxNzMyODAwOEQ3NDFDIC8qIENvbmNyZXRl
SW1hZ2VCdWZmZXIuaCAqLywKKwkJCQlDREFEMUE1ODI3QUZCRjM5MDA2OTkyODUgLyogQ29udGVu
dFR5cGVVdGlsaXRpZXMuY3BwICovLAorCQkJCUNEQUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBD
b250ZW50VHlwZVV0aWxpdGllcy5oICovLAogCQkJCTJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAv
KiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCiAJCQkJMkQyRkMwNTUxNDYwQ0Q2RjAw
MjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJQThDQjQxMDIwRTg1
QjhBNTAwMzJDNEYwIC8qIERhc2hBcnJheS5oICovLApAQCAtMzM4NjAsNiArMzM4NjUsNyBAQAog
CQkJCUNFNzk5Rjk4MUM2QTQ2QkMwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3Vy
Y2VMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTc5OUZBQzFDNkE1MDY2MDA5N0I1MTggLyog
Q29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdERpcmVjdGl2ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDFEMDE1Q0EwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlDREFEMUE1QTI3QUZDMjdDMDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NjI3QjhFMTRGQjNDRUUwMDJDRENBMSAvKiBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNkEwRTYwQjBC
Q0E1QzAwRjUwMjdBIC8qIENvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRG
NTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL2NhcHRpb25zLmNzcyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9jYXB0aW9ucy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNlODc2OWQ1NDA3OGRkNWIxNmYxYTky
NWRhMjU1Yjg4MTc5NWJiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9j
YXB0aW9ucy5jc3MKQEAgLTAsMCArMSwyOCBAQAordmlkZW86OmN1ZSgqKSB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjgpOworfQorCit2aWRlbzo6Y3VlKDpmdXR1cmUp
ID4gKiB7CisgICAgY29sb3I6IGdyYXk7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQt
dHJhY2stZGlzcGxheSB7CisgICAgZm9udDogMjJweCBzYW5zLXNlcmlmOyAvKiBLZWVwIGluIHN5
bmMgd2l0aCBgREVGQVVMVENBUFRJT05GT05UU0laRWAuICovCit9CisKK3ZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIGIgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciB1IHsKKyAgICB0
ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4
dC10cmFjay1jb250YWluZXIgaSB7CisgICAgZm9udC1zdHlsZTogaXRhbGljOworfQorCit2aWRl
bzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLXJlZ2lvbiB7CisgICAgYmFja2dyb3VuZDogcmdi
YSgwLCAwLCAwLCAwLjgpOworICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzc2ZWRkMGVkNmY2
NmZlNjNlZjA0MGI3NzA0YzhlZmY5MzhkOGFiNC4uOWY4ZDRjOTI3ODdjNjQzYzdhMThkYTgyMTAx
ZWM3YjlkYjA5MjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC0xMDg5LDYgKzEwODksMTIgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlU
eXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiAgICAgQ29udGVudFR5cGUgY29udGVu
dFR5cGUobWltZVR5cGUpOwogICAgIHBhcmFtZXRlcnMudHlwZSA9IGNvbnRlbnRUeXBlOwogICAg
IHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKTsKKyAgICBwYXJhbWV0ZXJzLmFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsK
KyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBhbGxvd2VkTWVkaWFDb2Rl
Y1R5cGVzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJz
LmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IGFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcygpOworCiAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVk
aWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzKTsKICAgICBTdHJpbmcgY2FuUGxheTsK
IApAQCAtNzQxNiw2ICs3NDIyLDMxIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBIVE1MTWVkaWFFbGVtZW50
OjphbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworfQorCitjb25z
dCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91
ckNDPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25z
dAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRN
TE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcygpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQnVmZmVy
ZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCiB7CiAgICAgaWYgKCFtX3RleHRUcmFja3MgfHwgbV9idWZm
ZXJlZFRpbWVSYW5nZXNDaGFuZ2VkVGFza0NhbmNlbGxhdGlvbkdyb3VwLmhhc1BlbmRpbmdUYXNr
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDMyOWU2M2VhNTYy
Yjc5MDZkMTczYTk2MTc5Y2NlNzg0NDE4Y2NmN2EuLjAwNDkxODYxM2ViOTMxMTA2MjNiMDNiYWZm
OTc2MWQ2MzBjNDhjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC03NzAsNiArNzcwLDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZERp
c2FibGVTbGVlcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHNob3VsZERpc2FibGVTbGVlcCgpID09
IFNsZWVwVHlwZTo6RGlzcGxheTsgfQogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hh
cmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFZlY3RvcjxDb250ZW50VHlw
ZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmlu
YWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdCBmaW5hbDsKKyAg
ICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QgZmluYWw7CisgICAgY29u
c3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcygpIGNvbnN0IGZpbmFsOworCiAgICAgdm9pZCBtZWRpYVBsYXllckJ1ZmZlcmVkVGlt
ZVJhbmdlc0NoYW5nZWQoKSBmaW5hbDsKIAogI2lmIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzQmFzZS5jcHAKaW5kZXggN2Y1NGQ4NzY4Y2MyZmEzNjRlNTQ0MWNlOGQ0MGRh
ODU2MDc5YzZmYi4uY2U3MzJiMTJhOWM1NTJhOWI0MmZlNmJkMWNkYWU3YzBhOTNlNzEwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcApAQCAtMTk5LDcgKzE5OSw4MSBAQCB2b2lk
IFNldHRpbmdzQmFzZTo6c2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQoY29uc3QgVmVjdG9yPENvbgogICAgIG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQgPSBjb250ZW50VHlwZXM7CiB9CiAKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRB
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlm
ICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
ID0gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0
cmluZz4gbmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5z
cGxpdCgnLCcpKQorICAgICAgICBuZXdUeXBlcy5hcHBlbmQodHlwZS50b1N0cmluZygpKTsKKwor
ICAgIG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30K
Kwordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoY29uc3QgU3Ry
aW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxv
d2VkTWVkaWFDb2RlY1R5cGVzID0gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgVmVjdG9yPFN0cmluZz4gbmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBT
dHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgnLCcpKQorICAgICAgICBuZXdUeXBlcy5hcHBlbmQodHlw
ZS50b1N0cmluZygpKTsKKworICAgIG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IFdURk1vdmUo
bmV3VHlwZXMpOworfQorCit2b2lkIFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkg
eworICAgICAgICBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8Rm91ckNDPiBuZXdUeXBlczsKKyAg
ICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykpIHsKKyAgICAg
ICAgaWYgKGF1dG8gZm91ckNDID0gRm91ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQorICAgICAgICAg
ICAgbmV3VHlwZXMuYXBwZW5kKFdURk1vdmUoKmZvdXJDQykpOworICAgIH0KKworICAgIG1fYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNl
dHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5
cGVzKQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMgPSBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBWZWN0b3I8Rm91ckNDPiBuZXdUeXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmlu
Z1ZpZXcodHlwZXMpLnNwbGl0KCcsJykpIHsKKyAgICAgICAgaWYgKGF1dG8gZm91ckNDID0gRm91
ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQorICAgICAgICAgICAgbmV3VHlwZXMuYXBwZW5kKFdURk1v
dmUoKmZvdXJDQykpOworICAgIH0KIAorICAgIG1fYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9
IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5
cGVzLmlzTnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
ID0gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZv
dXJDQz4gbmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5z
cGxpdCgnLCcpKSB7CisgICAgICAgIGlmIChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmlu
Zyh0eXBlKSkKKyAgICAgICAgICAgIG5ld1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsK
KyAgICB9CisKKyAgICBtX2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IFdURk1vdmUo
bmV3VHlwZXMpOworfQogCiAvLyBNQVJLIC0gb25DaGFuZ2UgaGFuZGxlcnMKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3NCYXNlLmgKaW5kZXggNDBkZGI4YTdmN2FmODQ1ZDRiNjVlNjMwZmI3YWIyZTY1
NGJhMWM5Mi4uZTM2MTBhMjVmYjMzOWUwM2FjYzYzYmUxNGYwMDYzMjgwOGMwY2Q4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRm9u
dExvYWRUaW1pbmdPdmVycmlkZS5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAj
aW5jbHVkZSAiRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlLmgiCisjaW5jbHVkZSAiRm91ckNDLmgi
CiAjaW5jbHVkZSAiRnJhbWVGbGF0dGVuaW5nLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlclNjcmlw
dGluZ0ZsYWdQb2xpY3kuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCkBAIC0xMDgs
NiArMTA5LDI2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFN0cmluZyYpOwogICAgIGNv
bnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydDsgfQogCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cyhzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5nJik7CisgICAgY29u
c3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsgfQorCisg
ICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gV1RGTW92ZSh0eXBl
cyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
Y29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4m
IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRNZWRpYUNv
ZGVjVHlwZXM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRB
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29u
c3QgeyByZXR1cm4gbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOyB9CisKKyAgICB2b2lkIHNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4m
JiB0eXBlcykgeyBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBXVEZNb3ZlKHR5cGVzKTsg
fQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhj
b25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYg
YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEczsgfQorCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mJiB0eXBlcykgeyBtX2FsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5n
Jik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzOyB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBTZXR0aW5nc0Jhc2Uo
UGFnZSopOwogICAgIHZpcnR1YWwgflNldHRpbmdzQmFzZSgpOwpAQCAtMTUwLDYgKzE3MSwxMSBA
QCBwcm90ZWN0ZWQ6CiAgICAgVGltZXIgbV9zZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyOwog
CiAgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBtX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG1fYWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4g
bV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJD
Qz4+IG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25h
bDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CiAKICNp
ZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgZmxv
YXQgYm9vc3RlZE9uZUxpbmVUZXh0TXVsdGlwbGllckNvZWZmaWNpZW50ID0gMi4yMzEyNWY7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0
aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlw
ZVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ4Y2NjN2JjNmRlY2Q1ZWI5OGYxNzAyYzI5M2Q2
OTkzYzM2NDE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlVXRpbGl0aWVz
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2ltcG9ydCAiRm91ckNDLmgiCisKK2Jvb2wg
Y29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBD
b250ZW50VHlwZSYgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJp
bmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcykKK3sKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMgJiYgIWFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLT5jb250YWlucyh0eXBl
LmNvbnRhaW5lclR5cGUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghYWxs
b3dlZE1lZGlhQ29kZWNUeXBlcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4g
YWxsT2YodHlwZS5jb2RlY3MoKSwgWyZdIChhdXRvJiBjb2RlYykgeworICAgICAgICByZXR1cm4g
YW55T2YoKmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMsIFsmXSAoYXV0byYgYWxsb3dlZENvZGVjKSB7
CisgICAgICAgICAgICByZXR1cm4gY29kZWMuc3RhcnRzV2l0aChhbGxvd2VkQ29kZWMpOworICAg
ICAgICB9KTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTljNGQy
YjlhNGU5YmVhMmYyY2M2YWM3ZjMwZDM0YjRiODE4NWE2ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29u
dGVudFR5cGUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBGb3VyQ0M7CisKK1dFQkNPUkVfRVhQT1JUIGJvb2wgY29udGVudFR5cGVN
ZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBDb250ZW50VHlwZSYs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcywgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRp
YUNvZGVjVHlwZXMpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJD
Qy5oCmluZGV4IDI0ZTI1NWRmNDRmYjFmNzg3MTRjNThlOTk5OTEwMTI2ZDQ2OWMwYWIuLmIzN2Qw
NTBlOWMwYzM2NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCkBAIC0zNyw2ICszNywxOCBAQCBzdHJ1Y3QgRm91ckND
IHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGb3VyQ0M+IGZyb21TdHJpbmcoU3RyaW5nVmll
dyk7CiAKICAgICB1aW50MzJfdCB2YWx1ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7Cisg
ICAgICAgIGVuY29kZXIgPDwgdmFsdWU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERl
Y29kZXI+CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBGb3VyQ0MmIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4g
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi52YWx1ZSk7CisgICAgfQogfTsKIAogY29uc3Rl
eHByIGJvb2wgb3BlcmF0b3I9PShGb3VyQ0MsIEZvdXJDQyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggYWMzNWU3MDA5NGIyMjVj
NmM0Mjc1MTI5MTkwMTc2ODYxZWM5ZTI3My4uYTVkZGYzZWZjNDFkODdhODRiZjFiNDBkMjc1N2Jl
ODRjMTkwNDRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUu
aCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJGb3Vy
Q0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtMTc2LDYgKzE3NywxOCBAQCBzdGF0
aWMgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbnVsbENvbnRlbnRUeXBlVmVj
dG9yKCkKICAgICByZXR1cm4gdmVjdG9yOwogfQogCitzdGF0aWMgY29uc3Qgc3RkOjpvcHRpb25h
bDxWZWN0b3I8U3RyaW5nPj4mIG51bGxPcHRpb25hbFN0cmluZ1ZlY3RvcigpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+PiB2ZWN0b3I7
CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKworc3RhdGljIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPEZvdXJDQz4+JiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+Pj4gdmVjdG9yOworICAg
IHJldHVybiB2ZWN0b3I7Cit9CisKIGNsYXNzIE51bGxNZWRpYVBsYXllckNsaWVudCA6IHB1Ymxp
YyBNZWRpYVBsYXllckNsaWVudCB7CiBwcml2YXRlOgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RApAQCAtMTk3LDYgKzIxMCwxMiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQ
VEVEX01FRElBKQogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNoZWRLZXlG
b3JLZXlJZChjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAj
ZW5kaWYKKworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25hbFN0
cmluZ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4m
IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9u
YWxTdHJpbmdWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJD
Qz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVs
bE9wdGlvbmFsRm91ckNDVmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25h
bDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CiB9OwogCiBjb25z
dCBWZWN0b3I8Q29udGVudFR5cGU+JiBNZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdApAQCAtNTI5LDYgKzU0OCwxMSBAQCBj
b25zdCBNZWRpYVBsYXllckZhY3RvcnkqIE1lZGlhUGxheWVyOjpuZXh0QmVzdE1lZGlhRW5naW5l
KGNvbnN0IE1lZGlhUGxheWVyRmFjdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgcGFy
YW1ldGVycy5pc01lZGlhU3RyZWFtID0gISFtX21lZGlhU3RyZWFtOwogI2VuZGlmCisgICAgcGFy
YW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gYWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y0lEcyA9IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAg
cGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxvd2VkTWVkaWFD
YXB0aW9uRm9ybWF0VHlwZXMoKTsKIAogICAgIGlmIChtX2FjdGl2ZUVuZ2luZUlkZW50aWZpZXIp
IHsKICAgICAgICAgaWYgKGN1cnJlbnQpCkBAIC0xNjU3LDYgKzE2ODEsMzEgQEAgYm9vbCBNZWRp
YVBsYXllcjo6c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAogICAgIHJldHVybiBj
bGllbnQoKS5tZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCk7CiB9CiAKK2Nv
bnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdAorewor
ICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7Cit9CisKK2NvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckND
Pj4mIE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworfQorCitjb25z
dCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjphcHBs
aWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogewogICAgIG1fcHJpdmF0ZS0+YXBwbGljYXRpb25X
aWxsUmVzaWduQWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAppbmRleCAyZmNkNDJhZjBhYmJlNDIzYzFmZWY3OWFiZTgzOWNiOTVmZjlj
ODcyLi43YzY0ZjRlMGY2OTY0NDkyZmQ4ZDY2NzhkZjQ3Y2JhZmQ5MWQ5NGIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCisj
aW5jbHVkZSAiRm91ckNDLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIKQEAgLTk4LDYg
Kzk5LDExIEBAIHN0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAgICBib29s
IGlzTWVkaWFTb3VyY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNNZWRpYVN0cmVhbSB7IGZhbHNl
IH07CiAgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dl
ZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBhbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+
IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91
ckNDPj4gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAt
MTA3LDM3ICsxMTMsMjYgQEAgc3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgewog
ICAgICAgICBlbmNvZGVyIDw8IGlzTWVkaWFTb3VyY2U7CiAgICAgICAgIGVuY29kZXIgPDwgaXNN
ZWRpYVN0cmVhbTsKICAgICAgICAgZW5jb2RlciA8PCBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQ7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICAgICAg
ZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8
IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNv
ZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxDb250ZW50VHlwZT4gdHlwZTsKLSAgICAgICAg
ZGVjb2RlciA+PiB0eXBlOwotICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiB1cmw7Ci0gICAgICAg
IGRlY29kZXIgPj4gdXJsOwotICAgICAgICBpZiAoIXVybCkKLSAgICAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpc01lZGlhU291cmNl
OwotICAgICAgICBkZWNvZGVyID4+IGlzTWVkaWFTb3VyY2U7Ci0gICAgICAgIGlmICghaXNNZWRp
YVNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rk
OjpvcHRpb25hbDxib29sPiBpc01lZGlhU3RyZWFtOwotICAgICAgICBkZWNvZGVyID4+IGlzTWVk
aWFTdHJlYW07Ci0gICAgICAgIGlmICghaXNNZWRpYVN0cmVhbSkKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29udGVudFR5
cGU+PiB0eXBlc1JlcXVpcmluZ0hhcmR3YXJlOwotICAgICAgICBkZWNvZGVyID4+IHR5cGVzUmVx
dWlyaW5nSGFyZHdhcmU7Ci0gICAgICAgIGlmICghdHlwZXNSZXF1aXJpbmdIYXJkd2FyZSkKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIHt7IFdURk1v
dmUoKnR5cGUpLCBXVEZNb3ZlKCp1cmwpLCAqaXNNZWRpYVNvdXJjZSwgKmlzTWVkaWFTdHJlYW0s
ICp0eXBlc1JlcXVpcmluZ0hhcmR3YXJlIH19OworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy50eXBlKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy51cmwpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzTWVk
aWFTb3VyY2UpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzTWVk
aWFTdHJlYW0pCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpCisg
ICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJh
bWV0ZXJzLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk7CiAgICAgfQogfTsKIApAQCAt
Mjc2LDYgKzI3MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8Q29udGVu
dFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3Vw
cG9ydCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+
JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3Vy
Q0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoKSBjb25zdCA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJC
dWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxh
eWVyU2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogCkBAIC02MzUsNiArNjM2LDEyIEBA
IHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQ2hlY2tI
YXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0OworICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkg
Y29uc3Q7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0OworICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMoKSBjb25zdDsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExv
Z2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKTsKICAgICBjb25zdCB2b2lkKiBtZWRpYVBsYXllckxv
Z0lkZW50aWZpZXIoKSB7IHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCmluZGV4IDYyNjdiODMzMjEyOTliMTNlYTdlZDJhNDA1ZTRjYmI4NWU0NDg4M2IuLmY0
YjM1ZDc2OWQ3Mjc5N2EyZmFkNDVlYjc4MmJkZDI1YzkyNmNkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTMyOSw2ICsz
MjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXROZWVkc1JlbmRlcmluZ01vZGVDaGFuZ2Vk
KCk7CiAgICAgdm9pZCByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogCisgICAgYm9vbCBsb2FkaW5n
TWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdNZXRhZGF0YTsgfQorCiBwcml2YXRl
OgogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4
IGFhY2Q3MzdiOTYzNThjMGY1M2NlMzc3YTU5NjU0MDU2YTljYjIwY2MuLmY0Yjc0YzExYTJmZDIy
NTkwYTkyMTZhNGQ5MTQzNTE5YTBlMjA3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTM1
MCw2ICszNTAsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFk
YXRhPiB2aWRlb0ZyYW1lTWV0YWRhdGEoKSBmaW5hbCB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1f
dmlkZW9GcmFtZU1ldGFkYXRhLCB7IH0pOyB9CiAgICAgdm9pZCBjaGVja05ld1ZpZGVvRnJhbWVN
ZXRhZGF0YSgpOwogCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBhbGxUcmFja3NBcmVQbGF5YWJs
ZSgpIGNvbnN0OworICAgIGJvb2wgdHJhY2tJc1BsYXlhYmxlKEFWQXNzZXRUcmFjayopIGNvbnN0
OworCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8
QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBs
YXllckl0ZW07CkBAIC00NDcsNyArNDUwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FjaGVk
Q2FuUGxheUZhc3RGb3J3YXJkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZh
c3RSZXZlcnNlIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRBc3NldElzTG9h
ZGVkIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRUcmFja3NBcmVMb2FkZWQg
eyBmYWxzZSB9OwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxib29sPiBtX2NhY2hlZEFzc2V0
SXNQbGF5YWJsZTsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRUcmFj
a3NBcmVQbGF5YWJsZTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9z
aG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMgeyBmYWxzZSB9OwogICAgIG11dGFibGUgc3Rk
OjpvcHRpb25hbDxib29sPiBtX3RyYWNrc0FyZVBsYXlhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggNzkwY2YxNzE5OTllNDQxYTA0ZTZiNmY2N2EwN2FhZGM4Mzg2YTQ3ZC4uYmMyZGE4
ZGQxNDVhMzc2Y2FiOWVkMTViMzQ5NWUxZmFkNTNmOTU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC0zOCwxMCArMzgsMTIgQEAKICNpbXBvcnQgIkNETVNlc3Npb25BVkZvdW5kYXRpb25P
YmpDLmgiCiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29sb3JTcGFjZUNHLmgi
CisjaW1wb3J0ICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29va2llLmgiCiAj
aW1wb3J0ICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNpbXBvcnQgIkV4dGVuc2lvbnNH
TC5oIgogI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCisjaW1wb3J0ICJGb3VyQ0MuaCIKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNlc3Npb25W
VC5oIgogI2ltcG9ydCAiSW5iYW5kQ2hhcHRlclRyYWNrUHJpdmF0ZUFWRk9iakMuaCIKQEAgLTY2
LDYgKzY4LDcgQEAKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU291cmNlQnVm
ZmVyUGFyc2VyV2ViTS5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNp
bXBvcnQgIlVUSVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgi
CiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVB
VkZSZXNvdXJjZUxvYWRlci5oIgpAQCAtOTQ4LDYgKzk1MSwzNCBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1
cmwsIFJldAogICAgICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxB
c3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgaWYgKGF1dG8gYWxs
b3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKSkgeworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJy
YXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMpCisgICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6KE5TU3RyaW5n
ICopVVRJRnJvbU1JTUVUeXBlKHR5cGUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5z
VHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleV07
CisgICAgfQorCisgICAgaWYgKGF1dG8gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IHBsYXll
cigpLT5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkpIHsKKyAgICAgICAgYXV0byBuc1R5cGVz
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAo
YXV0byB0eXBlIDogKmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICBbbnNU
eXBlcyBhZGRPYmplY3Q6QCh0eXBlLnZhbHVlKV07CisgICAgICAgIFtvcHRpb25zIHNldE9iamVj
dDpuc1R5cGVzLmdldCgpIGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2RlY1R5cGVz
S2V5XTsKKyAgICB9CisKKyAgICBpZiAoYXV0byBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0g
cGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSkgeworICAgICAgICBhdXRvIG5z
VHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAg
Zm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcykKKyAgICAgICAgICAg
IFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0
T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVj
VHlwZXNLZXldOworICAgIH0KKworICAgIGlmIChhdXRvIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSkgewor
ICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlwZS52YWx1ZSldOwor
ICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6QVZVUkxBc3Nl
dEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5XTsKKyAgICB9CisKICAgICBpZiAod2lsbFVzZVdl
Yk1Gb3JtYXRSZWFkZXIpCiAgICAgICAgIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3Nhcnko
KTsKIApAQCAtMTc4OSw2ICsxODIwLDc2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0QXNzZXQoUmV0YWluUHRyPGlkPiYmIGFzc2V0KQogICAgIHByb2Nlc3ND
aGFwdGVyVHJhY2tzKCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Ym9vbD4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJhY2tzQXJlUGxheWFibGUoKSBjb25zdAoreworICAg
IGlmIChtX2F2UGxheWVySXRlbSkgeworICAgICAgICBmb3IgKEFWUGxheWVySXRlbVRyYWNrICp0
cmFjayBpbiBbbV9hdlBsYXllckl0ZW0gdHJhY2tzXSkgeworICAgICAgICAgICAgaWYgKCF0cmFj
a0lzUGxheWFibGUodHJhY2suYXNzZXRUcmFjaykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYg
KCFtX2F2QXNzZXQgfHwgW21fYXZBc3NldCBzdGF0dXNPZlZhbHVlRm9yS2V5OkAidHJhY2tzIiBl
cnJvcjpOVUxMXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgZm9yIChBVkFzc2V0VHJhY2sgKmFzc2V0VHJhY2sgOiBbbV9hdkFz
c2V0IHRyYWNrc10pIHsKKyAgICAgICAgaWYgKCF0cmFja0lzUGxheWFibGUoYXNzZXRUcmFjaykp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrSXNQbGF5YWJs
ZShBVkFzc2V0VHJhY2sqIHRyYWNrKSBjb25zdAoreworICAgIGlmIChwbGF5ZXIoKS0+c2hvdWxk
Q2hlY2tIYXJkd2FyZVN1cHBvcnQoKSAmJiAhYXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNvZGVS
ZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBkZXNj
cmlwdGlvbiA9IHJldGFpblB0cigoX19icmlkZ2UgQ01Gb3JtYXREZXNjcmlwdGlvblJlZil0cmFj
ay5mb3JtYXREZXNjcmlwdGlvbnMuZmlyc3RPYmplY3QpOworICAgIGlmICghZGVzY3JpcHRpb24p
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gY29kZWNUeXBlID0gRm91ckNDIHsg
UEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFTdWJUeXBlKGRlc2NyaXB0aW9uLmdldCgp
KSB9OworICAgIHN3aXRjaCAoUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGRl
c2NyaXB0aW9uLmdldCgpKSkgeworICAgIGNhc2Uga0NNTWVkaWFUeXBlX1ZpZGVvOiB7CisgICAg
ICAgIGF1dG8mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcygpOworICAgICAgICBpZiAoYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cyAmJiAhYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcy0+Y29udGFpbnMoY29kZWNUeXBlKSkgewor
ICAgICAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJWaWRlbyB0cmFjayB3aXRoIGNv
ZGVjIHR5cGUgJyIsIGNvZGVjVHlwZSwgIicgbm90IGNvbnRhaW5lZCBpbiBhbGxvd2VkIGNvZGVj
IGxpc3Q7IGJsb2NraW5nIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2Uga0NNTWVkaWFUeXBlX0F1ZGlv
OiB7CisgICAgICAgIGF1dG8mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBwbGF5ZXIoKS0+
YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgICAgICBpZiAoYWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcyAmJiAhYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcy0+Y29udGFpbnMoY29kZWNU
eXBlKSkgeworICAgICAgICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJBdWRpbyB0cmFj
ayB3aXRoIGNvZGVjIHR5cGUgJyIsIGNvZGVjVHlwZSwgIicgbm90IGNvbnRhaW5lZCBpbiBhbGxv
d2VkIGNvZGVjIGxpc3Q7IGJsb2NraW5nIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2Uga0NNTWVkaWFU
eXBlX1RleHQ6CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfQ2xvc2VkQ2FwdGlvbjoKKyAgICBjYXNl
IGtDTU1lZGlhVHlwZV9TdWJ0aXRsZTogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFDYXB0
aW9uRm9ybWF0VHlwZXMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
KCk7CisgICAgICAgIGlmIChhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgJiYgIWFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcy0+Y29udGFpbnMoY29kZWNUeXBlKSkgeworICAgICAg
ICAgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJUZXh0IHRyYWNrIHdpdGggY29kZWMgdHlw
ZSAnIiwgY29kZWNUeXBlLCAiJyBub3QgY29udGFpbmVkIGluIGFsbG93ZWQgY29kZWMgbGlzdDsg
YmxvY2tpbmciKTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfTXV4ZWQ6CisgICAg
Y2FzZSBrQ01NZWRpYVR5cGVfVGltZUNvZGU6CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfTWV0YWRh
dGE6CisgICAgICAgIC8vIE5vLW9wCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IC8vIE5vdGU6IHRoZSBDTU1lZGlhVHlwZSBlbnVtIG1heSBub3QgYmUgZXhjbHVzaXZlLgorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB0cnVlOworfQorCiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3RhdHVzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fYXZBc3NldCkK
QEAgLTE4MTQsMjMgKzE5MTUsMjEgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpB
c3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjoKICAgICAgICAg
bV9jYWNoZWRBc3NldElzTG9hZGVkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIXBsYXllcigp
LT5zaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpKQotICAgICAgICBtX3RyYWNrc0FyZVBsYXlh
YmxlID0gdHJ1ZTsKKyAgICAvLyBtX2xvYWRpbmdNZXRhZGF0YSB3aWxsIGJlIGZhbHNlIHVudGls
IGFsbCB0cmFja3MnIHByb3BlcnRpZXMgaGF2ZSBmaW5pc2hlZCBsb2FkaW5nLgorICAgIC8vIFNl
ZTogYmVnaW5Mb2FkaW5nTWV0YWRhdGEoKS4KKyAgICBpZiAobG9hZGluZ01ldGFkYXRhKCkpCisg
ICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkaW5nOwogCi0gICAgaWYg
KCFtX3RyYWNrc0FyZVBsYXlhYmxlKSB7Ci0gICAgICAgIG1fdHJhY2tzQXJlUGxheWFibGUgPSB0
cnVlOwotICAgICAgICBmb3IgKEFWQXNzZXRUcmFjayAqdHJhY2sgaW4gW21fYXZBc3NldCB0cmFj
a3NdKSB7Ci0gICAgICAgICAgICBpZiAoIWFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVx
dWlyZW1lbnRzKHRyYWNrLCBwbGF5ZXIoKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKSkpIHsKLSAgICAgICAgICAgICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
KyAgICBpZiAoIW1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUpIHsKKyAgICAgICAgbV9jYWNoZWRU
cmFja3NBcmVQbGF5YWJsZSA9IGFsbFRyYWNrc0FyZVBsYXlhYmxlKCk7CisgICAgICAgIGlmICgh
bV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXll
ckFWQXNzZXRTdGF0dXNMb2FkaW5nOwogICAgIH0KIAogICAgIGlmICghbV9jYWNoZWRBc3NldElz
UGxheWFibGUpCiAgICAgICAgIG1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlID0gW1ttX2F2QXNzZXQg
dmFsdWVGb3JLZXk6QCJwbGF5YWJsZSJdIGJvb2xWYWx1ZV07CiAKLSAgICBpZiAoKm1fY2FjaGVk
QXNzZXRJc1BsYXlhYmxlICYmIG1fdHJhY2tzQXJlUGxheWFibGUudmFsdWUoKSkKKyAgICBpZiAo
Km1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlICYmICptX2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxlKQog
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzUGxheWFibGU7CiAKICAgICBy
ZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGVkOwpAQCAtMTkzNSw2ICsyMDM0LDkg
QEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2QKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlmCiAKKyAgICBpZiAoIWNvbnRlbnRU
eXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBl
LCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLCBwYXJhbWV0ZXJzLmFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMpKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKICAgICBhdXRvIHN1cHBvcnRlZCA9IEFWQXNzZXRNSU1F
VHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBlKHBhcmFtZXRlcnMudHlwZS5yYXco
KSk7CiAgICAgaWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1
cHBvcnRlZCkKICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZDsKQEAgLTM3NTAsNyArMzg1Miw3IEBA
IE5TQXJyYXkqIGl0ZW1LVk9Qcm9wZXJ0aWVzKCkKIAogTlNBcnJheSogYXNzZXRUcmFja01ldGFk
YXRhS2V5TmFtZXMoKQogewotICAgIHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tOU0FycmF5IGFs
bG9jXSBpbml0V2l0aE9iamVjdHM6QCJ0b3RhbFNhbXBsZURhdGFMZW5ndGgiLCBAIm1lZGlhVHlw
ZSIsIEAiZW5hYmxlZCIsIEAicHJlZmVycmVkVHJhbnNmb3JtIiwgQCJuYXR1cmFsU2l6ZSIsIG5p
bF07CisgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRo
T2JqZWN0czpAInRvdGFsU2FtcGxlRGF0YUxlbmd0aCIsIEAibWVkaWFUeXBlIiwgQCJlbmFibGVk
IiwgQCJwcmVmZXJyZWRUcmFuc2Zvcm0iLCBAIm5hdHVyYWxTaXplIiwgQCJmb3JtYXREZXNjcmlw
dGlvbnMiLCBuaWxdOwogICAgIHJldHVybiBrZXlzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA1ZGE5MWVlMGVhYjRmZGZmOTIxZmM2Nzg3
YWEyMzQ0Y2QxY2Y0ZjE4Li4xNDJmYWYwNmVkYTRmMTlkZDc0ZDYwODQxZDdiZTQ1OGMyODcwODFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTU4
OCw2ICs1ODgsNDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVm
YXVsdEF1ZGlvQ29udGV4dFNhbXBsZVJhdGUoZmxvYXQgc2FtcGwKICAgICByZXR1cm4geyB9Owog
fQogCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9w
YWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHR5cGVzKTsKKyAg
ICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYg
KCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyh0eXBl
cyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0
aW5nczo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQor
eworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHModHlwZXMpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3Ry
aW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNl
cHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9y
bWF0VHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+
c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXModHlwZXMpOworICAg
IHJldHVybiB7IH07Cit9CisKKworCiAvLyBJZiB5b3UgYWRkIHRvIHRoaXMgY2xhc3MsIG1ha2Ug
c3VyZSB5b3UgYXJlIG5vdCBkdXBsaWNhdGluZyBmdW5jdGlvbmFsaXR5IGluIHRoZSBnZW5lcmF0
ZWQKIC8vIGJhc2UgY2xhc3MgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCBhbmQgdGhhdCB5b3Ug
dXBkYXRlIHRoZSBCYWNrdXAgY2xhc3MgZm9yIHRlc3QgcmVwcm9kdWNhYmlsaXR5LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGYxYTdlMjIxMTIwZTcx
YTk2OTkxYjMyMzNhMzg1NDMwMzE4OWQ1YjAuLmZiOTRjZTdkZGJlZjNiYzU1YmIzNzYzMWFlZGUx
NmMzZTE1MmU3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CkBAIC0xMjIsNiArMTIyLDEyIEBAIHB1YmxpYzoKICAgICAvLyBBdWRpb0NvbnRleHQKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXREZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCk7
CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhj
b25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb2Rl
Y1R5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5n
Jik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGJiNmI4
ZjUyMTEyZGQ5OTRjYzZiNzc4MzIzMTE5OGU1OTI4YmZjMWUuLmJjNDAxOTUwYTk0NzI4Njk3OGMw
MDhhZmViNjFmNDkwZjhhZGNhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbApAQCAtOTUsNCArOTUsMTAgQEAgZW51bSBVc2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5IHsgIkNvbnRlbnQiLCAiU3lzdGVtIiB9OwogCiAgICAgLy8gQXVkaW9Db250ZXh0
CiAgICAgdW5kZWZpbmVkIHNldERlZmF1bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZsb2F0IHNh
bXBsZVJhdGUpOworCisgICAgdW5kZWZpbmVkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVk
aWFBdWRpb0NvZGVjSURzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoRE9NU3RyaW5nPyB0eXBlcyk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggM2Q5ZTAyZTAxOGRkMTE2NDJiYjU2YTMzZmJjZTk1OTgwNWE5NDNlNy4uNTk1
YzU4OTE5ZWExM2ZlYjk1ZDhmYzBkMGI0MzIzMDY4YTgyYTBiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC03Niw2ICs3Niw4IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgTWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ7CiAjZW5kaWYKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOworCitz
dHJ1Y3QgRm91ckNDOwogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTI5Myw2ICsyOTUs
MTIgQEAgcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZp
bmFsOwogCisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9u
LmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOyB9OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7IH07CisgICAgY29u
c3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOyB9Owor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3Vy
YXRpb24uYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOyB9OworCiAgICAgdm9pZCBzdGFy
dFVwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRT
dGF0ZShib29sID0gZmFsc2UpOwogICAgIHZvaWQgc2VuZENhY2hlZFN0YXRlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCmluZGV4IDRhY2I0MGUyYzA5ZWM3NWNlOWVl
YmI3MzFlMWRkMWM5YzYzMjE1MGYuLjRmZDY2MWI3ZDA2NzBkYzUwZDFjNzhhZGI1ZjhiYWYyOTYy
ZWUxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50VHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm91ckNDLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybVRleHRUcmFjay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MCw2ICs0MSwx
MiBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gewogICAgIFN0
cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7CiAgICAgU3RyaW5nIG5ldHdvcmtJbnRl
cmZhY2VOYW1lOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOworCiAgICAgVmVjdG9yPFN0cmluZz4gcHJlZmVy
cmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICBW
ZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2tEYXRhPiBvdXRPZkJhbmRUcmFja0RhdGE7
CkBAIC01OCw2ICs2NSwxMSBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3Vy
YXRpb24gewogICAgICAgICBlbmNvZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsK
ICAgICAgICAgZW5jb2RlciA8PCBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKICAgICAgICAgZW5jb2Rl
ciA8PCBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICAgICAg
ZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsKKyAgICAgICAgZW5jb2RlciA8
PCBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7
CiAgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYg
RU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICAgICAgZW5jb2RlciA8PCBvdXRPZkJhbmRUcmFja0Rh
dGE7CkBAIC03MCw4NiArODIsMjcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHJlZmVycmVyOwotICAg
ICAgICBkZWNvZGVyID4+IHJlZmVycmVyOwotICAgICAgICBpZiAoIXJlZmVycmVyKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gdXNlckFnZW50OwotICAgICAgICBkZWNvZGVyID4+IHVzZXJBZ2VudDsKLSAgICAgICAgaWYg
KCF1c2VyQWdlbnQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7Ci0gICAg
ICAgIGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwotICAgICAgICBpZiAo
IXNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5ldHdvcmtJbnRlcmZhY2VO
YW1lOwotICAgICAgICBkZWNvZGVyID4+IG5ldHdvcmtJbnRlcmZhY2VOYW1lOwotICAgICAgICBp
ZiAoIW5ldHdvcmtJbnRlcmZhY2VOYW1lKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4+
IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAgICBkZWNv
ZGVyID4+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAg
ICBpZiAoIW1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgZGVjb2Rl
ciA+PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgaWYgKCFwcmVmZXJy
ZWRBdWRpb0NoYXJhY3RlcmlzdGljcykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxXZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFja0RhdGE+PiBvdXRPZkJhbmRUcmFja0RhdGE7Ci0g
ICAgICAgIGRlY29kZXIgPj4gb3V0T2ZCYW5kVHJhY2tEYXRhOwotICAgICAgICBpZiAoIW91dE9m
QmFuZFRyYWNrRGF0YSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYK
LQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZG9j
dW1lbnRTZWN1cml0eU9yaWdpbjsKLSAgICAgICAgZGVjb2RlciA+PiBkb2N1bWVudFNlY3VyaXR5
T3JpZ2luOwotICAgICAgICBpZiAoIWRvY3VtZW50U2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IGxvZ0lkZW50aWZpZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gbG9nSWRlbnRpZmllcjsKLSAgICAg
ICAgaWYgKCFsb2dJZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsK
LSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Ci0gICAgICAgIGlm
ICghc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzVmlkZW87Ci0gICAgICAgIGRl
Y29kZXIgPj4gaXNWaWRlbzsKLSAgICAgICAgaWYgKCFpc1ZpZGVvKQotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlbmRlcmlu
Z0NhbkJlQWNjZWxlcmF0ZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nQ2FuQmVBY2Nl
bGVyYXRlZDsKLSAgICAgICAgaWYgKCFyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICByZXR1cm4ge3sKLSAgICAgICAg
ICAgIFdURk1vdmUoKnJlZmVycmVyKSwKLSAgICAgICAgICAgIFdURk1vdmUoKnVzZXJBZ2VudCks
Ci0gICAgICAgICAgICBXVEZNb3ZlKCpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpLAotICAg
ICAgICAgICAgV1RGTW92ZSgqbmV0d29ya0ludGVyZmFjZU5hbWUpLAotICAgICAgICAgICAgV1RG
TW92ZSgqbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpLAotICAgICAg
ICAgICAgV1RGTW92ZSgqcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpLAorICAgICAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5yZWZlcnJlcikKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udXNlckFnZW50KQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZp
ZXIpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm5ldHdvcmtJ
bnRlcmZhY2VOYW1lKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0
aW9uLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucHJl
ZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAg
ICAgICAgICAgIFdURk1vdmUoKm91dE9mQmFuZFRyYWNrRGF0YSksCisgICAgICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm91dE9mQmFuZFRyYWNrRGF0YSkKICNlbmRpZgot
ICAgICAgICAgICAgV1RGTW92ZSgqZG9jdW1lbnRTZWN1cml0eU9yaWdpbiksCi0gICAgICAgICAg
ICAqbG9nSWRlbnRpZmllciwKLSAgICAgICAgICAgICpzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUs
Ci0gICAgICAgICAgICAqaXNWaWRlbywKLSAgICAgICAgICAgICpyZW5kZXJpbmdDYW5CZUFjY2Vs
ZXJhdGVkLAotICAgICAgICB9fTsKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZp
Z3VyYXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24ubG9nSWRlbnRpZmllcikKKyAgICAgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQorICAgICAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5pc1ZpZGVvKQorICAgICAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5yZW5kZXJpbmdDYW5CZUFjY2VsZXJh
dGVkKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJLaXRTd2lmdC54Y3NjaGVtZSBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1dlYktpdFN3
aWZ0Lnhjc2NoZW1lCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZWE0MjI4OWNmYTA0NWU5Nzk1ZDdmODdmNjg4MDFl
NDBhNDg1OGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJLaXRTd2lmdC54Y3NjaGVtZQpAQCAtMCwwICsx
LDcwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPFNjaGVtZQor
ICAgTGFzdFVwZ3JhZGVWZXJzaW9uID0gIjEzMjAiCisgICB2ZXJzaW9uID0gIjEuNyI+CisgICA8
QnVpbGRBY3Rpb24KKyAgICAgIHBhcmFsbGVsaXplQnVpbGRhYmxlcyA9ICJZRVMiCisgICAgICBi
dWlsZEltcGxpY2l0RGVwZW5kZW5jaWVzID0gIllFUyI+CisgICAgICA8QnVpbGRBY3Rpb25FbnRy
aWVzPgorICAgICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKKyAgICAgICAgICAgIGJ1aWxkRm9yVGVz
dGluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvclJ1bm5pbmcgPSAiWUVTIgorICAgICAg
ICAgICAgYnVpbGRGb3JQcm9maWxpbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBcmNo
aXZpbmcgPSAiWUVTIgorICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KKyAg
ICAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlk
ZW50aWZpZXIgPSAicHJpbWFyeSIKKyAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIg
PSAiQ0Q5NTQ5MzQyNjE1OTAwNDAwODM3MkQ5IgorICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFt
ZSA9ICJsaWJXZWJLaXRTd2lmdC5keWxpYiIKKyAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUg
PSAiV2ViS2l0U3dpZnQiCisgICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNv
bnRhaW5lcjpXZWJLaXQueGNvZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJl
bmNlPgorICAgICAgICAgPC9CdWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVu
dHJpZXM+CisgICA8L0J1aWxkQWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29u
ZmlndXJhdGlvbiA9ICJEZWJ1ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0g
Ilhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRM
YXVuY2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxM
REIiCisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8
VGVzdGFibGVzPgorICAgICAgPC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1
bmNoQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxl
Y3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdn
ZXIuTExEQiIKKyAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVn
Z2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAg
ICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lz
dGVudFN0YXRlT25MYXVuY2ggPSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9
ICJZRVMiCisgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBh
bGxvd0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgPC9MYXVuY2hBY3Rpb24+CisgICA8
UHJvZmlsZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAg
ICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyIKKyAgICAgIHNhdmVkVG9vbElk
ZW50aWZpZXIgPSAiIgorICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAg
ICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyI+CisgICAgICA8TWFjcm9FeHBhbnNp
b24+CisgICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBCdWlsZGFibGVJ
ZGVudGlmaWVyID0gInByaW1hcnkiCisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0g
IkNEOTU0OTM0MjYxNTkwMDQwMDgzNzJEOSIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAi
bGliV2ViS2l0U3dpZnQuZHlsaWIiCisgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIldlYktp
dFN3aWZ0IgorICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6V2Vi
S2l0Lnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgIDwv
TWFjcm9FeHBhbnNpb24+CisgICA8L1Byb2ZpbGVBY3Rpb24+CisgICA8QW5hbHl6ZUFjdGlvbgor
ICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIj4KKyAgIDwvQW5hbHl6ZUFjdGlvbj4K
KyAgIDxBcmNoaXZlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIK
KyAgICAgIHJldmVhbEFyY2hpdmVJbk9yZ2FuaXplciA9ICJZRVMiPgorICAgPC9BcmNoaXZlQWN0
aW9uPgorICAgPEluc3RhbGxBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxl
YXNlIj4KKyAgIDwvSW5zdGFsbEFjdGlvbj4KKzwvU2NoZW1lPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwCmluZGV4IDU4ZmMxZTRlZTI1NWVkNTgzMGM5OTZkZmU2OGJmMmFiZDM1M2VhZjgu
LjdjOWQ0NTY5YTRlNTBiMDcxM2E3N2E4YjRhYzI0MGZhZTQ2ZGRkMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nv
bnRlbnRUeXBlVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTE2Niw2ICsxNjcsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAgICBhdXRvIGRv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gPSBwbGF5ZXItPmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsK
ICAgICBwcm94eUNvbmZpZ3VyYXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50
U2VjdXJpdHlPcmlnaW47CiAKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7CisgICAg
cHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBwbGF5ZXItPmFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpOworICAg
IHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyLT5h
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKCk7CisKICAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllcklkZW50aWZp
ZXI6OmdlbmVyYXRlKCk7CiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlh
UGxheWVyKGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJh
dGlvbiksIDApOwogCkBAIC0yMDIsNiArMjA5LDEwIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQ
CiAgICAgaWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkKICAgICAgICAgcmV0dXJuIE1lZGlh
UGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlmCisKKyAgICBpZiAo
IWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMocGFyYW1l
dGVycy50eXBlLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLCBwYXJhbWV0
ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKICAgICByZXR1cm4gdHlwZUNhY2hlKHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIpLnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0ZXJzKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCA2NTQ4NTA3ODY5Y2VhZjUwZDE4N2VkNjkzZTZkOTE3ZDIzZmQwMGY5Li5iODVkMGYxZjdlNGVk
NzIzMmUzYzgxOGRhMjRhMTVmZjMxZGU3ZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDExMCw2ICs0MTEwLDEyIEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAg
ICAgICAgIHNldHRpbmdzLnNldE1hdGhNTEVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCiAgICAgICAg
IHNldHRpbmdzLnNldFBkZkpTVmlld2VyRW5hYmxlZCh0cnVlKTsKKworICAgICAgICBzZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb250YWluZXJUeXBlc0FsbG93ZWRXaGVuQ2FwdGl2
ZVBvcnRhbE1vZGVFbmFibGVkS2V5KCkpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhQ29kZWNUeXBlcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6bWVkaWFDb2RlY1R5cGVzQWxsb3dlZFdoZW5DYXB0aXZlUG9ydGFsTW9kZUVuYWJsZWRLZXko
KSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKHN0b3Jl
LmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVZpZGVvQ29kZWNJ
RHNBbGxvd2VkV2hlbkNhcHRpdmVQb3J0YWxNb2RlRW5hYmxlZEtleSgpKSk7CisgICAgICAgIHNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhQXVkaW9Db2RlY0lEc0FsbG93ZWRXaGVuQ2Fw
dGl2ZVBvcnRhbE1vZGVFbmFibGVkS2V5KCkpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjptZWRpYUNhcHRpb25Gb3JtYXRUeXBlc0FsbG93ZWRXaGVuQ2FwdGl2ZVBv
cnRhbE1vZGVFbmFibGVkS2V5KCkpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5F
X1BSRVZJRVcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMzZkZmU0M2IwMGY4NDg0NmNiNzMxZDYxZjk4MGJlMjViNzc3M2My
MC4uNzExYjdjN2E5M2Y5OTlhODIyZTVmYjZhMzQ0ZjY5OTg2NTI3YTRhZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWluZXJzIGFuZCBj
b2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3Mu
aHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWlu
ZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbDogQWRkZWQuCisKIDIwMjItMDEtMjUgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSByVkZDKCkg
Y2FsbGJhY2tzIGhhdmUgdXAgdG8gNjBtcyBleHRyYSBsYXRlbmN5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjUwZDUzOWEyZjkwNjNhYTJjNWNhMDkzNzQ4NzRmNzFlNGRiZWJlMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMzIEBACitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMobnVsbCkpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMobnVsbCkpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMobnVsbCkpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVv
L21wNDsgY29kZWNzPWF2YzEiKSA9PSAncHJvYmFibHknKSBPSworRVhQRUNURUQgKHZpZGVvLmNh
blBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ3Byb2JhYmx5JykgT0sKK1JV
Tih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChjYW5wbGF5KSBPSworUlVO
KGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIikp
CitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFh
YyAiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygi
YXZjMSxtcDRhLjQwIikpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsg
Y29kZWNzPWF2YzEiKSA9PSAncHJvYmFibHknKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJycpIE9LCitSVU4odmlkZW8uc3JjID0g
ImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2FucGxheSkgT0sKK1JVTihpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpKQorUlVOKGludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIikpCitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoInZwMDksb3B1cyIpKQor
RVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikgPT0g
JycpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1w
NHYiKSA9PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVO
VChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygiYXZjMSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKCJvcHVzIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMoImF2YzEsb3B1cyIpKQorUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rl
c3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxtcDRhLjQwIikpCitSVU4odmlkZW8u
c3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3IpIE9LCitFTkQgT0YgVEVTVAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MWM3YmM1MDE5MmY0YmI4OWM4MGVhZGNmMzY3ZDFkNGFiYjBlOGJiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbApAQCAtMCww
ICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1l
ZGlhLWFsbG93ZWQtY29kZWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51bGwpJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMobnVsbCknKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhudWxs
KScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7
IGNvZGVjcz1hdmMxIiknLCAncHJvYmFibHknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRl
by5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgJ3Byb2JhYmx5Jyk7Cisg
ICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3
YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdh
aXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpJyk7CisgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScp
OworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKCJhdmMxLG1wNGEuNDAiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBs
YXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCAncHJvYmFibHknKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIp
JywgJycpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOwor
ICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnY2Fu
cGxheScpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2Vycm9yJyldKTsKKworICAgICAgICB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScpOworICAg
ICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
KCJvcHVzIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRl
by5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgJycpOworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2Iikn
LCAnJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7Cisg
ICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdlcnJv
cicpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2NhbnBsYXknKV0pOworCisgICAgICAgIHZpZGVv
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpJyk7CisgICAg
ICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMo
Im9wdXMiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCJhdmMxLG9wdXMiKScpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJj
b250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JB
bmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdjYW5wbGF5
JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoInZwMDkiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxtcDRhLjQwIiknKTsKKyAg
ICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdh
aXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9yJyksIHdhaXRG
b3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAg
IH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk4YjA1
Yzg5MzMzMDRhMjAxOWMzZTQwYTE3NDQwZWU3ODA4YWVjYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyhudWxsKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgiYXVkaW8vbXAz
IikgPT0gJ21heWJlJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0
IikgPT0gJ21heWJlJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitF
VkVOVChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJh
dWRpby9tcDMiKSA9PSAnbWF5YmUnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2
aWRlby9tcDQiKSA9PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIp
CitFVkVOVChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMoInZpZGVvL21wNCIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBl
KCJhdWRpby9tcDMiKSA9PSAnJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlk
ZW8vbXA0IikgPT0gJ21heWJlJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1w
NCIpCitFVkVOVChlcnJvcikgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmZjJkOTk2YzM1
NTNhMTM0ZWEzYjYzNzU2MTQwMTRjMDdhNGJlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtYWxsb3dl
ZC1jb250YWluZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICdtYXliZScpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKScsICdtYXliZScpOworICAgICAg
ICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQ
cm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnY2FucGxheScpLCB3YWl0Rm9y
QW5kRmFpbCh2aWRlbywgJ2Vycm9yJyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJhdWRpby9tcDMiKScpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICdtYXliZScpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKScsICcnKTsK
KyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAg
YXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9yJyksIHdh
aXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IiknKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgiYXVkaW8vbXAzIiknLCAnJyk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21h
eWJlJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7Cisg
ICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5w
bGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIGVuZFRl
c3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxv
d2VkLWNvZGVjcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI1Y2MzYmQ2Y2UwODdjMjAyMGVj
OWY4ZjFmY2IwNWUxOWQwMjMyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTggQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcyhudWxsKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQo
InZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoTWVkaWFT
b3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ3RydWUn
KSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
KCJhdmMxIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoImFhYyAiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcygiYXZjMSxtcDRhLjQwIikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3Vw
cG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikgPT0gJ3RydWUnKSBPSworRVhQRUNURUQg
KE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpID09
ICdmYWxzZScpIE9LCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9IG1lZGlh
U291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpKQorVEVTVChz
b3VyY2VCdWZmZXIuY2hhbmdlVHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpKSBUSFJPV1Mo
Ik5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIikgT0sK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAw
OSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
KCJvcHVzIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlw
ZXMoInZwMDksb3B1cyIpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgi
dmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICdmYWxzZScpIE9LCitURVNUKG1lZGlhU291cmNl
LmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpKSBUSFJPV1MoIk5vdFN1
cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIikgT0sKK0VORCBP
RiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTdhNTA0
YTVmMjIxOTVkZDM4ZjdkODllZGI2NmFlMDk4ODU0ZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5o
dG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8dGl0bGU+bWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVyczwvdGl0bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAg
IGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1JlcXVpcmVz
IHdpbmRvdy5pbnRlcm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKworICAgICAg
ICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51
bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVk
KCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScs
IHRydWUpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAgcnVuKCdp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxtcDRhLjQw
IiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRl
ZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2Iikn
LCBmYWxzZSk7CisKKyAgICAgICAgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAg
ICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTb3VyY2U7CisgICAgICAgIGF3YWl0IHdhaXRG
b3IobWVkaWFTb3VyY2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZm
ZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21wNDsgY29kZWNzPWF2YzEi
KScpOworICAgICAgICB0ZXN0RXhjZXB0aW9uKCdzb3VyY2VCdWZmZXIuY2hhbmdlVHlwZSgidmlk
ZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlv
biBpcyBub3Qgc3VwcG9ydGVkLiInKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IiknKTsKKyAgICAgICAgcnVuKCdp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlw
ZXMoInZwMDksb3B1cyIpJyk7CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5p
c1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsIGZhbHNlKTsKKworICAg
ICAgICB0ZXN0RXhjZXB0aW9uKCdtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21w
NDsgY29kZWNzPWF2YzEiKScsICciTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMg
bm90IHN1cHBvcnRlZC4iJyk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZTk2NjlmYjhiZDI5ODE3OWNlZWRhYjJjN2FmNGIzYmIw
OTMxZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KG51bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0
IikgPT0gJ3RydWUnKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcygidmlkZW8vbXA0IikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBl
U3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIikpCitFWFBFQ1RF
RCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAnZmFsc2UnKSBP
SworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjM0OWEyOWE2NzkzMTZkNmY3NmJjMWIxZjIzY2RhNzQ1YTVlZDkzMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
YWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWlu
ZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5j
IGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAg
ICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxs
b3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVsbCknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdN
ZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpJywgdHJ1ZSk7CisKKyAgICAg
ICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4o
J2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8v
bXA0IiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0
ZWQoInZpZGVvL21wNCIpJywgdHJ1ZSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vd2VibSIpJyk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKScsIGZhbHNl
KTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzIGIvTGF5b3V0VGVzdHMv
bWVkaWEvdmlkZW8tdGVzdC5qcwppbmRleCBhM2I2Y2I3YzMxNzJmMDExNzMyZGQ5OTlhYWY3YjQ0
MzY1YzZkYjVlLi4zYzA2N2UwZjlkNzUzMDE1YzlhMzYyOTQ0ZTc1YTM2NmRlZTc4NDgyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXRlc3QuanMKQEAgLTIxNywxNiArMjE3LDMyIEBAIGZ1bmN0aW9uIHdhaXRG
b3JFdmVudFdpdGhUaW1lb3V0KGVsZW1lbnQsIHR5cGUsIHRpbWUsIG1lc3NhZ2UpIHsKICAgICB9
KTsKIH0KIAotZnVuY3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBzaWxlbnQpIHsKK2Z1bmN0
aW9uIHdhaXRGb3IoZWxlbWVudCwgdHlwZSwgc2lsZW50LCBzdWNjZXNzKSB7CiAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIodHlwZSwgZXZlbnQgPT4gewotICAgICAgICAgICAgaWYgKCFzaWxlbnQpCisgICAgICAgICAg
ICBpZiAoc2lsZW50KSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3VjY2Vz
cyAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIGxvZ1Jlc3VsdChzdWNjZXNzLCBgRVZF
TlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAgICAKICAgICAg
ICAgICAgIHJlc29sdmUoZXZlbnQpOwogICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CiAgICAg
fSk7CiB9CiAKK2Z1bmN0aW9uIHdhaXRGb3JBbmRTdWNjZWVkKGVsZW1lbnQsIHR5cGUpIHsKKyAg
ICByZXR1cm4gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK2Z1bmN0
aW9uIHdhaXRGb3JBbmRGYWlsKGVsZW1lbnQsIHR5cGUpIHsKKyAgICByZXR1cm4gd2FpdEZvcihl
bGVtZW50LCB0eXBlLCBmYWxzZSwgdHJ1ZSk7Cit9CisKIGZ1bmN0aW9uIHdhaXRGb3JFdmVudE9u
Y2UoZXZlbnROYW1lLCBmdW5jLCBlbmRpdCkKIHsKICAgICB3YWl0Rm9yRXZlbnQoZXZlbnROYW1l
LCBmdW5jLCBlbmRpdCwgdHJ1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451255</attachid>
            <date>2022-02-08 08:52:21 -0800</date>
            <delta_ts>2022-02-08 10:12:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236245-20220208085220.patch</filename>
            <type>text/plain</type>
            <size>88442</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEyMTEzZTRhNGI3Njc5YjczNjgxYjRl
ZWIxOWJlMGNlMjMzYWNjNTMuLmY0YjdiNDhlOWI4MTVkY2ZmNjY1NGRiYmQ3NjBiYTFjZjg4YmZm
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xMzIsNiArMTMyLDE1IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU4NTYKICAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtp
dC5vcmcvcjI4ODkwMgogCisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWluZXJz
IGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0wMiAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgaW4gVHJhaWxpbmdB
cnJheS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZTU1N2RhMjc0YTkzZDU1NzM2MWM2ZDg3NDhlZTNlMDM2NzYz
NmU4Ny4uMDhhYjlhYmYwOGYyM2FlNzJhZDFkYmI1M2RkNTUxNmMzNDIwNDNkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMi0wMi0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3MgdG8gcmVzdHJpY3QgbWVkaWEgY29udGFp
bmVycyBhbmQgY29kZWNzIHdoZW4gaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21lZGlhLWFs
bG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLWFsbG93ZWQtY29u
dGFpbmVycy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKKworICAgICAgICBBZGQgc2V0
dGluZ3MgYXQgdGhlIFdlYkNvcmUgbGV2ZWwgdG8gb3B0aW9uYWxseSBkZWNsYXJlIGEgbGlzdCBv
ZiBjb250YWluZXIgdHlwZXMsCisgICAgICAgIHZpZGVvIGNvZGVjcywgYXVkaW8gY29kZWNzLCBh
bmQgY2FwdGlvbiBmb3JtYXRzIHRvIGFsbG93IHdoZW4gbG9hZGluZyBtZWRpYSB0aHJvdWdoCisg
ICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYW5kIE1lZGlhU291cmNlLgorCisgICAgICAgIFRoZXJl
IGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoZSBjb2RlYyBJRCwgdHlwaWNhbGx5IGEgZm91ci1jaGFy
YWN0ZXItY29kZSBlbWJlZGRlZAorICAgICAgICBpbiB0aGUgY29udGFpbmVyIGl0c2VsZiwgZG9l
cyBub3QgbWF0Y2ggdGhlIFJGQzQyODEgY29kZWMgc3RyaW5nLiBOb3RhYmx5LCB0aGlzIGlzIHRo
ZSBjYXNlCisgICAgICAgIHdpdGggIm1wNGEuNDAiIGFuZCAnYWFjICcuIFNvIHRoZSBzZXR0aW5n
cyBtdXN0IGluY2x1ZGUgYm90aCB0aGUgY29kZWMgSUQgYW5kIHRoZSBjb2RlYworICAgICAgICB0
eXBlIGluIHN0cmluZyBmb3JtLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCkgYW5kIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0
ZWQoKQorICAgICAgICBhbmQgcmVqZWN0IENvbnRlbnRUeXBlcyB3aGljaCBkbyBub3QgY29uZm9y
bSB0byB0aGUgYWxsb3dlZCB0eXBlcy4KKworICAgICAgICBRdWVyeSB0aGVzZSBsaXN0cyBpbiBN
ZWRpYVNvdXJjZTo6Y2hhbmdlVHlwZSgpIHRvIGRpc2FsbG93IHN3aXRjaGluZyB0byBhbiB1bnN1
cHBvcnRlZAorICAgICAgICBDb250ZW50VHlwZS4KKyAgICAgICAgCisgICAgICAgIElmIHRoZXNl
IGxpc3RzIGFyZSBzZXQsIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgYXMgY3JlYXRpb24gb3B0
aW9ucy4KKworICAgICAgICBXaGVuIGEgbmV3IEFWQXNzZXRUcmFjayBpcyBsb2FkZWQsIHF1ZXJ5
IHRoZXNlIGxpc3RzIGFuZCBpZiB0aGUgdHJhY2sncyB0eXBlIGRvZXMgbm90CisgICAgICAgIGNv
bmZvcm0gdG8gdGhlIGFsbG93ZWQgdHlwZXMsIHN5bnRoZXNpemUgYW4gZXJyb3IgYW5kIGJsb2Nr
IGZ1cnRoZXIgbG9hZGluZy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRl
ZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjphbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6
OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29udGVudFR5cGVVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
bnRUeXBlc1RvQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUeXBlTWVldHNDb250
YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRpb25h
bFN0cmluZ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpudWxsT3B0aW9uYWxGb3VyQ0NWZWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5leHRCZXN0TWVkaWFFbmdpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFW
aWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjps
b2FkaW5nTWV0YWRhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRlbnRUeXBlc1RvQ29kZWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJh
Y2tzQXJlUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tJc1BsYXlhYmxlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjphc3NldFRyYWNr
TWV0YWRhdGFLZXlOYW1lcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNl
dHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDIyLTAyLTAzICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRvcHQgLXN0cmVhbURhdGFQYXJzZXI6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlTcGVjaWZpZXI6Zm9yVHJhY2tJRDogZGVsZWdhdGUgY2FsbGJh
Y2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGIyMDUyYzk4MjZlNDhhYjFjZjFlOThiMmM1ZDQyODk2
MzI2MmY0MWEuLjYxYWVlYzYxNjlhMDgyODY4ZWE2MzJmNzVhOTg2MDI3MzI4MDBkNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBt
ZWRpYSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jb2Nv
YS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbToKKwogMjAyMi0wMi0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBwcml2YXRlIHJlbGF5IGZvciBhbGwgc3Vi
cmVzb3VyY2VzIGlmIHRoZSBtYWluIGRvY3VtZW50IG1haW4gcmVzb3VyY2Ugd2FzIGxvYWRlZCB1
c2luZyBwcml2YXRlIHJlbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZhZDZjYmE4OTM3ZGYxZTI3MWY2M2Q4MjEx
ZWQzODkxYjNmNTEyN2QuLmE1YzdjNzY1YmU2ODRiYzI1NTNhYWZlMjdiYjNiMWYyMWJjMzA0Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlh
IGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlciBjYWNoZXMgdGhlIHJlc3VsdHMgb2Ygc3VwcG9ydHNUeXBlQW5kQ29kZWNzKCkg
Y2FsbHMsIHdoaWNoCisgICAgICAgIGlzIHByb2JsZW1hdGljIHdoZW4gdGhvc2UgcmVzdWx0cyBj
YW4gY2hhbmdlIGR1ZSB0byBhIGNoYW5nZSBpbiBzZXR0aW5ncy4gU28gZW5mb3JjZQorICAgICAg
ICB0aGUgYWxsb3dlZCBjb2RlYyBhbmQgY29udGFpbmVycyBzZXR0aW5ncyBhdCB0aGUgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyIGxldmVsLiBBbHNvLAorICAgICAgICBwYXNzIHRob3NlIHNldHRp
bmdzIGFjcm9zcyB0aGUgR1BVIHByb2Nlc3MgYm91bmRhcnkgdmlhIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uLgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogcmVmYWN0b3IgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246OmRlY29kZSgpIHNvIGFzIG5vdCB0byBy
ZXF1aXJlCisgICAgICAgIHJlLWRlY2xhcmluZyB0aGUgdHlwZXMgb2YgZXZlcnkgaXZhciwgYW5k
IGdyZWF0bHkgc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246
OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKToKKwogMjAyMi0wMi0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkb3B0IC1zdHJlYW1EYXRhUGFyc2VyOmRpZFByb3Zp
ZGVDb250ZW50S2V5U3BlY2lmaWVyOmZvclRyYWNrSUQ6IGRlbGVnYXRlIGNhbGxiYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IGU3OWM3ZDkyZDEyOGE4NjY4ZjM0YzMyNDE4NTM5MTQ2MzMxZjJlY2UuLjRhYTY3YTMxMjk4
MDRkYTlmZjhlNmE0NDk0NTk2YzQ2NjFmZjllMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI2LDYgKzEzMjYsMTQg
QEAgTWF4UGFyc2VEdXJhdGlvbjoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogLTEKIAor
TWVkaWFBdWRpb0NvZGVjSURzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGU6CisgIHR5cGU6IFN0
cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnImFhYyAsemFhYyxxYWFj
LGNhYWMsLm1wMyInCisKIE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZDoKICAgdHlwZTogYm9vbAog
ICBkZWZhdWx0VmFsdWU6CkBAIC0xMzM2LDYgKzEzNDQsMzAgQEAgTWVkaWFDYXBhYmlsaXRpZXNF
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJpbmcK
KyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJjNjA4LHd2dHQiJworCitNZWRp
YUNvZGVjVHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisg
IHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZh
bHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6ICcibXA0YS40MCxhdmMxIicKKworTWVk
aWFDb250YWluZXJUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJp
bmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZh
dWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJ2aWRlby9tcDQsYXVkaW8v
bXA0LHZpZGVvL3gtbTR2LGF1ZGlvL3gtbTRhLGF1ZGlvL21wMyxhcHBsaWNhdGlvbi94LW1wZWdV
Ukwsdm5kLmFwcGxlLm1wZWdVUkwiJworCiBNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydDoKICAgdHlwZTogU3RyaW5nCiAgIHdlYmNvcmVFeGNsdWRlRnJvbUludGVybmFs
U2V0dGluZ3M6IHRydWUKQEAgLTE0NTUsNiArMTQ4NywxNCBAQCBNZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhVmlkZW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBT
dHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJhdmMxLHphdmMscWF2
YyxjYXZjIicKKwogTWVudUl0ZW1FbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCA1OTVlNDI1NDI3ZThl
YmFjOWY1YWI2YWYxMGE1NzNjMDU0NWJiNGFiLi45MTI3NDdmNDA2YzI5NTk0OTk3M2I1YmIxMzQ5
ZGJjYTY3NDFjMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9U
cmFja0xpc3QuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRU
eXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtOTA5LDYgKzkxMCwxNyBAQCBi
b29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgU3RyaW5nJgogICAgIHBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSA9IHRy
dWU7CiAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQg
PSBXVEZNb3ZlKGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKKyAgICBp
ZiAoY29udGV4dC5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSBkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCkuc2V0dGluZ3MoKTsKKyAgICAgICAgaWYgKCFjb250ZW50
VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKGNvbnRlbnRUeXBlLCBz
ZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpLCBzZXR0aW5ncy5hbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHBh
cmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBzZXR0aW5ncy5hbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgICAg
IHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IHNldHRpbmdzLmFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICAgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0
aW9uRm9ybWF0VHlwZXMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KTsKKyAgICB9CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAKICAgICBpZiAoY29kZWNzLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcAppbmRleCAyYjNjZGUzNjA4MjQ3MWMxMWM4N2ZjZjYxY2M4MWNjMzYwYzM5
ZDkwLi5lMDY5MjcwZGY2YjZkMWU3YmZiYzNlMjA5MzI3Njc2YjJkOGEzOTk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKICNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUg
IkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMzU1LDYgKzM1
NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTb3VyY2VCdWZmZXI6OmNoYW5nZVR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogICAgIC8vIHRoZSB0eXBlcyBzcGVjaWZpZWQgKGN1cnJlbnRseSBvciBw
cmV2aW91c2x5KSBvZiBTb3VyY2VCdWZmZXIgb2JqZWN0cyBpbiB0aGUgc291cmNlQnVmZmVycyBh
dHRyaWJ1dGUgb2YKICAgICAvLyB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSwgdGhlbiB0aHJvdyBh
IE5vdFN1cHBvcnRlZEVycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAg
Q29udGVudFR5cGUgY29udGVudFR5cGUodHlwZSk7CisKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGRv
Y3VtZW50KCkuc2V0dGluZ3MoKTsKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJB
bmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29udGVudFR5cGUsIHNldHRpbmdzLmFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCksIHNldHRpbmdzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCiAgICAgaWYg
KCFtX3ByaXZhdGUtPmNhblN3aXRjaFRvVHlwZShjb250ZW50VHlwZSkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogCkBAIC03ODYsNiArNzkyLDI1IEBA
IHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxp
emF0aW9uU2VnbWVudChJbml0aWFsaXphCiAgICAgICAgIC8vIDUuMSBJZiB0aGUgaW5pdGlhbGl6
YXRpb24gc2VnbWVudCBjb250YWlucyB0cmFja3Mgd2l0aCBjb2RlY3MgdGhlIHVzZXIgYWdlbnQg
ZG9lcyBub3Qgc3VwcG9ydCwKICAgICAgICAgLy8gdGhlbiBydW4gdGhlIGFwcGVuZCBlcnJvciBh
bGdvcml0aG0gd2l0aCB0aGUgZGVjb2RlIGVycm9yIHBhcmFtZXRlciBzZXQgdG8gdHJ1ZSBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgICAgIC8vIE5PVEU6IFRoaXMgY2hlY2sgaXMgdGhlIHJl
c3BvbnNpYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZmZXJQcml2YXRlLgorICAgICAgICBpZiAoYXV0
byYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgYXVkaW9U
cmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1
ZGlvVHJhY2tJbmZvLmRlc2NyaXB0aW9uICYmIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMtPmNv
bnRhaW5zKEZvdXJDQzo6ZnJvbVN0cmluZyhhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbi0+Y29k
ZWMoKSkpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBh
cHBlbmRFcnJvcih0cnVlKTsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChhdXRvJiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gZG9jdW1lbnQoKS5zZXR0
aW5ncygpLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSkgeworICAgICAgICAgICAgZm9yIChh
dXRvJiB2aWRlb1RyYWNrSW5mbyA6IHNlZ21lbnQudmlkZW9UcmFja3MpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmlkZW9UcmFja0luZm8uZGVzY3JpcHRpb24gJiYgYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcy0+Y29udGFpbnMoRm91ckNDOjpmcm9tU3RyaW5nKHZpZGVvVHJhY2tJbmZvLmRlc2Ny
aXB0aW9uLT5jb2RlYygpKSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIGFwcGVuZEVycm9yKHRydWUpOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAKICAgICAgICAgLy8gNS4yIEZvciBlYWNoIGF1ZGlvIHRyYWNrIGluIHRoZSBpbml0aWFs
aXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8m
IGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGE5N2E4
NzYxZTk2NDgxMDgxNzIxYmVjNTI3YzAxMGJlNDUzZmQzOTcuLjk3NzIxNThmYTlhNTQ2YjQ2NzU3
OTI3YTAzMWMyOGQxMGJkYTQyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKQEAgLTEyNyw2ICsxMjcsMTQgQEAgU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVk
aW8sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWTWVkaWFUeXBlQXVkaW8gUEFMOjpnZXRfQVZGb3Vu
ZGF0aW9uX0FWTWVkaWFUeXBlQXVkaW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlTWV0YWRhdGEsIE5TU3RyaW5nICopCiAjZGVm
aW5lIEFWTWVkaWFUeXBlTWV0YWRhdGEgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWTWVkaWFUeXBl
TWV0YWRhdGEoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5IFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXkoKQor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24s
IEFWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICopCisjZGVm
aW5lIEFWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXkgUEFMOjpnZXRfQVZGb3Vu
ZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXkoKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJM
QXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
VVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXkoKQorU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2Fi
bGVDYXB0aW9uRm9ybWF0c0tleSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93
YWJsZUNhcHRpb25Gb3JtYXRzS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxs
b3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9t
UmVmZXJlbmNpbmdVUklLZXksIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWVVJMQXNzZXRJbmhlcml0
VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklLZXkgUEFMOjpnZXRfQVZGb3VuZGF0
aW9uX0FWVVJMQXNzZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklL
ZXkoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFW
QXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmUsIE5TU3RyaW5nICop
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbQppbmRleCBiZDZlYmJjYjk5MTNkYThjMTJhOGI5NmFhMmJlMTI4ZjA4MTkzNzdkLi42
ZGI5MjViYWYzZTUyZTJkMmRjMWRhODc4NTliZmVmODk1NDgwMzAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE4
Miw2ICsxODIsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyQXVkaW8KIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQ
YXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXksIE5TU3RyaW5nICosIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uQ29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRl
bnRpZmllckNoYW5nZWROb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZTdHJlYW1pbmdLZXlEZWxpdmVyeUNvbnRlbnRLZXlUeXBlLCBOU1N0cmluZyAqLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxl
QXVkaW9Db2RlY1R5cGVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICosIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDYWNoZUtleSwgTlNTdHJp
bmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50
RnJvbVJlZmVyZW5jaW5nVVJJS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFja3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGJkYzNkNmFmMzc2NTAwYmFkOGVkOWU4MjE0ZDNjNGZlY2U2MjI4
ZWUuLjYwMjFkZWQ4MTQwNzFlNGMyZDc4YjhhYzc4MzVhYjVhZWQ0MjIzNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0yMDAzLDYgKzIwMDMsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6
YXRpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENv
bnRyb2xsZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvRGVzdGluYXRpb25Db2xvclNwYWNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxZjhhNTEwNGI2YjI5NTZmMmJmMWQyNmM1MWQ4
NzMzZWQyNThjZDkuLjAxOTVlMGUwNjgwN2MxN2U3ZDlhZTc3ODJmZDA1OTExYWNlMmEwMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ1NjIsNiArNDU2Miw3IEBACiAJCUNEQUI2RDJFMTdDODE0RUUwMEM2MEIzNCAvKiBKU01l
ZGlhQ29udHJvbHNIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREFCNkQyQzE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5o
ICovOyB9OwogCQlDREFCNkQzMTE3QzkyNTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMkYx
N0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHMuaCAqLzsgfTsKIAkJQ0RBQzA2ODMy
NEM2QTk1QTAwMkY3MjdGIC8qIFZQOVV0aWxpdGllc0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyog
VlA5VXRpbGl0aWVzQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDREFEMUE1QTI3QUZDMjdDMDA2OTkyODUgLyogQ29udGVudFR5cGVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQjYzNTQ5MjNGNjAy
M0EwMEMwRjlERSAvKiBXZWJBVlBsYXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTJDMUNCRjczRkMwMDkwMUNDRiAvKiBX
ZWJBVlBsYXllckNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREI3MDQ1QTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlT
dHJlYW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVhbWluZy5oICovOyB9
OwogCQlDREI3MDQ1QjFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCNzA0NTkx
Rjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCAqLzsgfTsKQEAgLTE2
MTU2LDYgKzE2MTU3LDggQEAKIAkJQ0RBQjZEMkMxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVkaWFD
b250cm9sc0hvc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUNv
bnRyb2xzSG9zdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFCNkQyRjE3Qzky
NTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBVc2VyQWdlbnRTY3JpcHRzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1VzZXJBZ2VudFNjcmlwdHMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJQ0RBQjZEMzAxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVzZXJBZ2VudFNjcmlwdHNE
YXRhLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U2NyaXB0c0Rh
dGEuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlDREFEMUE1NzI3
QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29udGVudFR5cGVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RB
RDFBNTgyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RBRThDMDcxNzQ2Qjk1NzAwNTMyRDc4IC8qIFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREFFOEMwODE3NDZCOTU3MDA1MzJENzggLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1ODFGNzQ2NUEx
MDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4ODQ1LDYg
KzI4ODQ4LDggQEAKIAkJCQlDMkY0RTc4OTFFNDVBRURGMDA2RDcxMDUgLyogQ29tcGxleFRleHRD
b250cm9sbGVyLmggKi8sCiAJCQkJMUM4NEJFNDEyNkQzOTM5RjAwMkQ2MUZDIC8qIENvbXBvc2Vk
Q2hhcmFjdGVyQ2x1c3RlclRleHRJdGVyYXRvci5oICovLAogCQkJCTcyQkFDM0E3MjNFMTczMjgw
MDhENzQxQyAvKiBDb25jcmV0ZUltYWdlQnVmZmVyLmggKi8sCisJCQkJQ0RBRDFBNTgyN0FGQkYz
OTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcCAqLywKKwkJCQlDREFEMUE1NzI3
QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuaCAqLywKIAkJCQkyRDJGQzA1
NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJ
CTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICov
LAogCQkJCUE4Q0I0MTAyMEU4NUI4QTUwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCAqLywKQEAgLTMz
ODc0LDYgKzMzODc5LDcgQEAKIAkJCQlDRTc5OUY5ODFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVu
dFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlGQUMx
QzZBNTA2NjAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJlY3Rp
dmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250
ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RBRDFBNUEyN0FGQzI3QzAwNjk5Mjg1IC8q
IENvbnRlbnRUeXBlVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzYyN0I4RTE0RkIz
Q0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzQjZBMEU2MEIwQkNBNUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYXB0aW9u
cy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZTg3
NjlkNTQwNzhkZDViMTZmMWE5MjVkYTI1NWI4ODE3OTViYmQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzCkBAIC0wLDAgKzEsMjggQEAKK3ZpZGVvOjpj
dWUoKikgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKK30KKwor
dmlkZW86OmN1ZSg6ZnV0dXJlKSA+ICogeworICAgIGNvbG9yOiBncmF5OworfQorCit2aWRlbzo6
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkgeworICAgIGZvbnQ6IDIycHggc2Fucy1z
ZXJpZjsgLyogS2VlcCBpbiBzeW5jIHdpdGggYERFRkFVTFRDQVBUSU9ORk9OVFNJWkVgLiAqLwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciBiIHsKKyAgICBm
b250LXdlaWdodDogYm9sZDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1j
b250YWluZXIgdSB7CisgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIGkgeworICAgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24gewor
ICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKKyAgICBjb2xvcjogcmdiYSgyNTUs
IDI1NSwgMjU1LCAxKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGZhZmRhNzZhNDMxNzc1ZjkzYTY4NmU1NTY1OWE5MzJjZWQ3ZDFiMmQuLjQ5NmM2YTlj
YjIzYTZhMmE5NTM5M2Y4YTQ2ZTg2MjA5NDc3MGFhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTA4OSw2ICsxMDg5LDEyIEBAIFN0cmluZyBIVE1MTWVk
aWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAg
IENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKG1pbWVUeXBlKTsKICAgICBwYXJhbWV0ZXJzLnR5cGUg
PSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCA9IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCk7
CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVz
ID0gYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0
ZXJzLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
KCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKwogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAg
ICAgU3RyaW5nIGNhblBsYXk7CiAKQEAgLTc0MTQsNiArNzQyMCwzMSBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdAor
eworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIEhUTUxN
ZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdAoreworICAgIHJldHVy
biBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworfQorCitj
b25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCku
c2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7Cit9CisKK2NvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygp
LmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8Rm91ckNDPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQogewogICAgIGlmICghbV90
ZXh0VHJhY2tzIHx8IG1fYnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZFRhc2tDYW5jZWxsYXRpb25H
cm91cC5oYXNQZW5kaW5nVGFzaygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCAzMjllNjNlYTU2MmI3OTA2ZDE3M2E5NjE3OWNjZTc4NDQxOGNjZjdhLi4wMDQ5MTg2
MTNlYjkzMTEwNjIzYjAzYmFmZjk3NjFkNjMwYzQ4Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtNzcwLDYgKzc3MCwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzaG91
bGREaXNhYmxlU2xlZXAoKSA9PSBTbGVlcFR5cGU6OkRpc3BsYXk7IH0KICAgICBib29sIG1lZGlh
UGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKICAgICBjb25z
dCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCgpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsOworICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4m
IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNv
bnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgbWVk
aWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoR1NU
UkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDdmNTRkODc2OGNj
MmZhMzY0ZTU0NDFjZThkNDBkYTg1NjA3OWM2ZmIuLmNlNzMyYjEyYTljNTUyYTliNDJmZTZiZDFj
ZGFlN2MwYTkzZTcxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTE5
OSw3ICsxOTksODEgQEAgdm9pZCBTZXR0aW5nc0Jhc2U6OnNldE1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFZlY3RvcjxDb24KICAgICBtX21lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gY29udGVudFR5cGVzOwogfQogCit2b2lk
IFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5n
JiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFZlY3RvcjxTdHJpbmc+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDog
U3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkKKyAgICAgICAgbmV3VHlwZXMuYXBwZW5kKHR5
cGUudG9TdHJpbmcoKSk7CisKKyAgICBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RG
TW92ZShuZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFD
b2RlY1R5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgp
KSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IG5ld1R5cGVzOworICAg
IGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkKKyAgICAgICAg
bmV3VHlwZXMuYXBwZW5kKHR5cGUudG9TdHJpbmcoKSk7CisKKyAgICBtX2FsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBp
ZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
ID0gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZv
dXJDQz4gbmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5z
cGxpdCgnLCcpKSB7CisgICAgICAgIGlmIChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmlu
Zyh0eXBlKSkKKyAgICAgICAgICAgIG5ld1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsK
KyAgICB9CisKKyAgICBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKG5ld1R5
cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAg
ICAgICAgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gc3RkOjpudWxsb3B0OworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZvdXJDQz4gbmV3VHlwZXM7CisgICAgZm9y
IChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgnLCcpKSB7CisgICAgICAgIGlm
IChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmluZyh0eXBlKSkKKyAgICAgICAgICAgIG5l
d1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsKKyAgICB9CiAKKyAgICBtX2FsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5n
c0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhjb25zdCBTdHJpbmcmIHR5
cGVzKQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFZlY3RvcjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDog
U3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0Mg
PSBGb3VyQ0M6OmZyb21TdHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQo
V1RGTW92ZSgqZm91ckNDKSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9y
bWF0VHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KIAogLy8gTUFSSyAtIG9uQ2hhbmdlIGhh
bmRsZXJzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCmluZGV4IDQwZGRiOGE3ZjdhZjg0
NWQ0YjY1ZTYzMGZiN2FiMmU2NTRiYTFjOTIuLmUzNjEwYTI1ZmIzMzllMDNhY2M2M2JlMTRmMDA2
MzI4MDhjMGNkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKICNpbmNsdWRlICJGb250
UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIgor
I2luY2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkZyYW1lRmxhdHRlbmluZy5oIgogI2luY2x1
ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJFbnVtcy5oIgpAQCAtMTA4LDYgKzEwOSwyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChjb25z
dCBTdHJpbmcmKTsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7IH0KIAorICAgIHZvaWQgc2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiB0eXBl
cykgeyBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKGNvbnN0
IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQ29kZWNU
eXBlcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgeyByZXR1
cm4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOyB9CisKKyAgICB2b2lkIHNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mJiB0eXBlcykgeyBt
X2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcm
KTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
czsgfQorCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEZvdXJDQz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
ID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25h
bDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiYg
dHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBXVEZNb3ZlKHR5cGVz
KTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCB7IHJldHVybiBt
X2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgU2V0dGluZ3NCYXNlKFBhZ2UqKTsKICAgICB2aXJ0dWFsIH5TZXR0aW5nc0Jhc2UoKTsK
QEAgLTE1MCw2ICsxNzEsMTEgQEAgcHJvdGVjdGVkOgogICAgIFRpbWVyIG1fc2V0SW1hZ2VMb2Fk
aW5nU2V0dGluZ3NUaW1lcjsKIAogICAgIFZlY3RvcjxDb250ZW50VHlwZT4gbV9tZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+IG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzOwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBzdGF0aWMg
Y29uc3RleHByIGNvbnN0IGZsb2F0IGJvb3N0ZWRPbmVMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmlj
aWVudCA9IDIuMjMxMjVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0OGNjYzdiYzZk
ZWNkNWViOThmMTcwMmMyOTNkNjk5M2MzNjQxOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
b250ZW50VHlwZVV0aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpbXBvcnQg
IkZvdXJDQy5oIgorCitib29sIGNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVS
ZXF1aXJlbWVudHMoY29uc3QgQ29udGVudFR5cGUmIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcywgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpCit7CisgICAg
aWYgKGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzICYmICFhbGxvd2VkTWVkaWFDb250YWluZXJU
eXBlcy0+Y29udGFpbnModHlwZS5jb250YWluZXJUeXBlKCkpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoIWFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgcmV0dXJuIGFsbE9mKHR5cGUuY29kZWNzKCksIFsmXSAoYXV0byYgY29kZWMp
IHsKKyAgICAgICAgcmV0dXJuIGFueU9mKCphbGxvd2VkTWVkaWFDb2RlY1R5cGVzLCBbJl0gKGF1
dG8mIGFsbG93ZWRDb2RlYykgeworICAgICAgICAgICAgcmV0dXJuIGNvZGVjLnN0YXJ0c1dpdGgo
YWxsb3dlZENvZGVjKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjk5YzRkMmI5YTRlOWJlYTJmMmNjNmFjN2YzMGQzNGI0YjgxODVhNmQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50
VHlwZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRm91ckNDOworCitXRUJDT1JFX0VYUE9S
VCBib29sIGNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMo
Y29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYg
YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAppbmRleCAyNGUyNTVkZjQ0ZmIxZjc4NzE0YzU4ZTk5OTkx
MDEyNmQ0NjljMGFiLi5iMzdkMDUwZTljMGMzNjc3MDdkYWUwYjZhY2NiMWJjMzdmOGVhYzEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaApAQCAtMzcsNiArMzcs
MTggQEAgc3RydWN0IEZvdXJDQyB7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91ckNDPiBm
cm9tU3RyaW5nKFN0cmluZ1ZpZXcpOwogCiAgICAgdWludDMyX3QgdmFsdWUgeyAwIH07CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgorICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CisgICAgeworICAgICAgICBlbmNvZGVyIDw8IHZhbHVlOworICAgIH0KKworICAg
IHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgorICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRm91ckNDJiBjb25maWd1cmF0aW9uKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udmFsdWUpOwor
ICAgIH0KIH07CiAKIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oRm91ckNDLCBGb3VyQ0MpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmlu
ZGV4IGFjMzVlNzAwOTRiMjI1YzZjNDI3NTEyOTE5MDE3Njg2MWVjOWUyNzMuLmE1ZGRmM2VmYzQx
ZDg3YTg0YmYxYjQwZDI3NTdiZTg0YzE5MDQ0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
LmgiCisjaW5jbHVkZSAiRm91ckNDLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAj
aW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKQEAgLTE3
Niw2ICsxNzcsMTggQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4m
IG51bGxDb250ZW50VHlwZVZlY3RvcigpCiAgICAgcmV0dXJuIHZlY3RvcjsKIH0KIAorc3RhdGlj
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBudWxsT3B0aW9uYWxTdHJpbmdW
ZWN0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+Pj4gdmVjdG9yOworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKK3N0YXRpYyBjb25z
dCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgbnVsbE9wdGlvbmFsRm91ckNDVmVjdG9y
KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91
ckNDPj4+IHZlY3RvcjsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCiBjbGFzcyBOdWxsTWVkaWFQ
bGF5ZXJDbGllbnQgOiBwdWJsaWMgTWVkaWFQbGF5ZXJDbGllbnQgewogcHJpdmF0ZToKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKQEAgLTE5Nyw2ICsyMTAsMTIgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1l
ZGlhUGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCisKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBudWxsT3B0aW9uYWxTdHJpbmdWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbnVsbE9wdGlvbmFsU3RyaW5nVmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKTsgfQorICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0
b3IoKTsgfQogfTsKIAogY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGll
bnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKQEAg
LTUyOSw2ICs1NDgsMTEgQEAgY29uc3QgTWVkaWFQbGF5ZXJGYWN0b3J5KiBNZWRpYVBsYXllcjo6
bmV4dEJlc3RNZWRpYUVuZ2luZShjb25zdCBNZWRpYVBsYXllckZhY3QKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSA9ICEhbV9tZWRpYVN0cmVh
bTsKICNlbmRpZgorICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBh
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlh
Q29kZWNUeXBlcyA9IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7Cisg
ICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gYWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5
cGVzID0gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7CiAKICAgICBpZiAobV9hY3Rp
dmVFbmdpbmVJZGVudGlmaWVyKSB7CiAgICAgICAgIGlmIChjdXJyZW50KQpAQCAtMTY1Nyw2ICsx
NjgxLDMxIEBAIGJvb2wgTWVkaWFQbGF5ZXI6OnNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkg
Y29uc3QKICAgICByZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJl
U3VwcG9ydCgpOwogfQogCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgTWVk
aWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKK30KKworY29uc3Qgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFDb2Rl
Y1R5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQ29kZWNU
eXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQ
bGF5ZXI6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdAoreworICAgIHJldHVybiBj
bGllbnQoKS5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIE1lZGlh
UGxheWVyOjphbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdAoreworICAgIHJl
dHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKK30KKwogdm9p
ZCBNZWRpYVBsYXllcjo6YXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlKCkKIHsKICAgICBtX3By
aXZhdGUtPmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggMmZjZDQyYWYwYWJiZTQyM2Mx
ZmVmNzlhYmU4MzljYjk1ZmY5Yzg3Mi4uN2M2NGY0ZTBmNjk2NDQ5MmZkOGQ2Njc4ZGY0N2NiYWZk
OTFkOTRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2lu
Y2x1ZGUgIkNvb2tpZS5oIgorI2luY2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
VHlwZXNHTC5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
ckVudW1zLmgiCkBAIC05OCw2ICs5OSwxMSBAQCBzdHJ1Y3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyB7CiAgICAgYm9vbCBpc01lZGlhU291cmNlIHsgZmFsc2UgfTsKICAgICBib29sIGlz
TWVkaWFTdHJlYW0geyBmYWxzZSB9OwogICAgIFZlY3RvcjxDb250ZW50VHlwZT4gY29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8Rm91ckNDPj4gYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxGb3VyQ0M+PiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOworICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsK
IAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKQEAgLTEwNywzNyArMTEzLDI2IEBAIHN0cnVjdCBNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzIHsKICAgICAgICAgZW5jb2RlciA8PCBpc01lZGlhU291cmNlOwogICAg
ICAgICBlbmNvZGVyIDw8IGlzTWVkaWFTdHJlYW07CiAgICAgICAgIGVuY29kZXIgPDwgY29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgICAgICBlbmNvZGVyIDw8IGFsbG93
ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsK
KyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOworICAgICAgICBl
bmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsKICAgICB9CiAKICAgICB0
ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1l
dGVycyYgcGFyYW1ldGVycykKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Q29udGVudFR5
cGU+IHR5cGU7Ci0gICAgICAgIGRlY29kZXIgPj4gdHlwZTsKLSAgICAgICAgaWYgKCF0eXBlKQot
ICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFs
PFVSTD4gdXJsOwotICAgICAgICBkZWNvZGVyID4+IHVybDsKLSAgICAgICAgaWYgKCF1cmwpCi0g
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gaXNNZWRpYVNvdXJjZTsKLSAgICAgICAgZGVjb2RlciA+PiBpc01lZGlhU291cmNlOwot
ICAgICAgICBpZiAoIWlzTWVkaWFTb3VyY2UpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNNZWRpYVN0cmVhbTsKLSAgICAg
ICAgZGVjb2RlciA+PiBpc01lZGlhU3RyZWFtOwotICAgICAgICBpZiAoIWlzTWVkaWFTdHJlYW0p
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPENvbnRlbnRUeXBlPj4gdHlwZXNSZXF1aXJpbmdIYXJkd2FyZTsKLSAgICAgICAg
ZGVjb2RlciA+PiB0eXBlc1JlcXVpcmluZ0hhcmR3YXJlOwotICAgICAgICBpZiAoIXR5cGVzUmVx
dWlyaW5nSGFyZHdhcmUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAg
ICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqdXJsKSwgKmlzTWVkaWFTb3Vy
Y2UsICppc01lZGlhU3RyZWFtLCAqdHlwZXNSZXF1aXJpbmdIYXJkd2FyZSB9fTsKKyAgICAgICAg
cmV0dXJuIGRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudHlwZSkKKyAgICAgICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXJsKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5pc01lZGlhU291cmNlKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5pc01lZGlhU3RyZWFtKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCisgICAg
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKQorICAgICAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMp
OwogICAgIH0KIH07CiAKQEAgLTI3Niw2ICsyNzEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Y29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hv
dWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlv
bmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYg
YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVh
bCB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBtZWRpYVBsYXllclNlZWthYmxlVGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KIApA
QCAtNjM1LDYgKzYzNiwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBl
PiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKICAg
ICBib29sIHNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAKKyAgICBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMo
KSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3Q7CisgICAgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMo
KSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3Q7CisKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1lZGlhUGxheWVyTG9nZ2VyKCk7CiAgICAgY29uc3Qg
dm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCkgeyByZXR1cm4gY2xpZW50KCkubWVkaWFQ
bGF5ZXJMb2dJZGVudGlmaWVyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCA2MjY3YjgzMzIxMjk5YjEzZWE3ZWQyYTQw
NWU0Y2JiODVlNDQ4ODNiLi5mNGIzNWQ3NjlkNzI3OTdhMmZhZDQ1ZWI3ODJiZGQyNWM5MjZjZGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCkBAIC0zMjksNiArMzI5LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TmVlZHNS
ZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogICAgIHZvaWQgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsK
IAorICAgIGJvb2wgbG9hZGluZ01ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nTWV0
YWRhdGE7IH0KKwogcHJpdmF0ZToKICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMuaAppbmRleCBhYWNkNzM3Yjk2MzU4YzBmNTNjZTM3N2E1OTY1NDA1NmE5Y2Iy
MGNjLi5mNGI3NGMxMWEyZmQyMjU5MGE5MjE2YTRkOTE0MzUxOWEwZTIwNzNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oCkBAIC0zNTAsNiArMzUwLDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlv
bmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gdmlkZW9GcmFtZU1ldGFkYXRhKCkgZmluYWwgeyByZXR1
cm4gc3RkOjpleGNoYW5nZShtX3ZpZGVvRnJhbWVNZXRhZGF0YSwgeyB9KTsgfQogICAgIHZvaWQg
Y2hlY2tOZXdWaWRlb0ZyYW1lTWV0YWRhdGEoKTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
YWxsVHJhY2tzQXJlUGxheWFibGUoKSBjb25zdDsKKyAgICBib29sIHRyYWNrSXNQbGF5YWJsZShB
VkFzc2V0VHJhY2sqKSBjb25zdDsKKwogICAgIFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNz
ZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxheWVyOwogICAgIFJldGFpblB0cjxB
VlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVtOwpAQCAtNDQ3LDcgKzQ1MCw5IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2NhY2hlZENhblBsYXlGYXN0Rm9yd2FyZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2NhY2hlZENhblBsYXlGYXN0UmV2ZXJzZSB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29s
IG1fY2FjaGVkQXNzZXRJc0xvYWRlZCB7IGZhbHNlIH07CisgICAgbXV0YWJsZSBib29sIG1fY2Fj
aGVkVHJhY2tzQXJlTG9hZGVkIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gbV9jYWNoZWRBc3NldElzUGxheWFibGU7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFs
PGJvb2w+IG1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGU7CiAgICAgYm9vbCBtX211dGVkIHsgZmFs
c2UgfTsKICAgICBib29sIG1fc2hvdWxkT2JzZXJ2ZVRpbWVDb250cm9sU3RhdHVzIHsgZmFsc2Ug
fTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IDJmNjVhNTc5NmUzNzNhY2FmZTMzMWVlYmU3N2Uw
ZWM0Njg4NmU5ZmQuLmU4MDNkMjZjMmVjNGU1YTQwMmMwYzczNzZlNDc0MjdmNTUyOTgyMTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMzgsMTAgKzM4LDEyIEBACiAjaW1wb3J0ICJDRE1T
ZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIgogI2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBv
cnQgIkNvbG9yU3BhY2VDRy5oIgorI2ltcG9ydCAiQ29udGVudFR5cGVVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCiAj
aW1wb3J0ICJFeHRlbnNpb25zR0wuaCIKICNpbXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgorI2lt
cG9ydCAiRm91ckNDLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIklt
YWdlUm90YXRpb25TZXNzaW9uVlQuaCIKICNpbXBvcnQgIkluYmFuZENoYXB0ZXJUcmFja1ByaXZh
dGVBVkZPYmpDLmgiCkBAIC02Niw2ICs2OCw3IEBACiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIK
ICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaCIKICNpbXBvcnQgIlRleHRUcmFja1Jl
cHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJVVElVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlZpZGVv
TGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9ydCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgi
CiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIuaCIKQEAgLTk0OCw2ICs5NTEsMzgg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0
Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXQKICAgICAgICAgICAgIFtvcHRpb25zIHNldE9iamVj
dDpATk8gZm9yS2V5OkFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXldOwogICAgIH0K
IAorICAgIGF1dG8gYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBwbGF5ZXIoKS0+YWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNh
dGVnb3JpZXNLZXkoKSkgeworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6KE5T
U3RyaW5nICopVVRJRnJvbU1JTUVUeXBlKHR5cGUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2Jq
ZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmll
c0tleV07CisgICAgfQorCisgICAgYXV0byBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxh
eWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICBpZiAoYWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEcyAmJiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxv
d2FibGVBdWRpb0NvZGVjVHlwZXNLZXkoKSkgeworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5
cGUgOiAqYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFk
ZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlw
ZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXldOwor
ICAgIH0KKworICAgIGF1dG8gYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHBsYXllcigpLT5h
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgaWYgKGFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVmlk
ZW9Db2RlY1R5cGVzS2V5KCkpIHsKKyAgICAgICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMpCisgICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6
QCh0eXBlLnZhbHVlKV07CisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpuc1R5cGVzLmdldCgp
IGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5XTsKKyAgICB9CisK
KyAgICBhdXRvIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHBsYXllcigpLT5hbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzICYmIFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93
YWJsZUNhcHRpb25Gb3JtYXRzS2V5KCkpIHsKKyAgICAgICAgYXV0byBuc1R5cGVzID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byB0eXBl
IDogKmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcykKKyAgICAgICAgICAgIFtuc1R5cGVz
IGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5z
VHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleV07
CisgICAgfQorCiAgICAgaWYgKHdpbGxVc2VXZWJNRm9ybWF0UmVhZGVyKQogICAgICAgICByZWdp
c3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5KCk7CiAKQEAgLTE3ODksNiArMTgyNCw3NiBAQCB2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldEFzc2V0KFJldGFpblB0
cjxpZD4mJiBhc3NldCkKICAgICBwcm9jZXNzQ2hhcHRlclRyYWNrcygpOwogfQogCitzdGQ6Om9w
dGlvbmFsPGJvb2w+IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFsbFRyYWNr
c0FyZVBsYXlhYmxlKCkgY29uc3QKK3sKKyAgICBpZiAobV9hdlBsYXllckl0ZW0pIHsKKyAgICAg
ICAgZm9yIChBVlBsYXllckl0ZW1UcmFjayAqdHJhY2sgaW4gW21fYXZQbGF5ZXJJdGVtIHRyYWNr
c10pIHsKKyAgICAgICAgICAgIGlmICghdHJhY2tJc1BsYXlhYmxlKHRyYWNrLmFzc2V0VHJhY2sp
KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGlmICghbV9hdkFzc2V0IHx8IFttX2F2QXNzZXQgc3Rh
dHVzT2ZWYWx1ZUZvcktleTpAInRyYWNrcyIgZXJyb3I6TlVMTF0gIT0gQVZLZXlWYWx1ZVN0YXR1
c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGZvciAoQVZBc3Nl
dFRyYWNrICphc3NldFRyYWNrIDogW21fYXZBc3NldCB0cmFja3NdKSB7CisgICAgICAgIGlmICgh
dHJhY2tJc1BsYXlhYmxlKGFzc2V0VHJhY2spKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjp0cmFja0lzUGxheWFibGUoQVZBc3NldFRyYWNrKiB0cmFjaykgY29uc3QK
K3sKKyAgICBpZiAocGxheWVyKCktPnNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgJiYgIWFz
c2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHRyYWNrLCBwbGF5ZXIoKS0+
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGF1dG8gZGVzY3JpcHRpb24gPSByZXRhaW5QdHIoKF9fYnJpZGdl
IENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJhY2suZm9ybWF0RGVzY3JpcHRpb25zLmZpcnN0T2Jq
ZWN0KTsKKyAgICBpZiAoIWRlc2NyaXB0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvIGNvZGVjVHlwZSA9IEZvdXJDQyB7IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1l
ZGlhU3ViVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkgfTsKKyAgICBzd2l0Y2ggKFBBTDo6Q01Gb3Jt
YXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkpIHsKKyAgICBjYXNl
IGtDTU1lZGlhVHlwZV9WaWRlbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFWaWRlb0Nv
ZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICAgICAg
aWYgKGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJ
RHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVO
VElGSUVSLCAiVmlkZW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5v
dCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICBjYXNlIGtDTU1lZGlhVHlwZV9BdWRpbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVk
aWFBdWRpb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsK
KyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYUF1
ZGlvQ29kZWNJRHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xP
RyhMT0dJREVOVElGSUVSLCAiQXVkaW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5
cGUsICInIG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9UZXh0OgorICAgIGNhc2Uga0NNTWVkaWFU
eXBlX0Nsb3NlZENhcHRpb246CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfU3VidGl0bGU6IHsKKyAg
ICAgICAgYXV0byYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworICAgICAgICBpZiAoYWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzICYmICFhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMtPmNv
bnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVS
LCAiVGV4dCB0cmFjayB3aXRoIGNvZGVjIHR5cGUgJyIsIGNvZGVjVHlwZSwgIicgbm90IGNvbnRh
aW5lZCBpbiBhbGxvd2VkIGNvZGVjIGxpc3Q7IGJsb2NraW5nIik7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNh
c2Uga0NNTWVkaWFUeXBlX011eGVkOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX1RpbWVDb2RlOgor
ICAgIGNhc2Uga0NNTWVkaWFUeXBlX01ldGFkYXRhOgorICAgICAgICAvLyBOby1vcAorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICAvLyBOb3RlOiB0aGUgQ01NZWRpYVR5cGUgZW51
bSBtYXkgbm90IGJlIGV4Y2x1c2l2ZS4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0
YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphc3NldFN0YXR1cygpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2F2QXNzZXQpCkBAIC0xODE0LDIzICsxOTE5LDIxIEBAIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6CiAgICAgICAgIG1fY2FjaGVkQXNzZXRJc0xvYWRlZCA9IHRydWU7
CiAgICAgfQogCi0gICAgaWYgKCFwbGF5ZXIoKS0+c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQo
KSkKLSAgICAgICAgbV90cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7CisgICAgLy8gbV9sb2FkaW5n
TWV0YWRhdGEgd2lsbCBiZSBmYWxzZSB1bnRpbCBhbGwgdHJhY2tzJyBwcm9wZXJ0aWVzIGhhdmUg
ZmluaXNoZWQgbG9hZGluZy4KKyAgICAvLyBTZWU6IGJlZ2luTG9hZGluZ01ldGFkYXRhKCkuCisg
ICAgaWYgKGxvYWRpbmdNZXRhZGF0YSgpKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFz
c2V0U3RhdHVzTG9hZGluZzsKIAotICAgIGlmICghbV90cmFja3NBcmVQbGF5YWJsZSkgewotICAg
ICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gdHJ1ZTsKLSAgICAgICAgZm9yIChBVkFzc2V0VHJh
Y2sgKnRyYWNrIGluIFttX2F2QXNzZXQgdHJhY2tzXSkgewotICAgICAgICAgICAgaWYgKCFhc3Nl
dFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyh0cmFjaywgcGxheWVyKCktPm1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpKSB7Ci0gICAgICAgICAg
ICAgICAgbV90cmFja3NBcmVQbGF5YWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYgKCFtX2NhY2hlZFRyYWNrc0FyZVBs
YXlhYmxlKSB7CisgICAgICAgIG1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUgPSBhbGxUcmFja3NB
cmVQbGF5YWJsZSgpOworICAgICAgICBpZiAoIW1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUpCisg
ICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGluZzsKICAgICB9
CiAKICAgICBpZiAoIW1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlKQogICAgICAgICBtX2NhY2hlZEFz
c2V0SXNQbGF5YWJsZSA9IFtbbV9hdkFzc2V0IHZhbHVlRm9yS2V5OkAicGxheWFibGUiXSBib29s
VmFsdWVdOwogCi0gICAgaWYgKCptX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSAmJiBtX3RyYWNrc0Fy
ZVBsYXlhYmxlLnZhbHVlKCkpCisgICAgaWYgKCptX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSAmJiAq
bV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyQVZB
c3NldFN0YXR1c1BsYXlhYmxlOwogCiAgICAgcmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0YXR1
c0xvYWRlZDsKQEAgLTE5MzUsNiArMjAzOCw5IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kCiAg
ICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsK
ICNlbmRpZgogCisgICAgaWYgKCFjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBl
UmVxdWlyZW1lbnRzKHBhcmFtZXRlcnMudHlwZSwgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcywgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKSkKKyAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworCiAgICAg
YXV0byBzdXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVj
b2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBw
b3J0ZWQ7CkBAIC0zNzUwLDcgKzM4NTYsNyBAQCBOU0FycmF5KiBpdGVtS1ZPUHJvcGVydGllcygp
CiAKIE5TQXJyYXkqIGFzc2V0VHJhY2tNZXRhZGF0YUtleU5hbWVzKCkKIHsKLSAgICBzdGF0aWMg
TlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOkAidG90YWxT
YW1wbGVEYXRhTGVuZ3RoIiwgQCJtZWRpYVR5cGUiLCBAImVuYWJsZWQiLCBAInByZWZlcnJlZFRy
YW5zZm9ybSIsIEAibmF0dXJhbFNpemUiLCBuaWxdOworICAgIHN0YXRpYyBOU0FycmF5KiBrZXlz
ID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6QCJ0b3RhbFNhbXBsZURhdGFMZW5n
dGgiLCBAIm1lZGlhVHlwZSIsIEAiZW5hYmxlZCIsIEAicHJlZmVycmVkVHJhbnNmb3JtIiwgQCJu
YXR1cmFsU2l6ZSIsIEAiZm9ybWF0RGVzY3JpcHRpb25zIiwgbmlsXTsKICAgICByZXR1cm4ga2V5
czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5k
ZXggNWRhOTFlZTBlYWI0ZmRmZjkyMWZjNjc4N2FhMjM0NGNkMWNmNGYxOC4uMTQyZmFmMDZlZGE0
ZjE5ZGQ3NGQ2MDg0MWQ3YmU0NThjMjg3MDgxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC01ODgsNiArNTg4LDQ4IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEludGVybmFsU2V0dGluZ3M6OnNldERlZmF1bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZs
b2F0IHNhbXBsCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJu
YWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5nJiB0
eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcyh0eXBlcyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9u
T3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25z
dCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNl
dEFsbG93ZWRNZWRpYUNvZGVjVHlwZXModHlwZXMpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4
Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0
dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKHR5cGVzKTsKKyAgICByZXR1cm4g
eyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3Bh
Z2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAg
ICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyh0eXBlcyk7
CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5n
czo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMp
Cit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCisKKwogLy8gSWYg
eW91IGFkZCB0byB0aGlzIGNsYXNzLCBtYWtlIHN1cmUgeW91IGFyZSBub3QgZHVwbGljYXRpbmcg
ZnVuY3Rpb25hbGl0eSBpbiB0aGUgZ2VuZXJhdGVkCiAvLyBiYXNlIGNsYXNzIEludGVybmFsU2V0
dGluZ3NHZW5lcmF0ZWQgYW5kIHRoYXQgeW91IHVwZGF0ZSB0aGUgQmFja3VwIGNsYXNzIGZvciB0
ZXN0IHJlcHJvZHVjYWJpbGl0eS4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaAppbmRleCBmMWE3ZTIyMTEyMGU3MWE5Njk5MWIzMjMzYTM4NTQzMDMxODlkNWIwLi5m
Yjk0Y2U3ZGRiZWYzYmM1NWJiMzc2MzFhZWRlMTZjM2UxNTJlNzhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTIyLDYgKzEyMiwxMiBAQCBwdWJsaWM6
CiAgICAgLy8gQXVkaW9Db250ZXh0CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RGVmYXVsdEF1
ZGlvQ29udGV4dFNhbXBsZVJhdGUoZmxvYXQpOwogCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKGNvbnN0IFN0cmlu
ZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMo
Y29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzKGNvbnN0IFN0cmluZyYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0
IEludGVybmFsU2V0dGluZ3MoUGFnZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbAppbmRleCBiYjZiOGY1MjExMmRkOTk0Y2M2Yjc3ODMyMzExOThlNTky
OGJmYzFlLi5iYzQwMTk1MGE5NDcyODY5NzhjMDA4YWZlYjYxZjQ5MGY4YWRjYTI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTk1LDQgKzk1LDEw
IEBAIGVudW0gVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSB7ICJDb250ZW50IiwgIlN5c3Rl
bSIgfTsKIAogICAgIC8vIEF1ZGlvQ29udGV4dAogICAgIHVuZGVmaW5lZCBzZXREZWZhdWx0QXVk
aW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCBzYW1wbGVSYXRlKTsKKworICAgIHVuZGVmaW5lZCBz
ZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRl
ZmluZWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1
bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhET01TdHJpbmc/IHR5cGVzKTsK
KyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhET01TdHJpbmc/IHR5
cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKERP
TVN0cmluZz8gdHlwZXMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDNkOWUwMmUwMThkZDExNjQy
YmI1NmEzM2ZiY2U5NTk4MDVhOTQzZTcuLjU5NWM1ODkxOWVhMTNmZWI5NWQ4ZmMwZDBiNDMyMzA2
OGE4MmEwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtNzYsNiArNzYsOCBAQCBjbGFzcyBBdWRpb1Ry
YWNrUHJpdmF0ZTsKIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OwogI2VuZGlmCiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKKworc3RydWN0IEZvdXJDQzsKIH0KIAogI2lmIFVTRShB
VkZPVU5EQVRJT04pCkBAIC0yOTMsNiArMjk1LDEyIEBAIHByaXZhdGU6CiAgICAgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hl
Y2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsg
fTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlh
Q29kZWNUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzOyB9OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNv
cmU6OkZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7IH07CisgICAg
Y29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxs
b3dlZE1lZGlhQXVkaW9Db2RlY0lEczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxXZWJDb3JlOjpGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlczsgfTsKKwogICAgIHZvaWQgc3RhcnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1l
cigpOwogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUoYm9vbCA9IGZhbHNlKTsKICAgICB2b2lk
IHNlbmRDYWNoZWRTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24u
aAppbmRleCA0YWNiNDBlMmMwOWVjNzVjZTllZWJiNzMxZTFkZDFjOWM2MzIxNTBmLi40ZmQ2NjFi
N2QwNjcwZGM1MGQxYzc4YWRiNWY4YmFmMjk2MmVlMTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZvdXJDQy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1UZXh0VHJhY2suaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgpAQCAtNDAsNiArNDEsMTIgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uIHsKICAgICBTdHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlm
aWVyOwogICAgIFN0cmluZyBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKICAgICBWZWN0b3I8V2ViQ29y
ZTo6Q29udGVudFR5cGU+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3Jl
OjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsK
KwogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwogI2lm
IEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgVmVjdG9yPFdlYkNvcmU6OlBsYXRmb3JtVGV4dFRy
YWNrRGF0YT4gb3V0T2ZCYW5kVHJhY2tEYXRhOwpAQCAtNTgsNiArNjUsMTEgQEAgc3RydWN0IFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBz
b3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7CiAgICAgICAgIGVuY29kZXIgPDwgbmV0d29ya0lu
dGVyZmFjZU5hbWU7CiAgICAgICAgIGVuY29kZXIgPDwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAg
ICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgICAgICBlbmNv
ZGVyIDw8IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJl
ZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgICAg
IGVuY29kZXIgPDwgb3V0T2ZCYW5kVHJhY2tEYXRhOwpAQCAtNzAsODYgKzgyLDI3IEBAIHN0cnVj
dCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiB7CiAgICAgfQogCiAgICAgdGVt
cGxhdGUgPGNsYXNzIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiByZWZlcnJlcjsKLSAgICAgICAgZGVjb2RlciA+PiByZWZlcnJlcjsKLSAg
ICAgICAgaWYgKCFyZWZlcnJlcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHVzZXJBZ2VudDsKLSAgICAgICAgZGVjb2Rl
ciA+PiB1c2VyQWdlbnQ7Ci0gICAgICAgIGlmICghdXNlckFnZW50KQotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc291cmNl
QXBwbGljYXRpb25JZGVudGlmaWVyOwotICAgICAgICBkZWNvZGVyID4+IHNvdXJjZUFwcGxpY2F0
aW9uSWRlbnRpZmllcjsKLSAgICAgICAgaWYgKCFzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIp
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKLSAgICAgICAgZGVjb2RlciA+PiBuZXR3
b3JrSW50ZXJmYWNlTmFtZTsKLSAgICAgICAgaWYgKCFuZXR3b3JrSW50ZXJmYWNlTmFtZSkKLSAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+PiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydDsKLSAgICAgICAgZGVjb2RlciA+PiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydDsKLSAgICAgICAgaWYgKCFtZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gcHJlZmVycmVkQXVkaW9DaGFy
YWN0ZXJpc3RpY3M7Ci0gICAgICAgIGRlY29kZXIgPj4gcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJp
c3RpY3M7Ci0gICAgICAgIGlmICghcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0jaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykK
LSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2tE
YXRhPj4gb3V0T2ZCYW5kVHJhY2tEYXRhOwotICAgICAgICBkZWNvZGVyID4+IG91dE9mQmFuZFRy
YWNrRGF0YTsKLSAgICAgICAgaWYgKCFvdXRPZkJhbmRUcmFja0RhdGEpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47Ci0gICAgICAg
IGRlY29kZXIgPj4gZG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKLSAgICAgICAgaWYgKCFkb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBsb2dJZGVudGlmaWVyOwotICAgICAgICBkZWNv
ZGVyID4+IGxvZ0lkZW50aWZpZXI7Ci0gICAgICAgIGlmICghbG9nSWRlbnRpZmllcikKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29s
PiBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkVXNl
UGVyc2lzdGVudENhY2hlOwotICAgICAgICBpZiAoIXNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25h
bDxib29sPiBpc1ZpZGVvOwotICAgICAgICBkZWNvZGVyID4+IGlzVmlkZW87Ci0gICAgICAgIGlm
ICghaXNWaWRlbykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAg
c3RkOjpvcHRpb25hbDxib29sPiByZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkOwotICAgICAgICBk
ZWNvZGVyID4+IHJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQ7Ci0gICAgICAgIGlmICghcmVuZGVy
aW5nQ2FuQmVBY2NlbGVyYXRlZCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSAgICAgICAgcmV0dXJuIHt7Ci0gICAgICAgICAgICBXVEZNb3ZlKCpyZWZlcnJlciksCi0gICAg
ICAgICAgICBXVEZNb3ZlKCp1c2VyQWdlbnQpLAotICAgICAgICAgICAgV1RGTW92ZSgqc291cmNl
QXBwbGljYXRpb25JZGVudGlmaWVyKSwKLSAgICAgICAgICAgIFdURk1vdmUoKm5ldHdvcmtJbnRl
cmZhY2VOYW1lKSwKLSAgICAgICAgICAgIFdURk1vdmUoKm1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KSwKLSAgICAgICAgICAgIFdURk1vdmUoKnByZWZlcnJlZEF1ZGlv
Q2hhcmFjdGVyaXN0aWNzKSwKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3Vy
YXRpb24ucmVmZXJyZXIpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0
aW9uLnVzZXJBZ2VudCkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRp
b24uc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5uZXR3b3JrSW50ZXJmYWNlTmFtZSkKKyAgICAgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ubWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0
aW9uLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVk
aWFBdWRpb0NvZGVjSURzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJh
dGlvbi5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMpCisgICAgICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKQog
I2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgICAgICAgICBXVEZNb3ZlKCpvdXRPZkJhbmRU
cmFja0RhdGEpLAorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5v
dXRPZkJhbmRUcmFja0RhdGEpCiAjZW5kaWYKLSAgICAgICAgICAgIFdURk1vdmUoKmRvY3VtZW50
U2VjdXJpdHlPcmlnaW4pLAotICAgICAgICAgICAgKmxvZ0lkZW50aWZpZXIsCi0gICAgICAgICAg
ICAqc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlLAotICAgICAgICAgICAgKmlzVmlkZW8sCi0gICAg
ICAgICAgICAqcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCwKLSAgICAgICAgfX07CisgICAgICAg
ICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmln
aW4pCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmxvZ0lkZW50
aWZpZXIpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnNob3Vs
ZFVzZVBlcnNpc3RlbnRDYWNoZSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZp
Z3VyYXRpb24uaXNWaWRlbykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3Vy
YXRpb24ucmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDU4ZmMxZTRlZTI1NWVkNTgzMGM5OTZkZmU2OGJmMmFi
ZDM1M2VhZjguLjdjOWQ0NTY5YTRlNTBiMDcxM2E3N2E4YjRhYzI0MGZhZTQ2ZGRkMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBs
YXllci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KQEAgLTE2Niw2ICsxNjcsMTIgQEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAg
ICBhdXRvIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBwbGF5ZXItPmRvY3VtZW50U2VjdXJpdHlP
cmlnaW4oKTsKICAgICBwcm94eUNvbmZpZ3VyYXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9
IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBwbGF5
ZXItPmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cygpOworICAgIHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0g
cGxheWVyLT5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgcHJveHlDb25maWd1cmF0
aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzKCk7CisKICAgICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXll
cklkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNy
ZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5
Q29uZmlndXJhdGlvbiksIDApOwogCkBAIC0yMDIsNiArMjA5LDEwIEBAIE1lZGlhUGxheWVyOjpT
dXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2Rl
Y3MoTWVkaWFQCiAgICAgaWYgKHBhcmFtZXRlcnMuaXNNZWRpYVN0cmVhbSkKICAgICAgICAgcmV0
dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlmCisK
KyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVu
dHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
LCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpKQorICAgICAgICByZXR1cm4gTWVk
aWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKICAgICByZXR1cm4gdHlw
ZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIpLnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJh
bWV0ZXJzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCBiOGY4ZGU2N2QxMmE2M2Y4MjNhMTA1MTI5ZjA5NzEyOTVlOTlkMmI5Li40NTVj
YWU3NWRhYTQ5YjUwM2NiNDhlZjdjNTc0ZDkwZDJmMTcyM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDExNiw2ICs0MTE2LDEyIEBAIHZv
aWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUpCiAgICAgICAgIHNldHRpbmdzLnNldE1hdGhNTEVuYWJsZWQoZmFsc2UpOwogI2VuZGlm
CiAgICAgICAgIHNldHRpbmdzLnNldFBkZkpTVmlld2VyRW5hYmxlZCh0cnVlKTsKKworICAgICAg
ICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhzdG9yZS5nZXRTdHJpbmdW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb250YWluZXJUeXBlc0FsbG93ZWRJ
bkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhQ29kZWNUeXBlcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6bWVkaWFDb2RlY1R5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAg
ICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKHN0b3JlLmdldFN0cmlu
Z1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYVZpZGVvQ29kZWNJRHNBbGxvd2Vk
SW5DYXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6Om1lZGlhQXVkaW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkp
KTsKKyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0
b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYUNhcHRpb25G
b3JtYXRUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKICAgICB9CiAKICNp
ZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzU1OGVlZjJkM2UwNDQwZTM1
OWVmZjI1NDk4NWQ0ZDNkZjExODQ1OC4uYWY1YzczNGNlNGEyYzgzNWFkNTU5ZTBkNDc0MTMyMzY0
MDI3YmJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMzcwLDYgKzM3MCwyMiBAQAogCiAgICAgICAgICogcGxhdGZvcm0v
d2luL1Rlc3RFeHBlY3RhdGlvbnM6CiAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNv
bnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxs
b3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1h
bGxvd2VkLWNvZGVjcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1hbGxvd2Vk
LWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1h
bGxvd2VkLWNvbnRhaW5lcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRt
bDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxv
d2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy5odG1sOiBBZGRlZC4KKwog
MjAyMi0wMS0yNSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBb
Q29jb2FdIHJWRkMoKSBjYWxsYmFja3MgaGF2ZSB1cCB0byA2MG1zIGV4dHJhIGxhdGVuY3kKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNTBkNTM5YTJmOTA2M2FhMmM1Y2EwOTM3NDg3NGY3MWU0ZGJlYmUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhudWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhudWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhudWxsKSkKK0VYUEVDVEVEICh2aWRlby5jYW5Q
bGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICdwcm9iYWJseScpIE9LCitFWFBF
Q1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAncHJv
YmFibHknKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGNh
bnBsYXkpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoImF2YzEiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlw
ZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAo
dmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAnJykgT0sKK1JV
Tih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChjYW5wbGF5KSBPSworUlVO
KGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5Iikp
CitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9w
dXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygi
dnAwOSxvcHVzIikpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29k
ZWNzPWF2YzEiKSA9PSAnJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8v
bXA0OyBjb2RlY3M9bXA0diIpID09ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rl
c3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxvcHVzIikpCitSVU4odmlkZW8uc3Jj
ID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3IpIE9LCitSVU4oaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKSkKK1JVTihpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1wNGEuNDAi
KSkKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChlcnJvcikgT0sK
K0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93
ZWQtY29kZWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxYzdiYzUwMTkyZjRiYjg5YzgwZWFkY2YzNjdkMWQ0YWJiMGU4YmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVj
cy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8dGl0bGU+bWVkaWEtYWxsb3dlZC1jb2RlY3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3Jj
PSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50
ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhu
dWxsKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b2RlY1R5cGVzKG51bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5
cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICdwcm9iYWJseScpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAn
cHJvYmFibHknKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIn
KTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywg
J2NhbnBsYXknKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2lu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIiknKTsK
KyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcygiYWFjICIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsbXA0YS40MCIpJyk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICdwcm9iYWJs
eScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7
IGNvZGVjcz1tcDR2IiknLCAnJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQv
dGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2Nl
ZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOwor
CisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygi
dnAwOSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoIm9wdXMiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG9wdXMiKScpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCAn
Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsg
Y29kZWNzPW1wNHYiKScsICcnKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90
ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2Vl
ZCh2aWRlbywgJ2Vycm9yJyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisK
KyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAg
ICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJh
dmMxIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEcygib3B1cyIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdz
LnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsb3B1cyIpJyk7CisgICAgICAgIHJ1bign
dmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2Uu
cmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2
aWRlbywgJ2NhbnBsYXknKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOworICAgICAgICBy
dW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1w
NGEuNDAiKScpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0Iicp
OworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAn
ZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICBl
bmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42OThiMDVjODkzMzMwNGEyMDE5YzNlNDBhMTc0NDBlZTc4MDhhZWNjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51bGwpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJhdWRpby9tcDMiKSA9PSAnbWF5YmUnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJ2aWRlby9tcDQiKSA9PSAnbWF5YmUnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50
L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygiYXVkaW8vbXAzIikpCitFWFBFQ1RFRCAodmlkZW8u
Y2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09ICdtYXliZScpIE9LCitFWFBFQ1RFRCAodmlkZW8u
Y2FuUGxheVR5cGUoInZpZGVvL21wNCIpID09ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250
ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IikpCitFWFBFQ1RFRCAodmlk
ZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09ICcnKSBPSworRVhQRUNURUQgKHZpZGVvLmNh
blBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9PSAnbWF5YmUnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJj
b250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMmZmMmQ5OTZjMzU1M2ExMzRlYTNiNjM3NTYxNDAxNGMwN2E0YmU3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAg
LTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxz
Jyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51bGwpJyk7CisgICAgICAgIHRl
c3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21h
eWJlJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7Cisg
ICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5w
bGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVv
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpJyk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywg
J21heWJlJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVv
L21wNCIpJywgJycpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0
IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVv
LCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAg
ICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9t
cDQiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9t
cDMiKScsICcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlk
ZW8vbXA0IiknLCAnbWF5YmUnKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90
ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2Vl
ZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisK
KyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2Vk
LWNvZGVjcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjVjYzNi
ZDZjZTA4N2MyMDIwZWM5ZjhmMWZjYjA1ZTE5ZDAyMzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlz
VHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICd0cnVlJykgT0sKK0VY
UEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1w
NHYiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoImF2YzEiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKSkKK0VYUEVDVEVEIChNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScp
IE9LCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNv
ZGVjcz1tcDR2IikgPT0gJ2ZhbHNlJykgT0sKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNl
QnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1h
dmMxIikpCitURVNUKHNvdXJjZUJ1ZmZlci5jaGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1t
cDR2IikpIFRIUk9XUygiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4iKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNU
eXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikgPT0gJ2ZhbHNlJykgT0sKK1RF
U1QobWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikp
IFRIUk9XUygiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl
ZC4iKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlhN2E1MDRhNWYyMjE5NWRkMzhmN2Q4OWVkYjY2YWUwOTg4NTRmNjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFs
bG93ZWQtY29kZWNzLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50
ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWls
VGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRl
bycpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5p
c1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsIHRydWUpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBj
b2RlY3M9bXA0diIpJywgdHJ1ZSk7CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpJyk7CisgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOwor
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KCJhdmMxLG1wNGEuNDAiKScpOworCisgICAgICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2Uu
aXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsg
Y29kZWNzPW1wNHYiKScsIGZhbHNlKTsKKworICAgICAgICBtZWRpYVNvdXJjZSA9IG5ldyBNZWRp
YVNvdXJjZSgpOworICAgICAgICB2aWRlby5zcmNPYmplY3QgPSBtZWRpYVNvdXJjZTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvcihtZWRpYVNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBy
dW4oJ3NvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0
OyBjb2RlY3M9YXZjMSIpJyk7CisgICAgICAgIHRlc3RFeGNlcHRpb24oJ3NvdXJjZUJ1ZmZlci5j
aGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAnIk5vdFN1cHBvcnRlZEVycm9y
OiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIicpOworCisgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScpOwor
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVj
SURzKCJvcHVzIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywg
ZmFsc2UpOworCisgICAgICAgIHRlc3RFeGNlcHRpb24oJ21lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhl
IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiInKTsKKworICAgICAgICBlbmRUZXN0KCk7Cisg
ICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQt
Y29udGFpbmVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFlOTY2OWZiOGJkMjk4MTc5Y2Vl
ZGFiMmM3YWY0YjNiYjA5MzFkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMobnVsbCkpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9y
dGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKSkKK0VYUEVDVEVEIChNZWRp
YVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpID09ICd0cnVlJykgT0sKK1JVTihp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoInZpZGVvL3dl
Ym0iKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIp
ID09ICdmYWxzZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRh
aW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzQ5YTI5YTY3OTMxNmQ2Zjc2YmMxYjFmMjNjZGE3NDVh
NWVkOTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApAQCAtMCwwICsxLDMwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1h
bGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0
cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKCJ2aWRlby9tcDQiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIiknKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVv
L21wNCIpJywgZmFsc2UpOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCmluZGV4IGEzYjZjYjdjMzE3MmYwMTE3
MzJkZDk5OWFhZjdiNDQzNjVjNmRiNWUuLjNjMDY3ZTBmOWQ3NTMwMTVjOWEzNjI5NDRlNzVhMzY2
ZGVlNzg0ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwpAQCAtMjE3LDE2ICsyMTcsMzIgQEAg
ZnVuY3Rpb24gd2FpdEZvckV2ZW50V2l0aFRpbWVvdXQoZWxlbWVudCwgdHlwZSwgdGltZSwgbWVz
c2FnZSkgewogICAgIH0pOwogfQogCi1mdW5jdGlvbiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIHNp
bGVudCkgeworZnVuY3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBzaWxlbnQsIHN1Y2Nlc3Mp
IHsKICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBldmVudCA9PiB7Ci0gICAgICAgICAgICBpZiAoIXNpbGVu
dCkKKyAgICAgICAgICAgIGlmIChzaWxlbnQpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGV2
ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmIChzdWNjZXNzICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgbG9nUmVzdWx0
KHN1Y2Nlc3MsIGBFVkVOVCgke2V2ZW50LnR5cGV9KWApOworICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRVZFTlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7CiAgICAgICAgIH0sIHsgb25jZTog
dHJ1ZSB9KTsKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gd2FpdEZvckFuZFN1Y2NlZWQoZWxlbWVu
dCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVl
KTsKK30KKworZnVuY3Rpb24gd2FpdEZvckFuZEZhaWwoZWxlbWVudCwgdHlwZSkgeworICAgIHJl
dHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVlKTsKK30KKwogZnVuY3Rpb24g
d2FpdEZvckV2ZW50T25jZShldmVudE5hbWUsIGZ1bmMsIGVuZGl0KQogewogICAgIHdhaXRGb3JF
dmVudChldmVudE5hbWUsIGZ1bmMsIGVuZGl0LCB0cnVlKQo=
</data>
<flag name="commit-queue"
          id="477961"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451264</attachid>
            <date>2022-02-08 09:49:23 -0800</date>
            <delta_ts>2022-02-08 10:01:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236245-20220208094923.patch</filename>
            <type>text/plain</type>
            <size>88472</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEyMTEzZTRhNGI3Njc5YjczNjgxYjRl
ZWIxOWJlMGNlMjMzYWNjNTMuLmY0YjdiNDhlOWI4MTVkY2ZmNjY1NGRiYmQ3NjBiYTFjZjg4YmZm
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xMzIsNiArMTMyLDE1IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU4NTYKICAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtp
dC5vcmcvcjI4ODkwMgogCisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWluZXJz
IGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0wMiAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgaW4gVHJhaWxpbmdB
cnJheS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggZTU1N2RhMjc0YTkzZDU1NzM2MWM2ZDg3NDhlZTNlMDM2NzYz
NmU4Ny4uMDhhYjlhYmYwOGYyM2FlNzJhZDFkYmI1M2RkNTUxNmMzNDIwNDNkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMi0wMi0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3MgdG8gcmVzdHJpY3QgbWVkaWEgY29udGFp
bmVycyBhbmQgY29kZWNzIHdoZW4gaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21lZGlhLWFs
bG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLWFsbG93ZWQtY29u
dGFpbmVycy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKKworICAgICAgICBBZGQgc2V0
dGluZ3MgYXQgdGhlIFdlYkNvcmUgbGV2ZWwgdG8gb3B0aW9uYWxseSBkZWNsYXJlIGEgbGlzdCBv
ZiBjb250YWluZXIgdHlwZXMsCisgICAgICAgIHZpZGVvIGNvZGVjcywgYXVkaW8gY29kZWNzLCBh
bmQgY2FwdGlvbiBmb3JtYXRzIHRvIGFsbG93IHdoZW4gbG9hZGluZyBtZWRpYSB0aHJvdWdoCisg
ICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYW5kIE1lZGlhU291cmNlLgorCisgICAgICAgIFRoZXJl
IGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoZSBjb2RlYyBJRCwgdHlwaWNhbGx5IGEgZm91ci1jaGFy
YWN0ZXItY29kZSBlbWJlZGRlZAorICAgICAgICBpbiB0aGUgY29udGFpbmVyIGl0c2VsZiwgZG9l
cyBub3QgbWF0Y2ggdGhlIFJGQzQyODEgY29kZWMgc3RyaW5nLiBOb3RhYmx5LCB0aGlzIGlzIHRo
ZSBjYXNlCisgICAgICAgIHdpdGggIm1wNGEuNDAiIGFuZCAnYWFjICcuIFNvIHRoZSBzZXR0aW5n
cyBtdXN0IGluY2x1ZGUgYm90aCB0aGUgY29kZWMgSUQgYW5kIHRoZSBjb2RlYworICAgICAgICB0
eXBlIGluIHN0cmluZyBmb3JtLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCkgYW5kIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0
ZWQoKQorICAgICAgICBhbmQgcmVqZWN0IENvbnRlbnRUeXBlcyB3aGljaCBkbyBub3QgY29uZm9y
bSB0byB0aGUgYWxsb3dlZCB0eXBlcy4KKworICAgICAgICBRdWVyeSB0aGVzZSBsaXN0cyBpbiBN
ZWRpYVNvdXJjZTo6Y2hhbmdlVHlwZSgpIHRvIGRpc2FsbG93IHN3aXRjaGluZyB0byBhbiB1bnN1
cHBvcnRlZAorICAgICAgICBDb250ZW50VHlwZS4KKyAgICAgICAgCisgICAgICAgIElmIHRoZXNl
IGxpc3RzIGFyZSBzZXQsIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgYXMgY3JlYXRpb24gb3B0
aW9ucy4KKworICAgICAgICBXaGVuIGEgbmV3IEFWQXNzZXRUcmFjayBpcyBsb2FkZWQsIHF1ZXJ5
IHRoZXNlIGxpc3RzIGFuZCBpZiB0aGUgdHJhY2sncyB0eXBlIGRvZXMgbm90CisgICAgICAgIGNv
bmZvcm0gdG8gdGhlIGFsbG93ZWQgdHlwZXMsIHN5bnRoZXNpemUgYW4gZXJyb3IgYW5kIGJsb2Nr
IGZ1cnRoZXIgbG9hZGluZy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRl
ZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjphbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6
OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29udGVudFR5cGVVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
bnRUeXBlc1RvQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUeXBlTWVldHNDb250
YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRpb25h
bFN0cmluZ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpudWxsT3B0aW9uYWxGb3VyQ0NWZWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5leHRCZXN0TWVkaWFFbmdpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFW
aWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjps
b2FkaW5nTWV0YWRhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRlbnRUeXBlc1RvQ29kZWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJh
Y2tzQXJlUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tJc1BsYXlhYmxlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjphc3NldFRyYWNr
TWV0YWRhdGFLZXlOYW1lcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNl
dHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDIyLTAyLTAzICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRvcHQgLXN0cmVhbURhdGFQYXJzZXI6
ZGlkUHJvdmlkZUNvbnRlbnRLZXlTcGVjaWZpZXI6Zm9yVHJhY2tJRDogZGVsZWdhdGUgY2FsbGJh
Y2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGIyMDUyYzk4MjZlNDhhYjFjZjFlOThiMmM1ZDQyODk2
MzI2MmY0MWEuLjYxYWVlYzYxNjlhMDgyODY4ZWE2MzJmNzVhOTg2MDI3MzI4MDBkNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBt
ZWRpYSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9jb2Nv
YS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbToKKwogMjAyMi0wMi0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBwcml2YXRlIHJlbGF5IGZvciBhbGwgc3Vi
cmVzb3VyY2VzIGlmIHRoZSBtYWluIGRvY3VtZW50IG1haW4gcmVzb3VyY2Ugd2FzIGxvYWRlZCB1
c2luZyBwcml2YXRlIHJlbGF5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZhZDZjYmE4OTM3ZGYxZTI3MWY2M2Q4MjEx
ZWQzODkxYjNmNTEyN2QuLmE1YzdjNzY1YmU2ODRiYzI1NTNhYWZlMjdiYjNiMWYyMWJjMzA0Mjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlh
IGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlciBjYWNoZXMgdGhlIHJlc3VsdHMgb2Ygc3VwcG9ydHNUeXBlQW5kQ29kZWNzKCkg
Y2FsbHMsIHdoaWNoCisgICAgICAgIGlzIHByb2JsZW1hdGljIHdoZW4gdGhvc2UgcmVzdWx0cyBj
YW4gY2hhbmdlIGR1ZSB0byBhIGNoYW5nZSBpbiBzZXR0aW5ncy4gU28gZW5mb3JjZQorICAgICAg
ICB0aGUgYWxsb3dlZCBjb2RlYyBhbmQgY29udGFpbmVycyBzZXR0aW5ncyBhdCB0aGUgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyIGxldmVsLiBBbHNvLAorICAgICAgICBwYXNzIHRob3NlIHNldHRp
bmdzIGFjcm9zcyB0aGUgR1BVIHByb2Nlc3MgYm91bmRhcnkgdmlhIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uLgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogcmVmYWN0b3IgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246OmRlY29kZSgpIHNvIGFzIG5vdCB0byBy
ZXF1aXJlCisgICAgICAgIHJlLWRlY2xhcmluZyB0aGUgdHlwZXMgb2YgZXZlcnkgaXZhciwgYW5k
IGdyZWF0bHkgc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246
OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKToKKwogMjAyMi0wMi0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkb3B0IC1zdHJlYW1EYXRhUGFyc2VyOmRpZFByb3Zp
ZGVDb250ZW50S2V5U3BlY2lmaWVyOmZvclRyYWNrSUQ6IGRlbGVnYXRlIGNhbGxiYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IGU3OWM3ZDkyZDEyOGE4NjY4ZjM0YzMyNDE4NTM5MTQ2MzMxZjJlY2UuLjRhYTY3YTMxMjk4
MDRkYTlmZjhlNmE0NDk0NTk2YzQ2NjFmZjllMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI2LDYgKzEzMjYsMTQg
QEAgTWF4UGFyc2VEdXJhdGlvbjoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogLTEKIAor
TWVkaWFBdWRpb0NvZGVjSURzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGU6CisgIHR5cGU6IFN0
cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnImFhYyAsemFhYyxxYWFj
LGNhYWMsLm1wMyInCisKIE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZDoKICAgdHlwZTogYm9vbAog
ICBkZWZhdWx0VmFsdWU6CkBAIC0xMzM2LDYgKzEzNDQsMzAgQEAgTWVkaWFDYXBhYmlsaXRpZXNF
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJpbmcK
KyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJjNjA4LHd2dHQiJworCitNZWRp
YUNvZGVjVHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisg
IHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZh
bHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6ICcibXA0YS40MCxhdmMxIicKKworTWVk
aWFDb250YWluZXJUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJp
bmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZh
dWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJ2aWRlby9tcDQsYXVkaW8v
bXA0LHZpZGVvL3gtbTR2LGF1ZGlvL3gtbTRhLGF1ZGlvL21wMyxhcHBsaWNhdGlvbi94LW1wZWdV
Ukwsdm5kLmFwcGxlLm1wZWdVUkwiJworCiBNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydDoKICAgdHlwZTogU3RyaW5nCiAgIHdlYmNvcmVFeGNsdWRlRnJvbUludGVybmFs
U2V0dGluZ3M6IHRydWUKQEAgLTE0NTUsNiArMTQ4NywxNCBAQCBNZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhVmlkZW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBT
dHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJhdmMxLHphdmMscWF2
YyxjYXZjIicKKwogTWVudUl0ZW1FbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCA1OTVlNDI1NDI3ZThl
YmFjOWY1YWI2YWYxMGE1NzNjMDU0NWJiNGFiLi45MTI3NDdmNDA2YzI5NTk0OTk3M2I1YmIxMzQ5
ZGJjYTY3NDFjMTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291
cmNlL01lZGlhU291cmNlLmNwcApAQCAtMzYsNiArMzYsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9U
cmFja0xpc3QuaCIKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRU
eXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtOTA5LDYgKzkxMCwxNyBAQCBi
b29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgU3RyaW5nJgogICAgIHBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSA9IHRy
dWU7CiAgICAgcGFyYW1ldGVycy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQg
PSBXVEZNb3ZlKGNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKKyAgICBp
ZiAoY29udGV4dC5pc0RvY3VtZW50KCkpIHsKKyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSBkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCkuc2V0dGluZ3MoKTsKKyAgICAgICAgaWYgKCFjb250ZW50
VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKGNvbnRlbnRUeXBlLCBz
ZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpLCBzZXR0aW5ncy5hbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHBh
cmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBzZXR0aW5ncy5hbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgICAg
IHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IHNldHRpbmdzLmFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICAgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0
aW9uRm9ybWF0VHlwZXMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KTsKKyAgICB9CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1l
ZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAKICAgICBpZiAoY29kZWNzLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcAppbmRleCAyYjNjZGUzNjA4MjQ3MWMxMWM4N2ZjZjYxY2M4MWNjMzYwYzM5
ZDkwLi5lMDY5MjcwZGY2YjZkMWU3YmZiYzNlMjA5MzI3Njc2YjJkOGEzOTk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKICNpbmNsdWRlICJB
dWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUg
IkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgpAQCAtMzU1LDYgKzM1
NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTb3VyY2VCdWZmZXI6OmNoYW5nZVR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogICAgIC8vIHRoZSB0eXBlcyBzcGVjaWZpZWQgKGN1cnJlbnRseSBvciBw
cmV2aW91c2x5KSBvZiBTb3VyY2VCdWZmZXIgb2JqZWN0cyBpbiB0aGUgc291cmNlQnVmZmVycyBh
dHRyaWJ1dGUgb2YKICAgICAvLyB0aGUgcGFyZW50IG1lZGlhIHNvdXJjZSwgdGhlbiB0aHJvdyBh
IE5vdFN1cHBvcnRlZEVycm9yIGV4Y2VwdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAg
Q29udGVudFR5cGUgY29udGVudFR5cGUodHlwZSk7CisKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGRv
Y3VtZW50KCkuc2V0dGluZ3MoKTsKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJB
bmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29udGVudFR5cGUsIHNldHRpbmdzLmFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCksIHNldHRpbmdzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCiAgICAgaWYg
KCFtX3ByaXZhdGUtPmNhblN3aXRjaFRvVHlwZShjb250ZW50VHlwZSkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogCkBAIC03ODYsNiArNzkyLDI1IEBA
IHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxp
emF0aW9uU2VnbWVudChJbml0aWFsaXphCiAgICAgICAgIC8vIDUuMSBJZiB0aGUgaW5pdGlhbGl6
YXRpb24gc2VnbWVudCBjb250YWlucyB0cmFja3Mgd2l0aCBjb2RlY3MgdGhlIHVzZXIgYWdlbnQg
ZG9lcyBub3Qgc3VwcG9ydCwKICAgICAgICAgLy8gdGhlbiBydW4gdGhlIGFwcGVuZCBlcnJvciBh
bGdvcml0aG0gd2l0aCB0aGUgZGVjb2RlIGVycm9yIHBhcmFtZXRlciBzZXQgdG8gdHJ1ZSBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgICAgIC8vIE5PVEU6IFRoaXMgY2hlY2sgaXMgdGhlIHJl
c3BvbnNpYmlsaXR5IG9mIHRoZSBTb3VyY2VCdWZmZXJQcml2YXRlLgorICAgICAgICBpZiAoYXV0
byYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgYXVkaW9U
cmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1
ZGlvVHJhY2tJbmZvLmRlc2NyaXB0aW9uICYmIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMtPmNv
bnRhaW5zKEZvdXJDQzo6ZnJvbVN0cmluZyhhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbi0+Y29k
ZWMoKSkpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBh
cHBlbmRFcnJvcih0cnVlKTsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmIChhdXRvJiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gZG9jdW1lbnQoKS5zZXR0
aW5ncygpLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSkgeworICAgICAgICAgICAgZm9yIChh
dXRvJiB2aWRlb1RyYWNrSW5mbyA6IHNlZ21lbnQudmlkZW9UcmFja3MpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmlkZW9UcmFja0luZm8uZGVzY3JpcHRpb24gJiYgYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcy0+Y29udGFpbnMoRm91ckNDOjpmcm9tU3RyaW5nKHZpZGVvVHJhY2tJbmZvLmRlc2Ny
aXB0aW9uLT5jb2RlYygpKSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIGFwcGVuZEVycm9yKHRydWUpOworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAKICAgICAgICAgLy8gNS4yIEZvciBlYWNoIGF1ZGlvIHRyYWNrIGluIHRoZSBpbml0aWFs
aXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8m
IGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGE5N2E4
NzYxZTk2NDgxMDgxNzIxYmVjNTI3YzAxMGJlNDUzZmQzOTcuLjk3NzIxNThmYTlhNTQ2YjQ2NzU3
OTI3YTAzMWMyOGQxMGJkYTQyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKQEAgLTEyNyw2ICsxMjcsMTQgQEAgU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVk
aW8sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWTWVkaWFUeXBlQXVkaW8gUEFMOjpnZXRfQVZGb3Vu
ZGF0aW9uX0FWTWVkaWFUeXBlQXVkaW8oKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlTWV0YWRhdGEsIE5TU3RyaW5nICopCiAjZGVm
aW5lIEFWTWVkaWFUeXBlTWV0YWRhdGEgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWTWVkaWFUeXBl
TWV0YWRhdGEoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5IFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXkoKQor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24s
IEFWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICopCisjZGVm
aW5lIEFWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXkgUEFMOjpnZXRfQVZGb3Vu
ZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXkoKQorU09GVF9MSU5L
X0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJM
QXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FW
VVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXkoKQorU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2Fi
bGVDYXB0aW9uRm9ybWF0c0tleSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93
YWJsZUNhcHRpb25Gb3JtYXRzS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxs
b3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIo
UEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9t
UmVmZXJlbmNpbmdVUklLZXksIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWVVJMQXNzZXRJbmhlcml0
VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklLZXkgUEFMOjpnZXRfQVZGb3VuZGF0
aW9uX0FWVVJMQXNzZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklL
ZXkoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFW
QXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9kZUNsZWFuQXBlcnR1cmUsIE5TU3RyaW5nICop
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbQppbmRleCBiZDZlYmJjYjk5MTNkYThjMTJhOGI5NmFhMmJlMTI4ZjA4MTkzNzdkLi42
ZGI5MjViYWYzZTUyZTJkMmRjMWRhODc4NTliZmVmODk1NDgwMzAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE4
Miw2ICsxODIsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxlQnVmZmVyQXVkaW8KIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQ
YXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3RvY29sVmVyc2lvbnNLZXksIE5TU3RyaW5nICosIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNzaW9uQ29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRl
bnRpZmllckNoYW5nZWROb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZTdHJlYW1pbmdLZXlEZWxpdmVyeUNvbnRlbnRLZXlUeXBlLCBOU1N0cmluZyAqLCBQQUxfRVhQ
T1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxl
QXVkaW9Db2RlY1R5cGVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICosIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDYWNoZUtleSwgTlNTdHJp
bmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50
RnJvbVJlZmVyZW5jaW5nVVJJS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFja3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IGJkYzNkNmFmMzc2NTAwYmFkOGVkOWU4MjE0ZDNjNGZlY2U2MjI4
ZWUuLjYwMjFkZWQ4MTQwNzFlNGMyZDc4YjhhYzc4MzVhYjVhZWQ0MjIzNGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0yMDAzLDYgKzIwMDMsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6
YXRpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENv
bnRyb2xsZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvRGVzdGluYXRpb25Db2xvclNwYWNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRGlz
cGxheVJlZnJlc2hNb25pdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYxZjhhNTEwNGI2YjI5NTZmMmJmMWQyNmM1MWQ4
NzMzZWQyNThjZDkuLjAxOTVlMGUwNjgwN2MxN2U3ZDlhZTc3ODJmZDA1OTExYWNlMmEwMDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ1NjIsNiArNDU2Miw3IEBACiAJCUNEQUI2RDJFMTdDODE0RUUwMEM2MEIzNCAvKiBKU01l
ZGlhQ29udHJvbHNIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREFCNkQyQzE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5o
ICovOyB9OwogCQlDREFCNkQzMTE3QzkyNTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMkYx
N0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHMuaCAqLzsgfTsKIAkJQ0RBQzA2ODMy
NEM2QTk1QTAwMkY3MjdGIC8qIFZQOVV0aWxpdGllc0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDZGRTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyog
VlA5VXRpbGl0aWVzQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlDREFEMUE1QTI3QUZDMjdDMDA2OTkyODUgLyogQ29udGVudFR5cGVVdGls
aXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
QUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQjYzNTQ5MjNGNjAy
M0EwMEMwRjlERSAvKiBXZWJBVlBsYXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTJDMUNCRjczRkMwMDkwMUNDRiAvKiBX
ZWJBVlBsYXllckNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlDREI3MDQ1QTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlT
dHJlYW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVhbWluZy5oICovOyB9
OwogCQlDREI3MDQ1QjFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCNzA0NTkx
Rjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCAqLzsgfTsKQEAgLTE2
MTU2LDYgKzE2MTU3LDggQEAKIAkJQ0RBQjZEMkMxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVkaWFD
b250cm9sc0hvc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUNv
bnRyb2xzSG9zdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFCNkQyRjE3Qzky
NTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBVc2VyQWdlbnRTY3JpcHRzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJD
b3JlL1VzZXJBZ2VudFNjcmlwdHMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJQ0RBQjZEMzAxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVzZXJBZ2VudFNjcmlwdHNE
YXRhLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U2NyaXB0c0Rh
dGEuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlDREFEMUE1NzI3
QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29udGVudFR5cGVVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RB
RDFBNTgyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RBRThDMDcxNzQ2Qjk1NzAwNTMyRDc4IC8qIFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREFFOEMwODE3NDZCOTU3MDA1MzJENzggLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9u
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREI3MDQ1ODFGNzQ2NUEx
MDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4ODQ1LDYg
KzI4ODQ4LDggQEAKIAkJCQlDMkY0RTc4OTFFNDVBRURGMDA2RDcxMDUgLyogQ29tcGxleFRleHRD
b250cm9sbGVyLmggKi8sCiAJCQkJMUM4NEJFNDEyNkQzOTM5RjAwMkQ2MUZDIC8qIENvbXBvc2Vk
Q2hhcmFjdGVyQ2x1c3RlclRleHRJdGVyYXRvci5oICovLAogCQkJCTcyQkFDM0E3MjNFMTczMjgw
MDhENzQxQyAvKiBDb25jcmV0ZUltYWdlQnVmZmVyLmggKi8sCisJCQkJQ0RBRDFBNTgyN0FGQkYz
OTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcCAqLywKKwkJCQlDREFEMUE1NzI3
QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuaCAqLywKIAkJCQkyRDJGQzA1
NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJ
CTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICov
LAogCQkJCUE4Q0I0MTAyMEU4NUI4QTUwMDMyQzRGMCAvKiBEYXNoQXJyYXkuaCAqLywKQEAgLTMz
ODc0LDYgKzMzODc5LDcgQEAKIAkJCQlDRTc5OUY5ODFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVu
dFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlGQUMx
QzZBNTA2NjAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJlY3Rp
dmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250
ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0RBRDFBNUEyN0FGQzI3QzAwNjk5Mjg1IC8q
IENvbnRlbnRUeXBlVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzYyN0I4RTE0RkIz
Q0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzQjZBMEU2MEIwQkNBNUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYXB0aW9u
cy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZTg3
NjlkNTQwNzhkZDViMTZmMWE5MjVkYTI1NWI4ODE3OTViYmQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzCkBAIC0wLDAgKzEsMjggQEAKK3ZpZGVvOjpj
dWUoKikgeworICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKK30KKwor
dmlkZW86OmN1ZSg6ZnV0dXJlKSA+ICogeworICAgIGNvbG9yOiBncmF5OworfQorCit2aWRlbzo6
LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRpc3BsYXkgeworICAgIGZvbnQ6IDIycHggc2Fucy1z
ZXJpZjsgLyogS2VlcCBpbiBzeW5jIHdpdGggYERFRkFVTFRDQVBUSU9ORk9OVFNJWkVgLiAqLwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciBiIHsKKyAgICBm
b250LXdlaWdodDogYm9sZDsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1j
b250YWluZXIgdSB7CisgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIGkgeworICAgIGZvbnQtc3R5bGU6
IGl0YWxpYzsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24gewor
ICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC44KTsKKyAgICBjb2xvcjogcmdiYSgyNTUs
IDI1NSwgMjU1LCAxKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CmluZGV4IGZhZmRhNzZhNDMxNzc1ZjkzYTY4NmU1NTY1OWE5MzJjZWQ3ZDFiMmQuLjQ5NmM2YTlj
YjIzYTZhMmE5NTM5M2Y4YTQ2ZTg2MjA5NDc3MGFhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTA4OSw2ICsxMDg5LDEyIEBAIFN0cmluZyBIVE1MTWVk
aWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAg
IENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKG1pbWVUeXBlKTsKICAgICBwYXJhbWV0ZXJzLnR5cGUg
PSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCA9IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCk7
CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVz
ID0gYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0
ZXJzLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
KCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKwogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAg
ICAgU3RyaW5nIGNhblBsYXk7CiAKQEAgLTc0MTQsNiArNzQyMCwzMSBAQCBib29sIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdAor
eworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIEhUTUxN
ZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdAoreworICAgIHJldHVy
biBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworfQorCitj
b25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCku
c2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7Cit9CisKK2NvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygp
LmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8Rm91ckNDPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKQogewogICAgIGlmICghbV90
ZXh0VHJhY2tzIHx8IG1fYnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZFRhc2tDYW5jZWxsYXRpb25H
cm91cC5oYXNQZW5kaW5nVGFzaygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCAzMjllNjNlYTU2MmI3OTA2ZDE3M2E5NjE3OWNjZTc4NDQxOGNjZjdhLi4wMDQ5MTg2
MTNlYjkzMTEwNjIzYjAzYmFmZjk3NjFkNjMwYzQ4Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtNzcwLDYgKzc3MCwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wg
bWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xlZXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzaG91
bGREaXNhYmxlU2xlZXAoKSA9PSBTbGVlcFR5cGU6OkRpc3BsYXk7IH0KICAgICBib29sIG1lZGlh
UGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKICAgICBjb25z
dCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJl
U3VwcG9ydCgpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsOworICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4m
IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNv
bnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgbWVk
aWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoR1NU
UkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwCmluZGV4IDdmNTRkODc2OGNj
MmZhMzY0ZTU0NDFjZThkNDBkYTg1NjA3OWM2ZmIuLmNlNzMyYjEyYTljNTUyYTliNDJmZTZiZDFj
ZGFlN2MwYTkzZTcxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTE5
OSw3ICsxOTksODEgQEAgdm9pZCBTZXR0aW5nc0Jhc2U6OnNldE1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KGNvbnN0IFZlY3RvcjxDb24KICAgICBtX21lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gY29udGVudFR5cGVzOwogfQogCit2b2lk
IFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5n
JiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFZlY3RvcjxTdHJpbmc+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDog
U3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkKKyAgICAgICAgbmV3VHlwZXMuYXBwZW5kKHR5
cGUudG9TdHJpbmcoKSk7CisKKyAgICBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RG
TW92ZShuZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFD
b2RlY1R5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgp
KSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IG5ld1R5cGVzOworICAg
IGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkKKyAgICAgICAg
bmV3VHlwZXMuYXBwZW5kKHR5cGUudG9TdHJpbmcoKSk7CisKKyAgICBtX2FsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBp
ZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
ID0gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZv
dXJDQz4gbmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5z
cGxpdCgnLCcpKSB7CisgICAgICAgIGlmIChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmlu
Zyh0eXBlKSkKKyAgICAgICAgICAgIG5ld1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsK
KyAgICB9CisKKyAgICBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKG5ld1R5
cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAg
ICAgICAgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gc3RkOjpudWxsb3B0OworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZvdXJDQz4gbmV3VHlwZXM7CisgICAgZm9y
IChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgnLCcpKSB7CisgICAgICAgIGlm
IChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmluZyh0eXBlKSkKKyAgICAgICAgICAgIG5l
d1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsKKyAgICB9CiAKKyAgICBtX2FsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5n
c0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhjb25zdCBTdHJpbmcmIHR5
cGVzKQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFZlY3RvcjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDog
U3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0Mg
PSBGb3VyQ0M6OmZyb21TdHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQo
V1RGTW92ZSgqZm91ckNDKSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9y
bWF0VHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KIAogLy8gTUFSSyAtIG9uQ2hhbmdlIGhh
bmRsZXJzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCmluZGV4IDQwZGRiOGE3ZjdhZjg0
NWQ0YjY1ZTYzMGZiN2FiMmU2NTRiYTFjOTIuLmUzNjEwYTI1ZmIzMzllMDNhY2M2M2JlMTRmMDA2
MzI4MDhjMGNkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKICNpbmNsdWRlICJGb250
UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5oIgor
I2luY2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkZyYW1lRmxhdHRlbmluZy5oIgogI2luY2x1
ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJFbnVtcy5oIgpAQCAtMTA4LDYgKzEwOSwyNiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChjb25z
dCBTdHJpbmcmKTsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7IH0KIAorICAgIHZvaWQgc2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiB0eXBl
cykgeyBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKGNvbnN0
IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQ29kZWNU
eXBlcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgeyByZXR1
cm4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOyB9CisKKyAgICB2b2lkIHNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mJiB0eXBlcykgeyBt
X2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcm
KTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
czsgfQorCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEZvdXJDQz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
ID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25h
bDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiYg
dHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBXVEZNb3ZlKHR5cGVz
KTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCB7IHJldHVybiBt
X2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgU2V0dGluZ3NCYXNlKFBhZ2UqKTsKICAgICB2aXJ0dWFsIH5TZXR0aW5nc0Jhc2UoKTsK
QEAgLTE1MCw2ICsxNzEsMTEgQEAgcHJvdGVjdGVkOgogICAgIFRpbWVyIG1fc2V0SW1hZ2VMb2Fk
aW5nU2V0dGluZ3NUaW1lcjsKIAogICAgIFZlY3RvcjxDb250ZW50VHlwZT4gbV9tZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+IG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzOwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBzdGF0aWMg
Y29uc3RleHByIGNvbnN0IGZsb2F0IGJvb3N0ZWRPbmVMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmlj
aWVudCA9IDIuMjMxMjVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZDc1NTI4MTYx
N2IwYWM4OGI3NDBmZGMwZTc2MzllNWI1ZmZjODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
b250ZW50VHlwZVV0aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpbmNsdWRl
ICJGb3VyQ0MuaCIKKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgorCitib29sIGNvbnRlbnRU
eXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29uc3QgQ29udGVudFR5
cGUmIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcywgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMpCit7CisgICAgaWYgKGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzICYmICFhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcy0+Y29udGFpbnModHlwZS5jb250YWlu
ZXJUeXBlKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWFsbG93ZWRNZWRp
YUNvZGVjVHlwZXMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGFsbE9mKHR5
cGUuY29kZWNzKCksIFsmXSAoYXV0byYgY29kZWMpIHsKKyAgICAgICAgcmV0dXJuIGFueU9mKCph
bGxvd2VkTWVkaWFDb2RlY1R5cGVzLCBbJl0gKGF1dG8mIGFsbG93ZWRDb2RlYykgeworICAgICAg
ICAgICAgcmV0dXJuIGNvZGVjLnN0YXJ0c1dpdGgoYWxsb3dlZENvZGVjKTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5YzRkMmI5YTRlOWJl
YTJmMmNjNmFjN2YzMGQzNGI0YjgxODVhNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEs
MzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbnRlbnRUeXBl
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgRm91ckNDOworCitXRUJDT1JFX0VYUE9SVCBib29sIGNvbnRlbnRUeXBlTWVldHNDb250
YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm91ckNDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAppbmRl
eCAyNGUyNTVkZjQ0ZmIxZjc4NzE0YzU4ZTk5OTkxMDEyNmQ0NjljMGFiLi5iMzdkMDUwZTljMGMz
Njc3MDdkYWUwYjZhY2NiMWJjMzdmOGVhYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb3VyQ0MuaApAQCAtMzcsNiArMzcsMTggQEAgc3RydWN0IEZvdXJDQyB7CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91ckNDPiBmcm9tU3RyaW5nKFN0cmluZ1ZpZXcpOwogCiAg
ICAgdWludDMyX3QgdmFsdWUgeyAwIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
ICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHZhbHVlOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgor
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgRm91ckNDJiBjb25maWd1cmF0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24udmFsdWUpOworICAgIH0KIH07CiAKIGNvbnN0ZXhwciBib29s
IG9wZXJhdG9yPT0oRm91ckNDLCBGb3VyQ0MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGFjMzVlNzAwOTRiMjI1YzZjNDI3NTEy
OTE5MDE3Njg2MWVjOWUyNzMuLmE1ZGRmM2VmYzQxZDg3YTg0YmYxYjQwZDI3NTdiZTg0YzE5MDQ0
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5j
bHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCisjaW5jbHVkZSAiRm91ckNDLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1
ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKQEAgLTE3Niw2ICsxNzcsMTggQEAgc3RhdGljIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4mIG51bGxDb250ZW50VHlwZVZlY3RvcigpCiAg
ICAgcmV0dXJuIHZlY3RvcjsKIH0KIAorc3RhdGljIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+JiBudWxsT3B0aW9uYWxTdHJpbmdWZWN0b3IoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+Pj4gdmVjdG9yOworICAgIHJl
dHVybiB2ZWN0b3I7Cit9CisKK3N0YXRpYyBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3Vy
Q0M+PiYgbnVsbE9wdGlvbmFsRm91ckNDVmVjdG9yKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4+IHZlY3RvcjsKKyAgICByZXR1cm4g
dmVjdG9yOworfQorCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJDbGllbnQgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJDbGllbnQgewogcHJpdmF0ZToKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKQEAgLTE5
Nyw2ICsyMTAsMTIgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1lZGlhUGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQo
Y29uc3QgU3RyaW5nJikgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCisK
KyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9uYWxTdHJpbmdWZWN0
b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbE9wdGlvbmFsU3RyaW5n
VmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25h
bEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckND
Pj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxs
T3B0aW9uYWxGb3VyQ0NWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKTsgfQogfTsKIAogY29uc3QgVmVjdG9y
PENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKQEAgLTUyOSw2ICs1NDgsMTEgQEAgY29uc3QgTWVk
aWFQbGF5ZXJGYWN0b3J5KiBNZWRpYVBsYXllcjo6bmV4dEJlc3RNZWRpYUVuZ2luZShjb25zdCBN
ZWRpYVBsYXllckZhY3QKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHBhcmFtZXRlcnMu
aXNNZWRpYVN0cmVhbSA9ICEhbV9tZWRpYVN0cmVhbTsKICNlbmRpZgorICAgIHBhcmFtZXRlcnMu
YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygp
OworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBh
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzID0gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRl
cnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gYWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKCk7CiAKICAgICBpZiAobV9hY3RpdmVFbmdpbmVJZGVudGlmaWVyKSB7CiAgICAg
ICAgIGlmIChjdXJyZW50KQpAQCAtMTY1Nyw2ICsxNjgxLDMxIEBAIGJvb2wgTWVkaWFQbGF5ZXI6
OnNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gY2xpZW50KCku
bWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpOwogfQogCitjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRh
aW5lclR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4m
IE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFWaWRlb0Nv
ZGVjSURzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRp
YVBsYXllcjo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNsaWVudCgpLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFD
YXB0aW9uRm9ybWF0VHlwZXMoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllcjo6YXBwbGljYXRpb25X
aWxsUmVzaWduQWN0aXZlKCkKIHsKICAgICBtX3ByaXZhdGUtPmFwcGxpY2F0aW9uV2lsbFJlc2ln
bkFjdGl2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggMmZjZDQyYWYwYWJiZTQyM2MxZmVmNzlhYmU4MzljYjk1ZmY5Yzg3Mi4uN2M2
NGY0ZTBmNjk2NDQ5MmZkOGQ2Njc4ZGY0N2NiYWZkOTFkOTRiMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZS5oIgorI2luY2x1ZGUg
IkZvdXJDQy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCkBAIC05OCw2ICs5OSwxMSBA
QCBzdHJ1Y3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyB7CiAgICAgYm9vbCBpc01lZGlh
U291cmNlIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWVkaWFTdHJlYW0geyBmYWxzZSB9OwogICAg
IFZlY3RvcjxDb250ZW50VHlwZT4gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBhbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IGFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTEwNywzNyAr
MTEzLDI2IEBAIHN0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAgICAgICAg
ZW5jb2RlciA8PCBpc01lZGlhU291cmNlOwogICAgICAgICBlbmNvZGVyIDw8IGlzTWVkaWFTdHJl
YW07CiAgICAgICAgIGVuY29kZXIgPDwgY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0OworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAg
ICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7CisgICAgICAgIGVuY29kZXIg
PDwgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICB7Ci0g
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Q29udGVudFR5cGU+IHR5cGU7Ci0gICAgICAgIGRlY29kZXIg
Pj4gdHlwZTsKLSAgICAgICAgaWYgKCF0eXBlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFVSTD4gdXJsOwotICAgICAgICBkZWNvZGVy
ID4+IHVybDsKLSAgICAgICAgaWYgKCF1cmwpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNNZWRpYVNvdXJjZTsKLSAgICAg
ICAgZGVjb2RlciA+PiBpc01lZGlhU291cmNlOwotICAgICAgICBpZiAoIWlzTWVkaWFTb3VyY2Up
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gaXNNZWRpYVN0cmVhbTsKLSAgICAgICAgZGVjb2RlciA+PiBpc01lZGlhU3RyZWFt
OwotICAgICAgICBpZiAoIWlzTWVkaWFTdHJlYW0pCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPENvbnRlbnRUeXBlPj4gdHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZTsKLSAgICAgICAgZGVjb2RlciA+PiB0eXBlc1JlcXVpcmluZ0hh
cmR3YXJlOwotICAgICAgICBpZiAoIXR5cGVzUmVxdWlyaW5nSGFyZHdhcmUpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0eXBl
KSwgV1RGTW92ZSgqdXJsKSwgKmlzTWVkaWFTb3VyY2UsICppc01lZGlhU3RyZWFtLCAqdHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZSB9fTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMudHlwZSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXJs
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pc01lZGlhU291cmNl
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pc01lZGlhU3RyZWFt
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKQorICAgICAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKQorICAgICAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5h
bGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMpOwogICAgIH0KIH07CiAKQEAgLTI3Niw2ICsy
NzEsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYg
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5
cGVzKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRU
aW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNlZWth
YmxlVGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KIApAQCAtNjM1LDYgKzYzNiwxMiBAQCBwdWJsaWM6
CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZENoZWNrSGFyZHdhcmVT
dXBwb3J0KCkgY29uc3Q7CiAKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0Owor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCkgY29uc3Q7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckND
Pj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkg
Y29uc3Q7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1l
ZGlhUGxheWVyTG9nZ2VyKCk7CiAgICAgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlm
aWVyKCkgeyByZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApp
bmRleCA2MjY3YjgzMzIxMjk5YjEzZWE3ZWQyYTQwNWU0Y2JiODVlNDQ4ODNiLi5mNGIzNWQ3Njlk
NzI3OTdhMmZhZDQ1ZWI3ODJiZGQyNWM5MjZjZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0zMjksNiArMzI5LDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TmVlZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogICAg
IHZvaWQgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIAorICAgIGJvb2wgbG9hZGluZ01ldGFkYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nTWV0YWRhdGE7IH0KKwogcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBhYWNkNzM3
Yjk2MzU4YzBmNTNjZTM3N2E1OTY1NDA1NmE5Y2IyMGNjLi5mNGI3NGMxMWEyZmQyMjU5MGE5MjE2
YTRkOTE0MzUxOWEwZTIwNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zNTAsNiArMzUw
LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gdmlk
ZW9GcmFtZU1ldGFkYXRhKCkgZmluYWwgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX3ZpZGVvRnJh
bWVNZXRhZGF0YSwgeyB9KTsgfQogICAgIHZvaWQgY2hlY2tOZXdWaWRlb0ZyYW1lTWV0YWRhdGEo
KTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYWxsVHJhY2tzQXJlUGxheWFibGUoKSBjb25z
dDsKKyAgICBib29sIHRyYWNrSXNQbGF5YWJsZShBVkFzc2V0VHJhY2sqKSBjb25zdDsKKwogICAg
IFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVy
PiBtX2F2UGxheWVyOwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVt
OwpAQCAtNDQ3LDcgKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhY2hlZENhblBsYXlG
YXN0Rm9yd2FyZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhY2hlZENhblBsYXlGYXN0UmV2ZXJz
ZSB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkQXNzZXRJc0xvYWRlZCB7IGZh
bHNlIH07CisgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkVHJhY2tzQXJlTG9hZGVkIHsgZmFsc2Ug
fTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRBc3NldElzUGxheWFi
bGU7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fY2FjaGVkVHJhY2tzQXJlUGxh
eWFibGU7CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkT2Jz
ZXJ2ZVRpbWVDb250cm9sU3RhdHVzIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IDJmNjVhNTc5NmUzNzNhY2FmZTMzMWVlYmU3N2UwZWM0Njg4NmU5ZmQuLmU4MDNkMjZjMmVjNGU1
YTQwMmMwYzczNzZlNDc0MjdmNTUyOTgyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
MzgsMTAgKzM4LDEyIEBACiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIgog
I2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkNvbG9yU3BhY2VDRy5oIgorI2ltcG9y
dCAiQ29udGVudFR5cGVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAi
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCiAjaW1wb3J0ICJFeHRlbnNpb25zR0wuaCIKICNp
bXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgorI2ltcG9ydCAiRm91ckNDLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkltYWdlUm90YXRpb25TZXNzaW9uVlQuaCIKICNp
bXBvcnQgIkluYmFuZENoYXB0ZXJUcmFja1ByaXZhdGVBVkZPYmpDLmgiCkBAIC02Niw2ICs2OCw3
IEBACiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNl
cldlYk0uaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJV
VElVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9y
dCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIuaCIKQEAgLTk0OCw2ICs5NTEsMzggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXQK
ICAgICAgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpATk8gZm9yS2V5OkFWVVJMQXNzZXRVc2Vz
Tm9QZXJzaXN0ZW50Q2FjaGVLZXldOwogICAgIH0KIAorICAgIGF1dG8gYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAg
ICBpZiAoYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91bmRh
dGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXkoKSkgeworICAgICAgICBh
dXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAg
ICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAg
ICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6KE5TU3RyaW5nICopVVRJRnJvbU1JTUVUeXBlKHR5
cGUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFW
VVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleV07CisgICAgfQorCisgICAgYXV0byBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoKTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyAmJiBQQUw6OmNhbkxv
YWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXkoKSkg
eworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAg
ICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRB
bGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXldOworICAgIH0KKworICAgIGF1dG8gYWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7
CisgICAgaWYgKGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91
bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5KCkpIHsKKyAgICAg
ICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMpCisg
ICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6QCh0eXBlLnZhbHVlKV07CisgICAgICAgIFtv
cHRpb25zIHNldE9iamVjdDpuc1R5cGVzLmdldCgpIGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxl
VmlkZW9Db2RlY1R5cGVzS2V5XTsKKyAgICB9CisKKyAgICBhdXRvIGFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzICYmIFBBTDo6Y2FuTG9h
ZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5KCkpIHsK
KyAgICAgICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBp
bml0XSk7CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsK
KyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNz
ZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleV07CisgICAgfQorCiAgICAgaWYgKHdpbGxVc2VX
ZWJNRm9ybWF0UmVhZGVyKQogICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5
KCk7CiAKQEAgLTE3ODksNiArMTgyNCw3NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldEFzc2V0KFJldGFpblB0cjxpZD4mJiBhc3NldCkKICAgICBwcm9jZXNz
Q2hhcHRlclRyYWNrcygpOwogfQogCitzdGQ6Om9wdGlvbmFsPGJvb2w+IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmFsbFRyYWNrc0FyZVBsYXlhYmxlKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9hdlBsYXllckl0ZW0pIHsKKyAgICAgICAgZm9yIChBVlBsYXllckl0ZW1UcmFjayAq
dHJhY2sgaW4gW21fYXZQbGF5ZXJJdGVtIHRyYWNrc10pIHsKKyAgICAgICAgICAgIGlmICghdHJh
Y2tJc1BsYXlhYmxlKHRyYWNrLmFzc2V0VHJhY2spKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlm
ICghbV9hdkFzc2V0IHx8IFttX2F2QXNzZXQgc3RhdHVzT2ZWYWx1ZUZvcktleTpAInRyYWNrcyIg
ZXJyb3I6TlVMTF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGZvciAoQVZBc3NldFRyYWNrICphc3NldFRyYWNrIDogW21fYXZB
c3NldCB0cmFja3NdKSB7CisgICAgICAgIGlmICghdHJhY2tJc1BsYXlhYmxlKGFzc2V0VHJhY2sp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja0lzUGxheWFi
bGUoQVZBc3NldFRyYWNrKiB0cmFjaykgY29uc3QKK3sKKyAgICBpZiAocGxheWVyKCktPnNob3Vs
ZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgJiYgIWFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2Rl
UmVxdWlyZW1lbnRzKHRyYWNrLCBwbGF5ZXIoKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gZGVz
Y3JpcHRpb24gPSByZXRhaW5QdHIoKF9fYnJpZGdlIENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJh
Y2suZm9ybWF0RGVzY3JpcHRpb25zLmZpcnN0T2JqZWN0KTsKKyAgICBpZiAoIWRlc2NyaXB0aW9u
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGNvZGVjVHlwZSA9IEZvdXJDQyB7
IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3ViVHlwZShkZXNjcmlwdGlvbi5nZXQo
KSkgfTsKKyAgICBzd2l0Y2ggKFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShk
ZXNjcmlwdGlvbi5nZXQoKSkpIHsKKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9WaWRlbzogeworICAg
ICAgICBhdXRvJiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJ
RHMgJiYgIWFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsK
KyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAiVmlkZW8gdHJhY2sgd2l0aCBj
b2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2Rl
YyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9BdWRp
bzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyKCkt
PmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYUF1
ZGlvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMtPmNvbnRhaW5zKGNvZGVj
VHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAiQXVkaW8gdHJh
Y2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5vdCBjb250YWluZWQgaW4gYWxs
b3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIGtDTU1lZGlh
VHlwZV9UZXh0OgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX0Nsb3NlZENhcHRpb246CisgICAgY2Fz
ZSBrQ01NZWRpYVR5cGVfU3VidGl0bGU6IHsKKyAgICAgICAgYXV0byYgYWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBl
cygpOworICAgICAgICBpZiAoYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzICYmICFhbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAg
ICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAiVGV4dCB0cmFjayB3aXRoIGNvZGVjIHR5
cGUgJyIsIGNvZGVjVHlwZSwgIicgbm90IGNvbnRhaW5lZCBpbiBhbGxvd2VkIGNvZGVjIGxpc3Q7
IGJsb2NraW5nIik7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2Uga0NNTWVkaWFUeXBlX011eGVkOgorICAg
IGNhc2Uga0NNTWVkaWFUeXBlX1RpbWVDb2RlOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX01ldGFk
YXRhOgorICAgICAgICAvLyBOby1vcAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICAvLyBOb3RlOiB0aGUgQ01NZWRpYVR5cGUgZW51bSBtYXkgbm90IGJlIGV4Y2x1c2l2ZS4KKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjphc3NldFN0YXR1cygpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2F2QXNzZXQp
CkBAIC0xODE0LDIzICsxOTE5LDIxIEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6
QXNzZXRTdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6CiAgICAgICAg
IG1fY2FjaGVkQXNzZXRJc0xvYWRlZCA9IHRydWU7CiAgICAgfQogCi0gICAgaWYgKCFwbGF5ZXIo
KS0+c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSkKLSAgICAgICAgbV90cmFja3NBcmVQbGF5
YWJsZSA9IHRydWU7CisgICAgLy8gbV9sb2FkaW5nTWV0YWRhdGEgd2lsbCBiZSBmYWxzZSB1bnRp
bCBhbGwgdHJhY2tzJyBwcm9wZXJ0aWVzIGhhdmUgZmluaXNoZWQgbG9hZGluZy4KKyAgICAvLyBT
ZWU6IGJlZ2luTG9hZGluZ01ldGFkYXRhKCkuCisgICAgaWYgKGxvYWRpbmdNZXRhZGF0YSgpKQor
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGluZzsKIAotICAgIGlm
ICghbV90cmFja3NBcmVQbGF5YWJsZSkgewotICAgICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0g
dHJ1ZTsKLSAgICAgICAgZm9yIChBVkFzc2V0VHJhY2sgKnRyYWNrIGluIFttX2F2QXNzZXQgdHJh
Y2tzXSkgewotICAgICAgICAgICAgaWYgKCFhc3NldFRyYWNrTWVldHNIYXJkd2FyZURlY29kZVJl
cXVpcmVtZW50cyh0cmFjaywgcGxheWVyKCktPm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmVTdXBwb3J0KCkpKSB7Ci0gICAgICAgICAgICAgICAgbV90cmFja3NBcmVQbGF5YWJsZSA9
IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9
CisgICAgaWYgKCFtX2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxlKSB7CisgICAgICAgIG1fY2FjaGVk
VHJhY2tzQXJlUGxheWFibGUgPSBhbGxUcmFja3NBcmVQbGF5YWJsZSgpOworICAgICAgICBpZiAo
IW1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUpCisgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5
ZXJBVkFzc2V0U3RhdHVzTG9hZGluZzsKICAgICB9CiAKICAgICBpZiAoIW1fY2FjaGVkQXNzZXRJ
c1BsYXlhYmxlKQogICAgICAgICBtX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSA9IFtbbV9hdkFzc2V0
IHZhbHVlRm9yS2V5OkAicGxheWFibGUiXSBib29sVmFsdWVdOwogCi0gICAgaWYgKCptX2NhY2hl
ZEFzc2V0SXNQbGF5YWJsZSAmJiBtX3RyYWNrc0FyZVBsYXlhYmxlLnZhbHVlKCkpCisgICAgaWYg
KCptX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSAmJiAqbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSkK
ICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c1BsYXlhYmxlOwogCiAgICAg
cmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c0xvYWRlZDsKQEAgLTE5MzUsNiArMjAzOCw5
IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6
U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgogCisgICAgaWYgKCFjb250ZW50
VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKHBhcmFtZXRlcnMudHlw
ZSwgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcywgcGFyYW1ldGVycy5hbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGU6OklzTm90U3VwcG9ydGVkOworCiAgICAgYXV0byBzdXBwb3J0ZWQgPSBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlwZShwYXJhbWV0ZXJzLnR5cGUucmF3
KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNT
dXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7CkBAIC0zNzUwLDcgKzM4NTYsNyBA
QCBOU0FycmF5KiBpdGVtS1ZPUHJvcGVydGllcygpCiAKIE5TQXJyYXkqIGFzc2V0VHJhY2tNZXRh
ZGF0YUtleU5hbWVzKCkKIHsKLSAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNBcnJheSBh
bGxvY10gaW5pdFdpdGhPYmplY3RzOkAidG90YWxTYW1wbGVEYXRhTGVuZ3RoIiwgQCJtZWRpYVR5
cGUiLCBAImVuYWJsZWQiLCBAInByZWZlcnJlZFRyYW5zZm9ybSIsIEAibmF0dXJhbFNpemUiLCBu
aWxdOworICAgIHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0
aE9iamVjdHM6QCJ0b3RhbFNhbXBsZURhdGFMZW5ndGgiLCBAIm1lZGlhVHlwZSIsIEAiZW5hYmxl
ZCIsIEAicHJlZmVycmVkVHJhbnNmb3JtIiwgQCJuYXR1cmFsU2l6ZSIsIEAiZm9ybWF0RGVzY3Jp
cHRpb25zIiwgbmlsXTsKICAgICByZXR1cm4ga2V5czsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNWRhOTFlZTBlYWI0ZmRmZjkyMWZjNjc4
N2FhMjM0NGNkMWNmNGYxOC4uMTQyZmFmMDZlZGE0ZjE5ZGQ3NGQ2MDg0MWQ3YmU0NThjMjg3MDgx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC01
ODgsNiArNTg4LDQ4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldERl
ZmF1bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZsb2F0IHNhbXBsCiAgICAgcmV0dXJuIHsgfTsK
IH0KIAorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1f
cGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyh0eXBlcyk7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6
c2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlm
ICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
IH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXModHlw
ZXMpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0
dGluZ3M6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykK
K3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0
cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxs
b3dlZE1lZGlhQXVkaW9Db2RlY0lEcyh0eXBlcyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhj
ZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2Ut
PnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHR5cGVzKTsKKyAg
ICByZXR1cm4geyB9OworfQorCisKKwogLy8gSWYgeW91IGFkZCB0byB0aGlzIGNsYXNzLCBtYWtl
IHN1cmUgeW91IGFyZSBub3QgZHVwbGljYXRpbmcgZnVuY3Rpb25hbGl0eSBpbiB0aGUgZ2VuZXJh
dGVkCiAvLyBiYXNlIGNsYXNzIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQgYW5kIHRoYXQgeW91
IHVwZGF0ZSB0aGUgQmFja3VwIGNsYXNzIGZvciB0ZXN0IHJlcHJvZHVjYWJpbGl0eS4KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBmMWE3ZTIyMTEyMGU3
MWE5Njk5MWIzMjMzYTM4NTQzMDMxODlkNWIwLi5mYjk0Y2U3ZGRiZWYzYmM1NWJiMzc2MzFhZWRl
MTZjM2UxNTJlNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aApAQCAtMTIyLDYgKzEyMiwxMiBAQCBwdWJsaWM6CiAgICAgLy8gQXVkaW9Db250ZXh0CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0RGVmYXVsdEF1ZGlvQ29udGV4dFNhbXBsZVJhdGUoZmxvYXQp
OwogCisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMo
Y29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKGNvbnN0IFN0cmlu
ZyYpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFsU2V0dGluZ3MoUGFnZSopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBiYjZi
OGY1MjExMmRkOTk0Y2M2Yjc3ODMyMzExOThlNTkyOGJmYzFlLi5iYzQwMTk1MGE5NDcyODY5Nzhj
MDA4YWZlYjYxZjQ5MGY4YWRjYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwKQEAgLTk1LDQgKzk1LDEwIEBAIGVudW0gVXNlckludGVyZmFjZURpcmVj
dGlvblBvbGljeSB7ICJDb250ZW50IiwgIlN5c3RlbSIgfTsKIAogICAgIC8vIEF1ZGlvQ29udGV4
dAogICAgIHVuZGVmaW5lZCBzZXREZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCBz
YW1wbGVSYXRlKTsKKworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNU
eXBlcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1l
ZGlhQXVkaW9Db2RlY0lEcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKERPTVN0cmluZz8gdHlwZXMpOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5oCmluZGV4IDNkOWUwMmUwMThkZDExNjQyYmI1NmEzM2ZiY2U5NTk4MDVhOTQzZTcuLjU5
NWM1ODkxOWVhMTNmZWI5NWQ4ZmMwZDBiNDMyMzA2OGE4MmEwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApA
QCAtNzYsNiArNzYsOCBAQCBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIE1lZGlhUGxh
eWJhY2tUYXJnZXRDb250ZXh0OwogI2VuZGlmCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKKwor
c3RydWN0IEZvdXJDQzsKIH0KIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCkBAIC0yOTMsNiArMjk1
LDEyIEBAIHByaXZhdGU6CiAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYg
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBm
aW5hbDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlv
bi5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOyB9OworICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHM7IH07CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsgfTsK
KyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiYgYWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1
cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsgfTsKKwogICAgIHZvaWQgc3Rh
cnRVcGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcigpOwogICAgIHZvaWQgdXBkYXRlQ2FjaGVk
U3RhdGUoYm9vbCA9IGZhbHNlKTsKICAgICB2b2lkIHNlbmRDYWNoZWRTdGF0ZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaAppbmRleCA0YWNiNDBlMmMwOWVjNzVjZTll
ZWJiNzMxZTFkZDFjOWM2MzIxNTBmLi40ZmQ2NjFiN2QwNjcwZGM1MGQxYzc4YWRiNWY4YmFmMjk2
MmVlMTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaApAQCAtMjgs
NiArMjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGVudFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvdXJDQy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1UZXh0VHJhY2suaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDAsNiArNDEs
MTIgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHsKICAgICBT
dHJpbmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwogICAgIFN0cmluZyBuZXR3b3JrSW50
ZXJmYWNlTmFtZTsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7CisgICAgc3RkOjpvcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFBdWRp
b0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsKKwogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZl
cnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAg
VmVjdG9yPFdlYkNvcmU6OlBsYXRmb3JtVGV4dFRyYWNrRGF0YT4gb3V0T2ZCYW5kVHJhY2tEYXRh
OwpAQCAtNTgsNiArNjUsMTEgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7
CiAgICAgICAgIGVuY29kZXIgPDwgbmV0d29ya0ludGVyZmFjZU5hbWU7CiAgICAgICAgIGVuY29k
ZXIgPDwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgICAg
IGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgICAgIGVuY29kZXIg
PDwgYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
OwogICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwogI2lm
IEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgICAgIGVuY29kZXIgPDwgb3V0T2ZCYW5kVHJhY2tE
YXRhOwpAQCAtNzAsODYgKzgyLDI3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29u
ZmlndXJhdGlvbiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Ci0gICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24+
IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiByZWZlcnJlcjsKLSAg
ICAgICAgZGVjb2RlciA+PiByZWZlcnJlcjsKLSAgICAgICAgaWYgKCFyZWZlcnJlcikKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJp
bmc+IHVzZXJBZ2VudDsKLSAgICAgICAgZGVjb2RlciA+PiB1c2VyQWdlbnQ7Ci0gICAgICAgIGlm
ICghdXNlckFnZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwotICAg
ICAgICBkZWNvZGVyID4+IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKLSAgICAgICAgaWYg
KCFzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBuZXR3b3JrSW50ZXJmYWNl
TmFtZTsKLSAgICAgICAgZGVjb2RlciA+PiBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKLSAgICAgICAg
aWYgKCFuZXR3b3JrSW50ZXJmYWNlTmFtZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+
PiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKLSAgICAgICAgZGVj
b2RlciA+PiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKLSAgICAg
ICAgaWYgKCFtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8U3RyaW5nPj4gcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7Ci0gICAgICAgIGRlY29k
ZXIgPj4gcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7Ci0gICAgICAgIGlmICghcHJlZmVy
cmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0jaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2tEYXRhPj4gb3V0T2ZCYW5kVHJhY2tEYXRhOwot
ICAgICAgICBkZWNvZGVyID4+IG91dE9mQmFuZFRyYWNrRGF0YTsKLSAgICAgICAgaWYgKCFvdXRP
ZkJhbmRUcmFja0RhdGEpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlm
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IGRv
Y3VtZW50U2VjdXJpdHlPcmlnaW47Ci0gICAgICAgIGRlY29kZXIgPj4gZG9jdW1lbnRTZWN1cml0
eU9yaWdpbjsKLSAgICAgICAgaWYgKCFkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90
PiBsb2dJZGVudGlmaWVyOwotICAgICAgICBkZWNvZGVyID4+IGxvZ0lkZW50aWZpZXI7Ci0gICAg
ICAgIGlmICghbG9nSWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7
Ci0gICAgICAgIGRlY29kZXIgPj4gc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlOwotICAgICAgICBp
ZiAoIXNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpc1ZpZGVvOwotICAgICAgICBk
ZWNvZGVyID4+IGlzVmlkZW87Ci0gICAgICAgIGlmICghaXNWaWRlbykKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiByZW5kZXJp
bmdDYW5CZUFjY2VsZXJhdGVkOwotICAgICAgICBkZWNvZGVyID4+IHJlbmRlcmluZ0NhbkJlQWNj
ZWxlcmF0ZWQ7Ci0gICAgICAgIGlmICghcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCkKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIHt7Ci0gICAgICAg
ICAgICBXVEZNb3ZlKCpyZWZlcnJlciksCi0gICAgICAgICAgICBXVEZNb3ZlKCp1c2VyQWdlbnQp
LAotICAgICAgICAgICAgV1RGTW92ZSgqc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKSwKLSAg
ICAgICAgICAgIFdURk1vdmUoKm5ldHdvcmtJbnRlcmZhY2VOYW1lKSwKLSAgICAgICAgICAgIFdU
Rk1vdmUoKm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KSwKLSAgICAg
ICAgICAgIFdURk1vdmUoKnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKSwKKyAgICAgICAg
cmV0dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucmVmZXJyZXIpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnVzZXJBZ2VudCkKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25JZGVudGlm
aWVyKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5uZXR3b3Jr
SW50ZXJmYWNlTmFtZSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRp
b24ubWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJh
dGlvbi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKQorICAgICAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDYXB0aW9uRm9y
bWF0VHlwZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnBy
ZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKQogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0g
ICAgICAgICAgICBXVEZNb3ZlKCpvdXRPZkJhbmRUcmFja0RhdGEpLAorICAgICAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5vdXRPZkJhbmRUcmFja0RhdGEpCiAjZW5kaWYK
LSAgICAgICAgICAgIFdURk1vdmUoKmRvY3VtZW50U2VjdXJpdHlPcmlnaW4pLAotICAgICAgICAg
ICAgKmxvZ0lkZW50aWZpZXIsCi0gICAgICAgICAgICAqc2hvdWxkVXNlUGVyc2lzdGVudENhY2hl
LAotICAgICAgICAgICAgKmlzVmlkZW8sCi0gICAgICAgICAgICAqcmVuZGVyaW5nQ2FuQmVBY2Nl
bGVyYXRlZCwKLSAgICAgICAgfX07CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25m
aWd1cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4pCisgICAgICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25maWd1cmF0aW9uLmxvZ0lkZW50aWZpZXIpCisgICAgICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkKKyAgICAg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaXNWaWRlbykKKyAgICAgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucmVuZGVyaW5nQ2FuQmVBY2NlbGVy
YXRlZCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDU4
ZmMxZTRlZTI1NWVkNTgzMGM5OTZkZmU2OGJmMmFiZDM1M2VhZjguLjdjOWQ0NTY5YTRlNTBiMDcx
M2E3N2E4YjRhYzI0MGZhZTQ2ZGRkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRUeXBlVXRpbGl0aWVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
RnVuY3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTE2Niw2ICsxNjcsMTIg
QEAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAgICBhdXRvIGRvY3VtZW50U2VjdXJpdHlPcmln
aW4gPSBwbGF5ZXItPmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKICAgICBwcm94eUNvbmZpZ3Vy
YXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAK
KyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBwbGF5
ZXItPmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9u
LmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
KTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHBs
YXllci0+YWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpOworICAgIHByb3h5Q29uZmlndXJhdGlv
bi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyLT5hbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7CisKICAg
ICBhdXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAg
ICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIs
IHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCkBAIC0y
MDIsNiArMjA5LDEwIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQCiAgICAgaWYgKHBhcmFtZXRl
cnMuaXNNZWRpYVN0cmVhbSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5
cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlmCisKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHND
b250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0
ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMpKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNO
b3RTdXBwb3J0ZWQ7CisKICAgICByZXR1cm4gdHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIpLnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0ZXJzKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiOGY4ZGU2N2QxMmE2M2Y4
MjNhMTA1MTI5ZjA5NzEyOTVlOTlkMmI5Li40NTVjYWU3NWRhYTQ5YjUwM2NiNDhlZjdjNTc0ZDkw
ZDJmMTcyM2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNDExNiw2ICs0MTE2LDEyIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgIHNldHRpbmdzLnNl
dE1hdGhNTEVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCiAgICAgICAgIHNldHRpbmdzLnNldFBkZkpT
Vmlld2VyRW5hYmxlZCh0cnVlKTsKKworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6bWVkaWFDb250YWluZXJUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsK
KyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhzdG9yZS5nZXRTdHJp
bmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb2RlY1R5cGVzQWxsb3dlZElu
Q2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjptZWRpYVZpZGVvQ29kZWNJRHNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7
CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoc3RvcmUuZ2V0
U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhQXVkaW9Db2RlY0lEc0Fs
bG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0QWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjptZWRpYUNhcHRpb25Gb3JtYXRUeXBlc0FsbG93ZWRJbkNhcHRpdmVQ
b3J0YWxNb2RlS2V5KCkpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVcpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMzU1OGVlZjJkM2UwNDQwZTM1OWVmZjI1NDk4NWQ0ZDNkZjExODQ1OC4uYWY1
YzczNGNlNGEyYzgzNWFkNTU5ZTBkNDc0MTMyMzY0MDI3YmJiYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMzcwLDYgKzM3
MCwyMiBAQAogCiAgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CiAKKzIw
MjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGlu
IENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNv
ZGVjcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93
ZWQtY29udGFpbmVycy5odG1sOiBBZGRlZC4KKwogMjAyMi0wMS0yNSAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIHJWRkMoKSBjYWxsYmFja3MgaGF2
ZSB1cCB0byA2MG1zIGV4dHJhIGxhdGVuY3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTBkNTM5YTJmOTA2
M2FhMmM1Y2EwOTM3NDg3NGY3MWU0ZGJlYmUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMg
QEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhu
dWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lE
cyhudWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBl
cyhudWxsKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9
YXZjMSIpID09ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZp
ZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAncHJvYmFibHknKSBPSworUlVOKHZpZGVvLnNyYyA9
ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGNhbnBsYXkpIE9LCitSVU4oaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKSkKK1JVTihpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAi
KSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIp
ID09ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21w
NDsgY29kZWNzPW1wNHYiKSA9PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0
Lm1wNCIpCitFVkVOVChjYW5wbGF5KSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIikpCitFWFBFQ1RFRCAodmlk
ZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAnJykgT0sKK0VYUEVD
VEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpID09ICcnKSBP
SworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSwor
UlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMx
IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMo
Im9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBl
cygiYXZjMSxvcHVzIikpCitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZF
TlQoZXJyb3IpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMoInZwMDkiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1wNGEuNDAiKSkKK1JVTih2aWRlby5zcmMgPSAiY29udGVu
dC90ZXN0Lm1wNCIpCitFVkVOVChlcnJvcikgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxYzdiYzUwMTky
ZjRiYjg5YzgwZWFkY2YzNjdkMWQ0YWJiMGU4YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtYWxsb3dlZC1j
b2RlY3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMg
ZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAg
IGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhudWxsKScpOworICAgICAgICBydW4oJ2ludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKG51bGwpJyk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEi
KScsICdwcm9iYWJseScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBl
KCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAncHJvYmFibHknKTsKKyAgICAgICAgcnVuKCd2
aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5y
YWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZvckFuZEZhaWwo
dmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpJyk7CisgICAgICAgIHJ1
bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsbXA0
YS40MCIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVv
L21wNDsgY29kZWNzPWF2YzEiKScsICdwcm9iYWJseScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAnJyk7CisgICAg
ICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0
IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRG
b3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpJyk7CisgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKScpOwor
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KCJ2cDA5LG9wdXMiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBl
KCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCAnJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
dmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsICcnKTsKKyAgICAg
ICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQg
UHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9yJyksIHdhaXRGb3JB
bmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIiknKTsKKyAgICAgICAgcnVuKCdpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpJyk7Cisg
ICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
ImF2YzEsb3B1cyIpJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5t
cDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlk
ZW8sICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2NhbnBsYXknKV0pOworCisgICAg
ICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIp
Jyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNJRHMoImFhYyAiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1wNGEuNDAiKScpOworICAgICAgICBydW4oJ3Zp
ZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJh
Y2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlk
ZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2Vk
LWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dl
ZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OThiMDVjODkzMzMwNGEyMDE5
YzNlNDBhMTc0NDBlZTc4MDhhZWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51
bGwpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKSA9PSAnbWF5YmUn
KSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9PSAnbWF5YmUn
KSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBP
SworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygi
YXVkaW8vbXAzIikpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09
ICdtYXliZScpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpID09
ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9y
KSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cygidmlkZW8vbXA0IikpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIp
ID09ICcnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9PSAn
bWF5YmUnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVy
cm9yKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxv
d2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmZmMmQ5OTZjMzU1M2ExMzRlYTNiNjM3
NTYxNDAxNGMwN2E0YmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnM8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQg
PT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxU
ZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRh
aW5lclR5cGVzKG51bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5
cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8u
Y2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21heWJlJyk7CisgICAgICAgIHJ1bigndmlkZW8u
c3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShb
d2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVv
LCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJycpOworICAgICAgICBydW4o
J3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNl
LnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwo
dmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKScpOworICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICcnKTsKKyAgICAgICAgdGVzdEV4
cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0IiknLCAnbWF5YmUnKTsKKyAgICAg
ICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQg
UHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZv
ckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0p
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjVjYzNiZDZjZTA4N2MyMDIwZWM5ZjhmMWZjYjA1ZTE5
ZDAyMzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51
bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBj
b2RlY3M9YXZjMSIpID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVT
dXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKSkKK1JV
TihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIp
KQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMx
LG1wNGEuNDAiKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVv
L21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2Uu
aXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ2ZhbHNlJykgT0sK
K0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291
cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikpCitURVNUKHNvdXJjZUJ1ZmZlci5j
aGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikpIFRIUk9XUygiTm90U3VwcG9ydGVk
RXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKSBPSworUlVOKGludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JV
TihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVz
IikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNv
ZGVjcz1hdmMxIikgPT0gJ2ZhbHNlJykgT0sKK1RFU1QobWVkaWFTb3VyY2UuYWRkU291cmNlQnVm
ZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikpIFRIUk9XUygiTm90U3VwcG9ydGVkRXJyb3I6
IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKSBPSworRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxv
d2VkLWNvZGVjcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhN2E1MDRhNWYyMjE5NWRkMzhm
N2Q4OWVkYjY2YWUwOTg4NTRmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKQEAgLTAsMCAr
MSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRp
YS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
dmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVy
bmFscycpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworCisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsg
Y29kZWNzPWF2YzEiKScsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgdHJ1ZSk7CisKKyAg
ICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cygiYXZjMSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKScpOworCisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7
IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJj
ZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsIGZhbHNlKTsKKwor
ICAgICAgICBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB2aWRlby5z
cmNPYmplY3QgPSBtZWRpYVNvdXJjZTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihtZWRpYVNvdXJj
ZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IG1lZGlhU291
cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJyk7CisgICAgICAg
IHRlc3RFeGNlcHRpb24oJ3NvdXJjZUJ1ZmZlci5jaGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVj
cz1tcDR2IiknLCAnIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBw
b3J0ZWQuIicpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIiknKTsKKyAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVz
IiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRl
ZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgZmFsc2UpOworCisgICAgICAgIHRlc3RFeGNl
cHRpb24oJ21lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZj
MSIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVk
LiInKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDFlOTY2OWZiOGJkMjk4MTc5Y2VlZGFiMmM3YWY0YjNiYjA5MzFkZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
YWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1JVTihpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVsbCkpCitFWFBF
Q1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1ZScp
IE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KCJ2aWRlby9tcDQiKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZp
ZGVvL21wNCIpID09ICd0cnVlJykgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoInZpZGVvL3dlYm0iKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJj
ZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpID09ICdmYWxzZScpIE9LCitFTkQgT0YgVEVT
VAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzQ5
YTI5YTY3OTMxNmQ2Zjc2YmMxYjFmMjNjZGE3NDVhNWVkOTMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRh
aW5lcnMuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4gewor
ICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdS
ZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlz
VHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKScpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0
IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRp
YVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpJywgZmFsc2UpOworCisgICAgICAg
IGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10
ZXN0LmpzCmluZGV4IGEzYjZjYjdjMzE3MmYwMTE3MzJkZDk5OWFhZjdiNDQzNjVjNmRiNWUuLjNj
MDY3ZTBmOWQ3NTMwMTVjOWEzNjI5NDRlNzVhMzY2ZGVlNzg0ODIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
dGVzdC5qcwpAQCAtMjE3LDE2ICsyMTcsMzIgQEAgZnVuY3Rpb24gd2FpdEZvckV2ZW50V2l0aFRp
bWVvdXQoZWxlbWVudCwgdHlwZSwgdGltZSwgbWVzc2FnZSkgewogICAgIH0pOwogfQogCi1mdW5j
dGlvbiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIHNpbGVudCkgeworZnVuY3Rpb24gd2FpdEZvcihl
bGVtZW50LCB0eXBlLCBzaWxlbnQsIHN1Y2Nlc3MpIHsKICAgICByZXR1cm4gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBldmVu
dCA9PiB7Ci0gICAgICAgICAgICBpZiAoIXNpbGVudCkKKyAgICAgICAgICAgIGlmIChzaWxlbnQp
IHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWNjZXNzICE9PSB1bmRlZmlu
ZWQpCisgICAgICAgICAgICAgICAgbG9nUmVzdWx0KHN1Y2Nlc3MsIGBFVkVOVCgke2V2ZW50LnR5
cGV9KWApOworICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShg
RVZFTlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgcmVzb2x2
ZShldmVudCk7CiAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKICAgICB9KTsKIH0KIAorZnVu
Y3Rpb24gd2FpdEZvckFuZFN1Y2NlZWQoZWxlbWVudCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0
Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVlKTsKK30KKworZnVuY3Rpb24gd2FpdEZvckFu
ZEZhaWwoZWxlbWVudCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUs
IGZhbHNlLCB0cnVlKTsKK30KKwogZnVuY3Rpb24gd2FpdEZvckV2ZW50T25jZShldmVudE5hbWUs
IGZ1bmMsIGVuZGl0KQogewogICAgIHdhaXRGb3JFdmVudChldmVudE5hbWUsIGZ1bmMsIGVuZGl0
LCB0cnVlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451267</attachid>
            <date>2022-02-08 10:01:03 -0800</date>
            <delta_ts>2022-02-08 10:34:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236245-20220208100103.patch</filename>
            <type>text/plain</type>
            <size>84524</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDI3MTVjNzdmZDE2MjZkODIwMWJkNWI0
OGZiYWJjODY5OTE1M2UxMTQuLmY0YjdiNDhlOWI4MTVkY2ZmNjY1NGRiYmQ3NjBiYTFjZjg4YmZm
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZG9wdCAtc3RyZWFtRGF0YVBhcnNlcjpk
aWRQcm92aWRlQ29udGVudEtleVNwZWNpZmllcjpmb3JUcmFja0lEOiBkZWxlZ2F0ZSBjYWxsYmFj
aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTA5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDItMDYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV1RGXSBNYWtlIEJpdG1hcCBjb25zdGV4cHIgZnJpZW5kbHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZjA0N2JlZjhkNTdkY2QyZGJlYmNiM2NkNmIwMTQyYWU2OTM0MWQ2Li4w
OGFiOWFiZjA4ZjIzYWU3MmFkMWRiYjUzZGQ1NTE2YzM0MjA0M2Q3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC05
Nyw2ICs5NywxMjggQEAKICAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKICAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgogCisyMDIyLTAyLTAzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRvcHQgLXN0
cmVhbURhdGFQYXJzZXI6ZGlkUHJvdmlkZUNvbnRlbnRLZXlTcGVjaWZpZXI6Zm9yVHJhY2tJRDog
ZGVsZWdhdGUgY2FsbGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNjEwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBjdXJyZW50IHNldCBvZiBkZWxlZ2F0ZSBjYWxsYmFjayBtZXRob2RzIGhh
dmUgYSBzaWduaWZpY2FudCBzaG9ydGNvbWluZzogY2xpZW50cyBtdXN0CisgICAgICAgIGF0dGFj
aCBhbiBBVkNvbnRlbnRLZXlTZXNzaW9uIHRvIHRoZSBBVlN0cmVhbURhdGFQYXJzZXIgYmVmb3Jl
IHJldHVybmluZyBmcm9tIHRoZQorICAgICAgICAtc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRl
Q29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGE6Zm9yVHJhY2tJRDogY2FsbGJhY2su
IFRoaXMKKyAgICAgICAgaXMgYmVjYXVzZSB0aGUgcGFyc2VyIGl0c2VsZiBhdHRhY2hlcyB0aGUg
b2JqZWN0IHJlcXVpcmVkIHRvIGRlY3J5cHQgZWFjaCBlbmNyeXB0ZWQgc2FtcGxlCisgICAgICAg
IHRvIHRoZSBzYW1wbGUgaXRzZWxmIGF0IHRoZSBwYXJzaW5nIHN0YWdlLiBJZiBhIGNsaWVudCBk
b2VzIG5vdCBhdHRhY2ggYW4KKyAgICAgICAgQVZDb250ZW50S2V5U2Vzc2lvbiBieSB0aGUgdGlt
ZSB0aGF0IG1ldGhvZCByZXR1cm5zLCBBVlN0cmVhbURhdGFQYXJzZXIgd2lsbCBhdHRhY2ggb25l
IG9mCisgICAgICAgIGl0cyBvd24uCisKKyAgICAgICAgVGhlIHdlYi1mYWNpbmcgYmVoYXZpb3Ig
dGhpcyBjYXVzZXMgaXMgdGhhdCBNU0UgYXBwZW5kcyB3aWxsIG5vdCBjb21wbGV0ZSAoYnkgZmly
aW5nCisgICAgICAgIGFuICJ1cGRhdGVlbmQiIGV2ZW50KSBpZiBhbiBlbmNyeXB0ZWQgc2VnbWVu
dCBpcyBwYXJzZWQgdW50aWwgdGhlIGNsaWVudCBjcmVhdGVzIGFuZAorICAgICAgICBhdHRhY2hl
cyBhIE1lZGlhS2V5cyBvYmplY3Qgd2l0aCBhIHZhbGlkIHNlc3Npb24uCisKKyAgICAgICAgQSBu
ZXcgZGVsZWdhdGUgY2FsbGJhY2sgbWV0aG9kLCAtc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRl
Q29udGVudEtleVNwZWNpZmllcjpmb3JUcmFja0lEOgorICAgICAgICBhbGxvd3MgdXMgdG8gd29y
ayBhcm91bmQgdGhpcyBwcm9ibGVtLiBXaGVuIHRoaXMgZGVsZWdhdGUgaXMgcHJlc2VudCwgQVZT
dHJlYW1EYXRhUGFyc2VyCisgICAgICAgIHdpbGwgc2tpcCBhdHRhY2hpbmcgYSBkZWNyeXB0aW9u
IG9iamVjdCBlbnRpcmVseSwgbW92aW5nIHRoYXQgcmVzcG9uc2liaWxpdHkgdG8gdGhlCisgICAg
ICAgIGNsaWVudC4gSG93ZXZlciwgdGhpcyBjb21lcyB3aXRoIHRoZSByZXF1aXJlbWVudCB0aGF0
IHRoZSBjbGllbnQgKFdlYktpdCkgd29uJ3QgZW5xdWV1ZQorICAgICAgICBhbiBlbmNyeXB0ZWQg
c2FtcGxlIGJlZm9yZSBhIGRlY3J5cHRpb24gb2JqZWN0IGlzIGF2YWlsYWJsZSB2aWEgQVZDb250
ZW50S2V5U2Vzc2lvbi4KKworICAgICAgICBJbiBvcmRlciB0byBtZWV0IHRoaXMgbmV3IHJlcXVp
cmVtZW50LCBXZWJLaXQgd2lsbCBhc3NvY2lhdGUgdGhlIGtleSBJRHMgbmVjZXNzYXJ5IHRvCisg
ICAgICAgIGRlY3J5cHQgZWFjaCBzYW1wbGUgaW4gdGhlIE1lZGlhU2FtcGxlIG9iamVjdCB0aGF0
IHdyYXBzIHRoZSBlbmNyeXB0ZWQgc2FtcGxlLiBCZWNhdXNlIG5vdAorICAgICAgICBldmVyeSB0
eXBlIG9mIE1lZGlhU2FtcGxlIHdpbGwgY2Fycnkga2V5IElEcywgdGhpcyBwcm9wZXJ0eSB3YXMg
YWRkZWQgdG8gdGhlCisgICAgICAgIE1lZGlhU2FtcGxlQVZGT2JqQyBzdWJjbGFzcywgYW5kIHRo
ZXJlZm9yZSB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc2FmZWx5IGRvd25jYXN0IGZyb20KKyAgICAg
ICAgTWVkaWFTYW1wbGUgdG8gTWVkaWFTYW1wbGVBVkZPYmpDLiBNZWRpYVNhbXBsZSBzdWJjbGFz
c2VzIGNhbiBiZSBkaXN0aW5ndWlzaGVkIGJ5IHRoZQorICAgICAgICBQbGF0Zm9ybU1lZGlhU2Ft
cGxlIHR5cGUgYXZhaWxhYmxlIHRocm91Z2ggdGhlaXIgcGxhdGZvcm1TYW1wbGUoKSBwcm9wZXJ0
eSwgaG93ZXZlciB0aGlzCisgICAgICAgIGNhbGwgaXMgbm90IGNvbnN0LCBhbmQgbWF5IG5vdCBi
ZSBmcmVlLCBhcyBpdCByZXR1cm5zIGEgbm9uLVBPRCB0eXBlLiBTbworICAgICAgICBQbGF0Zm9y
bU1lZGlhOjpUeXBlIHdhcyBtYWRlIGFuIGV4cGxpY2l0IGVudW0gdHlwZSwgYW5kIGEgbmV3IHZp
cnR1YWwgbWV0aG9kCisgICAgICAgIHBsYXRmb3JtU2FtcGxlVHlwZSgpIHdhcyBhZGRlZCB0byBN
ZWRpYVNhbXBsZSAoYW5kIGltcGxlbWVudGVkIGJ5IGFsbCBzdWJjbGFzc2VzKSwgYW5kIGEKKyAg
ICAgICAgdHlwZSBzcGVjaWFsaXphdGlvbiBtYWNybyB3YXMgYWRkZWQgdG8gTWVkaWFTYW1wbGVB
VkZPYmpDLgorCisgICAgICAgIEluIG9yZGVyIHRvIGNoZWNrIHdoZXRoZXIgYSBnaXZlbiBzYW1w
bGUgaXMgY2FwYWJsZSBvZiBiZWluZyBlbnF1ZXVlZCwgdGhlIENETUluc3RhbmNlCisgICAgICAg
IG11c3QgYmUgcXVlcmllZCB0byBkZXRlcm1pbmUgaWYgdGhlIHNhbXBsZSdzIHJlcXVpcmVkIGtl
eXMgYXJlIHVzYWJsZS4gRm9yCisgICAgICAgIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLCBpdCBoYXMgYW4gZXhpc3Rpbmcga2V5U3RhdHVzKCksIG1ldGhvZCwgYnV0IHRoYXQK
KyAgICAgICAgbWV0aG9kIGlzIGFsc28gbm9uLWNvbnN0LCBhbmQgbWF5IGJlIGV4cGVuc2l2ZS4g
U28gYSBLZXlTdGF0dXNNYXAgaW5zdGFuY2UgdmFyaWFibGUKKyAgICAgICAgaGFzIGJlZW4gYWRk
ZWQgdG8gY2FjaGUgdGhlIGtleSBzdGF0dXMgZm9yIGVhc2Ugb2YgcXVlcnlpbmcuIFRvIG5vdGlm
eSBhbiBhcmJpdHJhcnkgbnVtYmVyCisgICAgICAgIG9mIGNsaWVudHMgd2hlbiB0aGUga2V5IHN0
YXR1c2VzIGNoYW5nZSwgYW4gT2JzZXJ2ZXIgaGFzIGJlZW4gYWRkZWQuCisKKyAgICAgICAgV2hl
biBhbiBlbmNyeXB0ZWQgc2FtcGxlIGlzIGVucXVldWVkLCBpZiB0aGlzIG5ldyBkZWxlZ2F0ZSBt
ZXRob2QgaXMgYXZhaWxhYmxlLCB0aGUKKyAgICAgICAgc291cmNlIGJ1ZmZlciB3aWxsIGNoZWNr
IGlmIGEgQ0RNIGluc3RhbmNlIGlzIGF2YWlsYWJsZSwgYW5kIGlmIHNvLCB3aGV0aGVyIHRoZSBz
YW1wbGUncworICAgICAgICBrZXlzIGFyZSB1c2FibGUuIElmIGFueSBvZiB0aGVzZSBjaGVja3Mg
ZmFpbCwgdGhlIHNhbXBsZSB3aWxsIGJlIHN0b3JlZCBpbiBhIGxvY2FsIHF1ZXVlCisgICAgICAg
IGFuZCBuZXcgZW5xdWV1ZXMgd2lsbCBiZSBibG9ja2VkLiBXaGVuIHRoZSBDRE0ncyBrZXlTdGF0
dXMgb2JzZXJ2ZXIgaXMgdHJpZ2dlcmVkLCB0aGUKKyAgICAgICAgbG9jYWwgcXVldWUgd2lsbCBi
ZSBwcm9jZXNzZWQsIGFuZCBhbGwgc2FtcGxlcyB3aXRoIHVzYWJsZSBrZXkgSURzIHdpbGwgYmUg
ZW5xdWV1ZWQuCisKKyAgICAgICAgRHJpdmUtYnkgZml4OiBVc2UgU2hhcmVkQnVmZmVyIHJhdGhl
ciB0aGFuIFVpbnQ4QXJyYXksIGFzIHRoZSBmb3JtZXIgaXMgbGlnaHRlciB3ZWlnaHQKKyAgICAg
ICAgYW5kIGNhbiBiZSBtb3JlIGVhc2lseSBjb252ZXJ0ZWQgdG8gYW5kIGZyb20gYSBOU0RhdGEu
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJLZXlOZWVkZWQpOgorICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL01lZGlhU2FtcGxlLmg6
CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9GaWxlUmVhZGVyOjpkZW11eFdlYk1EYXRhIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllcjo6a2V5TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGll
bnQ6Om1lZGlhUGxheWVyS2V5TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmlzQW55S2V5VXNhYmxlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjphZGRLZXlT
dGF0dXNlc0NoYW5nZWRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbktleVN0YXR1c2VzQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6
OnJlcXVlc3REaWRTdWNjZWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlS2V5U3RhdHVzZXMpOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpjb3B5
S2V5U3RhdHVzZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9u
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50
RXh0ZXJuYWxQcm90ZWN0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZVByb3RlY3Rpb25TdGF0dXNG
b3JEaXNwbGF5SUQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjprZXlTdGF0dXNlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVu
dEtleVNlc3Npb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpnZW5lcmF0ZUtleVJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OnVwZGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNob3VsZFdhaXRGb3JMb2FkaW5nT2ZSZXNvdXJjZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjprZXlOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1w
bGVBVkZPYmpDOjpzZXRLZXlJRHMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZP
YmpDOjprZXlJRHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpD
OjprZXlJRHMpOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVNhbXBs
ZUFWRk9iakM+Ojp0b1N0cmluZyk6CisgICAgICAgIChpc1R5cGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNv
dXJjZVByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2
YXRlQVZGT2JqQzo6c291cmNlQnVmZmVyS2V5TmVlZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UGFyc2VyQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQVZTdHJlYW1EYXRhUGFyc2VyTGlzdGVu
ZXIgc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29udGVudEtleVNwZWNpZmllcjpmb3JUcmFj
a0lEOl0pOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUGFyc2VyQVZGT2JqQzo6ZGlk
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RTcGVjaWZpZXJGb3JUcmFja0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2FtcGxlQnVmZmVyUmVuZGVy
ZXJzU3VwcG9ydEtleVNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29weUtleUlEcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OmRpZFBhcnNlSW5pdGlhbGl6YXRpb25EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlTWVkaWFEYXRhRm9yVHJhY2tJZCk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlk
ZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkZXN0cm95UmVuZGVyZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0RpZENo
YW5nZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OnNldENETUluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDOjphdHRlbXB0VG9EZWNyeXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDOjp0cmFja0lzQmxvY2tlZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6a2V5U3RhdHVzZXNDaGFuZ2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpjYW5FbnF1ZXVlU2Ft
cGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1
ZXVlU2FtcGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpD
OjpkaWRCZWNvbWVSZWFkeUZvck1vcmVTYW1wbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRWaWRlb0xheWVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlcldlYk06Ok9uVHJhY2tFbnRyeSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZlclByaXZh
dGUuY3BwOgorCiAyMDIyLTAyLTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIE1vdmUgRG9jdW1lbnRUaW1lbGluZTo6cnVubmluZ0FuaW1hdGlvbnNGb3JS
ZW5kZXJlckFyZUFsbEFjY2VsZXJhdGVkKCkgdG8gU3R5bGVhYmxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRiN2Vk
M2M1ZjM4YTdjNTRhZjRlYjUyYjY5MGQxZjBjNjU5MmM2MjYuLmE1YzdjNzY1YmU2ODRiYzI1NTNh
YWZlMjdiYjNiMWYyMWJjMzA0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0yMyw2ICsyMywyNyBAQAogICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKICAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgogCisyMDIyLTAyLTAzICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gQWRvcHQgLXN0cmVhbURhdGFQYXJz
ZXI6ZGlkUHJvdmlkZUNvbnRlbnRLZXlTcGVjaWZpZXI6Zm9yVHJhY2tJRDogZGVsZWdhdGUgY2Fs
bGJhY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjEwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCB0aGUgbmV3bHkgcmVxdXJpZWQgdmlydHVhbCBtZXRob2QgY2hhbmdlcyB0byBNZWRpYVNhbXBs
ZSBzdWJjbGFzc2VzLCBhbmQgdXNlCisgICAgICAgIFNoYXJlZEJ1ZmZlciByYXRoZXIgdGhhbiBV
aW50OEFycmF5LgorCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVk
aWFQbGF5ZXJLZXlOZWVkZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIv
TWVkaWFGb3JtYXRSZWFkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUZvcm1hdFJlYWRl
cjo6cGFyc2VCeXRlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFGb3JtYXRSZWFkZXI6
OmRpZFByb3ZpZGVNZWRpYURhdGEpOgorICAgICAgICAqIFNoYXJlZC9tYWMvTWVkaWFGb3JtYXRS
ZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9y
bWF0UmVhZGVyL01lZGlhU2FtcGxlQnl0ZVJhbmdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjptZWRpYVBsYXllcktleU5lZWRlZCk6CisKIDIwMjIt
MDItMDcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdW1dQXSBFbmFibGUgc2FuZGJveCBzdGF0ZSBydWxlcyBmb3IgTWFjaCBtZXNzYWdlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Q
bGF0Zm9ybUhhdmUuaAppbmRleCA3MjQzZTkwZDdlNzBmOTk0ZDM5ZjdkYzQ0MjIxZWZmYThhZTc3
ODRlLi40NzkxYjVmYjZhNmJiNzlmOGJlYmQ1NDgwMWZjZDljYWUxZTBmNjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybUhhdmUuaApAQCAtMzg4LDYgKzM4OCwxMyBAQAogI2RlZmluZSBIQVZFX0FWQ09OVEVOVEtF
WVNFU1NJT04gMQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gMTEwMzAwKSBcCisgICAgfHwgKCgoUExBVEZPUk0oSU9TKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpKSB8fCBQTEFURk9STShNQUNDQVRBTFlT
VCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTQwNTAwKSBcCisgICAg
fHwgKFBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikg
JiYgX19XQVRDSF9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDcwNDAwKSBcCisgICAgfHwgKFBM
QVRGT1JNKEFQUExFVFYpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgX19U
Vl9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDE0MDUwMCkKKyNkZWZpbmUgSEFWRV9BVkNPTlRF
TlRLRVlTUEVDSUZJRVIgMQorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAjZGVmaW5lIEhBVkVfU0VDX0tFWV9QUk9Y
WSAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleXMuaWRsCmluZGV4IGQ2MzQ4NmM1
YTljNDg5NTNjMzRiMmE2ZGQyM2NkYTkyM2YyODQxYzcuLjVlNjdlZGYwNjZiNjAxM2I3OGU0YjY5
ZGE2NTMwNmUxYmFkNGYwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvbGVnYWN5L1dlYktpdE1lZGlhS2V5cy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlzLmlkbApAQCAt
MzAsNyArMzAsNyBAQAogXSBpbnRlcmZhY2UgV2ViS2l0TWVkaWFLZXlzIHsKICAgICBjb25zdHJ1
Y3RvcihET01TdHJpbmcga2V5U3lzdGVtKTsKIAotICAgIFtDYWxsV2l0aD1DdXJyZW50U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gV2ViS2l0TWVkaWFLZXlTZXNzaW9uIGNyZWF0ZVNlc3Npb24oRE9N
U3RyaW5nIHR5cGUsIFVpbnQ4QXJyYXkgaW5pdERhdGEpOworICAgIFtDYWxsV2l0aD1DdXJyZW50
RG9jdW1lbnRdIFdlYktpdE1lZGlhS2V5U2Vzc2lvbiBjcmVhdGVTZXNzaW9uKERPTVN0cmluZyB0
eXBlLCBVaW50OEFycmF5IGluaXREYXRhKTsKICAgICBzdGF0aWMgYm9vbGVhbiBpc1R5cGVTdXBw
b3J0ZWQoRE9NU3RyaW5nIGtleVN5c3RlbSwgb3B0aW9uYWwgRE9NU3RyaW5nIHR5cGUpOwogICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5U3lzdGVtOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDcyNWM1MjBhMmViMTZhNzMyYWRiZGZk
MGRhOGUxMDllN2NlNDU1Y2UuLjQ5NmM2YTljYjIzYTZhMmE5NTM5M2Y4YTQ2ZTg2MjA5NDc3MGFh
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMjY0NCw3
ICsyNjQ0LDcgQEAgUmVmUHRyPEFycmF5QnVmZmVyPiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBs
YXllckNhY2hlZEtleUZvcktleUlkKGNvbnN0IFN0cmluZyYKICAgICByZXR1cm4gbV93ZWJLaXRN
ZWRpYUtleXMgPyBtX3dlYktpdE1lZGlhS2V5cy0+Y2FjaGVkS2V5Rm9yS2V5SWQoa2V5SWQpIDog
bnVsbHB0cjsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllcktleU5lZWRl
ZChVaW50OEFycmF5KiBpbml0RGF0YSkKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJLZXlOZWVkZWQoY29uc3QgU2hhcmVkQnVmZmVyJiBpbml0RGF0YSkKIHsKICAgICBpZiAoIWRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5sZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjY2MSw3ICsyNjYxLDE0IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6bWVkaWFQbGF5ZXJLZXlOZWVkZWQoVWludDhBcnJheSogaW5pdERhdGEpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIGV2ZW50ID0gV2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRuZWVka2V5RXZlbnQsIGluaXREYXRhKTsKKyAg
ICBXZWJLaXRNZWRpYUtleU5lZWRlZEV2ZW50OjpJbml0IGluaXQ7CisKKyAgICBpZiAoYXV0byBp
bml0RGF0YUJ1ZmZlciA9IGluaXREYXRhLnRyeUNyZWF0ZUFycmF5QnVmZmVyKCkpIHsKKyAgICAg
ICAgYXV0byBieXRlTGVuZ3RoID0gaW5pdERhdGFCdWZmZXItPmJ5dGVMZW5ndGgoKTsKKyAgICAg
ICAgaW5pdC5pbml0RGF0YSA9IFVpbnQ4QXJyYXk6OnRyeUNyZWF0ZShpbml0RGF0YUJ1ZmZlci5y
ZWxlYXNlTm9uTnVsbCgpLCAwLCBieXRlTGVuZ3RoKTsKKyAgICB9CisKKyAgICBhdXRvIGV2ZW50
ID0gV2ViS2l0TWVkaWFLZXlOZWVkZWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRu
ZWVka2V5RXZlbnQsIGluaXQpOwogICAgIHNjaGVkdWxlRXZlbnQoV1RGTW92ZShldmVudCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDg5ZTZhNjI2OGJm
NmQ2MWM1ZTM3M2YyOWE4NDk2YjFkNjc3M2JhZDQuLjAwNDkxODYxM2ViOTMxMTA2MjNiMDNiYWZm
OTc2MWQ2MzBjNDhjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBA
IC03MDYsNyArNzA2LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVE
X01FRElBKQogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNoZWRLZXlGb3JL
ZXlJZChjb25zdCBTdHJpbmcmIGtleUlkKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxh
eWVyS2V5TmVlZGVkKFVpbnQ4QXJyYXkqKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyS2V5
TmVlZGVkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpIGZpbmFsOwogICAgIFN0cmluZyBtZWRpYVBsYXll
ck1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTWVkaWFTYW1wbGUuaAppbmRleCAxODM5OTcyMjYwZjcwZTAwNzM2Nzk3
OTE3MjI2MjVmNTZiMjUzZjA4Li4yYzExNWE4YzI5ZDI4NGY2ZmNiZjhiMDE2OGU3ZjRkNTRhODY2
M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NZWRpYVNhbXBsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01lZGlhU2FtcGxlLmgKQEAgLTQzLDcgKzQzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTW9ja1NhbXBsZUJveDsKIAogc3RydWN0IFBs
YXRmb3JtU2FtcGxlIHsKLSAgICBlbnVtIHsKKyAgICBlbnVtIFR5cGUgewogICAgICAgICBOb25l
LAogICAgICAgICBNb2NrU2FtcGxlQm94VHlwZSwKICAgICAgICAgQ01TYW1wbGVCdWZmZXJUeXBl
LApAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIEhhc1N5bmNJbmZvID0gMSA8PCAz
LAogICAgIH07CiAgICAgdmlydHVhbCBTYW1wbGVGbGFncyBmbGFncygpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtU2FtcGxlOjpUeXBlIHBsYXRmb3JtU2FtcGxlVHlwZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgPSAwOwog
CiAgICAgc3RydWN0IEJ5dGVSYW5nZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHAKaW5kZXggNTA2
MDMyMzgwM2IxYTNiMTdmNDczODY2ZWE5N2IzYTgyOTBlMjAyYy4uYjcwM2NmZWNkMzE2YzYyN2M2
OTRlNjRiOGU2OTc2MjA2ODY3ZjdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vY29jb2EvQXVkaW9GaWxlUmVhZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRmlsZVJlYWRlckNvY29hLmNwcApAQCAtMjAy
LDEwICsyMDIsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRmlsZVJlYWRlcldlYk1EYXRhPiBB
dWRpb0ZpbGVSZWFkZXI6OmRlbXV4V2ViTURhdGEoY29uc3QgdWkKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgIH0pOwotICAgIHBhcnNlci0+c2V0RGlkUHJvdmlkZU1lZGlhRGF0YUNhbGxi
YWNrKFsmXShSZWY8TWVkaWFTYW1wbGU+JiYgc2FtcGxlLCB1aW50NjRfdCB0cmFja0lELCBjb25z
dCBTdHJpbmcmKSB7CisgICAgcGFyc2VyLT5zZXREaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2so
WyZdKFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+JiYgc2FtcGxlLCB1aW50NjRfdCB0cmFja0lELCBj
b25zdCBTdHJpbmcmKSB7CiAgICAgICAgIGlmICghYXVkaW9UcmFja0lkIHx8IHRyYWNrSUQgIT0g
KmF1ZGlvVHJhY2tJZCkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgc2FtcGxlcy5hcHBl
bmQoc3RhdGljX3JlZmVyZW5jZV9jYXN0PE1lZGlhU2FtcGxlQVZGT2JqQz4oV1RGTW92ZShzYW1w
bGUpKSk7CisgICAgICAgIHNhbXBsZXMuYXBwZW5kKFdURk1vdmUoc2FtcGxlKSk7CiAgICAgfSk7
CiAgICAgcGFyc2VyLT5zZXRDYWxsT25DbGllbnRUaHJlYWRDYWxsYmFjayhbXShhdXRvJiYgZnVu
Y3Rpb24pIHsKICAgICAgICAgZnVuY3Rpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA1NWY5N2MxYWE5MGZhZmQwN2QzZWI5
M2QxNjUwMmYwY2I2YThlOGQ0Li5hNWRkZjNlZmM0MWQ4N2E4NGJmMWI0MGQyNzU3YmU4NGMxOTA0
NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBs
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCkBAIC0xNDI1LDcgKzE0MjUsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IE1lZGlhUGxh
eWVyOjpjYWNoZWRLZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmIGtleUlkKSBjb25zdAogICAgIHJl
dHVybiBjbGllbnQoKS5tZWRpYVBsYXllckNhY2hlZEtleUZvcktleUlkKGtleUlkKTsKIH0KIAot
dm9pZCBNZWRpYVBsYXllcjo6a2V5TmVlZGVkKFVpbnQ4QXJyYXkqIGluaXREYXRhKQordm9pZCBN
ZWRpYVBsYXllcjo6a2V5TmVlZGVkKGNvbnN0IFNoYXJlZEJ1ZmZlciYgaW5pdERhdGEpCiB7CiAg
ICAgY2xpZW50KCkubWVkaWFQbGF5ZXJLZXlOZWVkZWQoaW5pdERhdGEpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggMjVjMjQ4MmZm
NzY2NDVjOGVjZjgxNTg0ZjRhYmEyNTdmNzk1MGIxZC4uN2M2NGY0ZTBmNjk2NDQ5MmZkOGQ2Njc4
ZGY0N2NiYWZkOTFkOTRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCkBAIC04Niw2ICs4Niw3IEBAIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0
ZTsKIGNsYXNzIE5hdGl2ZUltYWdlOwogY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
OwogY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOworY2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3Mg
VGV4dFRyYWNrUmVwcmVzZW50YXRpb247CiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKIApAQCAt
MjAwLDcgKzIwMSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01F
RElBKQogICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5QnVmZmVyPiBtZWRpYVBsYXllckNhY2hlZEtl
eUZvcktleUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbWVk
aWFQbGF5ZXJLZXlOZWVkZWQoVWludDhBcnJheSopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRp
YVBsYXllcktleU5lZWRlZChjb25zdCBTaGFyZWRCdWZmZXImKSB7IH0KICAgICB2aXJ0dWFsIFN0
cmluZyBtZWRpYVBsYXllck1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVy
biBlbXB0eVN0cmluZygpOyB9CiAjZW5kaWYKIApAQCAtNTU4LDcgKzU1OSw3IEBAIHB1YmxpYzoK
IAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQogICAgIFJlZlB0cjxBcnJheUJ1
ZmZlcj4gY2FjaGVkS2V5Rm9yS2V5SWQoY29uc3QgU3RyaW5nJiBrZXlJZCkgY29uc3Q7Ci0gICAg
dm9pZCBrZXlOZWVkZWQoVWludDhBcnJheSogaW5pdERhdGEpOworICAgIHZvaWQga2V5TmVlZGVk
KGNvbnN0IFNoYXJlZEJ1ZmZlciYgaW5pdERhdGEpOwogICAgIFN0cmluZyBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5KCkgY29uc3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggOGVk
OWUwYTA3NWIxNTNiY2E1ZjkwZDUxYzEwOTA2NDUzZjA0ZDBmMS4uYzc4NzY2MTc4ZTEyYjk0YjA4
NmRkYzZiNTIzMTc5OWE0NWMwMmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0xOTIxLDE1ICsx
OTIxLDE1IEBAIGJvb2wgQVZGV3JhcHBlcjo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNl
KEFWQ0ZBc3NldFJlc291cmNlTG9hZGluZ1JlcXVlc3RSCiAgICAgICAgIC8vIFs0IGJ5dGVzOiBr
ZXlVUkkgc2l6ZV0sIFtrZXlVUkkgc2l6ZSBieXRlczoga2V5VVJJXQogICAgICAgICB1bnNpZ25l
ZCBrZXlVUklTaXplID0ga2V5VVJJLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKTsKICAgICAgICAg
YXV0byBpbml0RGF0YUJ1ZmZlciA9IEFycmF5QnVmZmVyOjpjcmVhdGUoNCArIGtleVVSSVNpemUs
IDEpOwotICAgICAgICBhdXRvIGluaXREYXRhVmlldyA9IEpTQzo6RGF0YVZpZXc6OmNyZWF0ZShp
bml0RGF0YUJ1ZmZlci5jb3B5UmVmKCksIDAsIGluaXREYXRhQnVmZmVyLT5ieXRlTGVuZ3RoKCkp
OworICAgICAgICB1bnNpZ25lZCBieXRlTGVuZ3RoID0gaW5pdERhdGFCdWZmZXItPmJ5dGVMZW5n
dGgoKTsKKyAgICAgICAgYXV0byBpbml0RGF0YVZpZXcgPSBKU0M6OkRhdGFWaWV3OjpjcmVhdGUo
aW5pdERhdGFCdWZmZXIuY29weVJlZigpLCAwLCBieXRlTGVuZ3RoKTsKICAgICAgICAgaW5pdERh
dGFWaWV3LT5zZXQ8dWludDMyX3Q+KDAsIGtleVVSSVNpemUsIHRydWUpOwogCiAgICAgICAgIGF1
dG8ga2V5VVJJQXJyYXkgPSBVaW50MTZBcnJheTo6Y3JlYXRlKGluaXREYXRhQnVmZmVyLmNvcHlS
ZWYoKSwgNCwga2V5VVJJLmxlbmd0aCgpKTsKICAgICAgICAga2V5VVJJQXJyYXktPnNldFJhbmdl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDE2X3QqPihTdHJpbmdWaWV3KGtleVVSSSkudXBj
b252ZXJ0ZWRDaGFyYWN0ZXJzKCkuZ2V0KCkpLCBrZXlVUkkubGVuZ3RoKCkgLyBzaXplb2YodW5z
aWduZWQgY2hhciksIDApOwogCi0gICAgICAgIHVuc2lnbmVkIGJ5dGVMZW5ndGggPSBpbml0RGF0
YUJ1ZmZlci0+Ynl0ZUxlbmd0aCgpOwotICAgICAgICBhdXRvIGluaXREYXRhID0gVWludDhBcnJh
eTo6Y3JlYXRlKFdURk1vdmUoaW5pdERhdGFCdWZmZXIpLCAwLCBieXRlTGVuZ3RoKTsKLSAgICAg
ICAgbV9vd25lci0+cGxheWVyKCktPmtleU5lZWRlZChpbml0RGF0YS5wdHIoKSk7CisgICAgICAg
IGF1dG8gaW5pdERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShWZWN0b3I8dWludDhfdD4geyBz
dGF0aWNfY2FzdDx1aW50OF90Kj4oaW5pdERhdGFCdWZmZXItPmRhdGEoKSksIGJ5dGVMZW5ndGgg
fSk7CisgICAgICAgIG1fb3duZXItPnBsYXllcigpLT5rZXlOZWVkZWQoaW5pdERhdGEpOwogICAg
ICAgICBzZXRSZXF1ZXN0Rm9yS2V5KGtleVVSSSwgYXZSZXF1ZXN0KTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKaW5kZXggNTZiNThjMjVhMjg3MDlm
YjM4MjIxODM5ZTU1YmFlNDVlZDkzY2Y2Mi4uZDU5ZmU0ODA0ZDU4ZGZlNzhjYjViZWE3MDc0YjJl
Njg3MDVjMWQ0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCkBAIC0zMCw3ICszMCw5IEBACiAj
aW5jbHVkZSAiQ0RNSW5zdGFuY2UuaCIKICNpbmNsdWRlICJDRE1JbnN0YW5jZVNlc3Npb24uaCIK
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAK
IE9CSkNfQ0xBU1MgQVZDb250ZW50S2V5UmVwb3J0R3JvdXA7CiBPQkpDX0NMQVNTIEFWQ29udGVu
dEtleVJlcXVlc3Q7CkBAIC0xMTcsNiArMTE5LDEzIEBAIHB1YmxpYzoKICAgICBDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMqIHNlc3Npb25Gb3JHcm91cChBVkNvbnRl
bnRLZXlSZXBvcnRHcm91cCopIGNvbnN0OwogICAgIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQyogc2Vzc2lvbkZvclJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCop
IGNvbnN0OwogCisgICAgYm9vbCBpc0FueUtleVVzYWJsZShjb25zdCBLZXlzJikgY29uc3Q7CisK
KyAgICB1c2luZyBLZXlTdGF0dXNlc0NoYW5nZWRPYnNlcnZlciA9IE9ic2VydmVyPHZvaWQoKT47
CisgICAgdm9pZCBhZGRLZXlTdGF0dXNlc0NoYW5nZWRPYnNlcnZlcihjb25zdCBLZXlTdGF0dXNl
c0NoYW5nZWRPYnNlcnZlciYpOworCisgICAgdm9pZCBzZXNzaW9uS2V5U3RhdHVzZXNDaGFuZ2Vk
KGNvbnN0IENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyYpOworCiBw
cml2YXRlOgogICAgIHZvaWQgaGFuZGxlVW5leHBlY3RlZFJlcXVlc3RzKFZlY3RvcjxSZXRhaW5Q
dHI8QVZDb250ZW50S2V5UmVxdWVzdD4+JiYpOwogCkBAIC0xMzQsNiArMTQzLDcgQEAgcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8TlNVUkw+IG1fc3RvcmFnZVVSTDsKICAgICBWZWN0b3I8V2Vha1B0
cjxDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+PiBtX3Nlc3Npb25z
OwogICAgIEhhc2hTZXQ8UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiBtX3VuZXhwZWN0
ZWRLZXlSZXF1ZXN0czsKKyAgICBXZWFrSGFzaFNldDxLZXlTdGF0dXNlc0NoYW5nZWRPYnNlcnZl
cj4gbV9rZXlTdGF0dXNDaGFuZ2VkT2JzZXJ2ZXJzOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAogICAgIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwogICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRl
bnRpZmllciB7IG51bGxwdHIgfTsKQEAgLTE4NiwxMSArMTk2LDE0IEBAIHB1YmxpYzoKIAogICAg
IGJvb2wgaGFzUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KikgY29uc3Q7CiAKKyAgICBjb25z
dCBLZXlTdGF0dXNWZWN0b3ImIGtleVN0YXR1c2VzKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTdGF0
dXNlczsgfQorICAgIEtleVN0YXR1c1ZlY3RvciBjb3B5S2V5U3RhdHVzZXMoKSBjb25zdDsKKwog
cHJpdmF0ZToKICAgICBib29sIGVuc3VyZVNlc3Npb25Pckdyb3VwKCk7CiAgICAgYm9vbCBpc0xp
Y2Vuc2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBlKSBjb25zdDsKIAotICAgIEtleVN0YXR1c1Zl
Y3RvciBrZXlTdGF0dXNlcyhzdGQ6Om9wdGlvbmFsPFBsYXRmb3JtRGlzcGxheUlEPiA9IHN0ZDo6
bnVsbG9wdCkgY29uc3Q7CisgICAgdm9pZCB1cGRhdGVLZXlTdGF0dXNlcyhzdGQ6Om9wdGlvbmFs
PFBsYXRmb3JtRGlzcGxheUlEPiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAgdm9pZCBuZXh0UmVxdWVz
dCgpOwogICAgIEFWQ29udGVudEtleVJlcXVlc3QqIGxhc3RLZXlSZXF1ZXN0KCkgY29uc3Q7CiAK
QEAgLTIxNiw2ICsyMjksNyBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgVXBkYXRlUmVzcG9uc2VD
b2xsZWN0b3I7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVwZGF0ZVJlc3BvbnNlQ29sbGVjdG9yPiBt
X3VwZGF0ZVJlc3BvbnNlQ29sbGVjdG9yOworICAgIEtleVN0YXR1c1ZlY3RvciBtX2tleVN0YXR1
c2VzOwogCiAgICAgVmVjdG9yPFJlcXVlc3Q+IG1fcGVuZGluZ1JlcXVlc3RzOwogICAgIFZlY3Rv
cjxSZXF1ZXN0PiBtX3JlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQppbmRleCBjZmUw
NDhhOTM4YzA1ZGY3NDVjNzE2MzU2YWQxYjNiOTBhNTllYjc4Li5mZDYxNTJlMTg2N2Q0ZTZhNjcy
YmVmMTcwNzBjYTc2MjkxMjZmNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQpAQCAtNjE3
LDYgKzYxNywzNyBAQCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMq
IENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOgogICAgIHJldHVybiBudWxscHRy
OwogfQogCitib29sIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjppc0FueUtl
eVVzYWJsZShjb25zdCBLZXlzJiBrZXlzKSBjb25zdAoreworICAgIGZvciAoYXV0byYgc2Vzc2lv
bkludGVyZmFjZSA6IG1fc2Vzc2lvbnMpIHsKKyAgICAgICAgaWYgKCFzZXNzaW9uSW50ZXJmYWNl
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZm9yIChhdXRvJiBrZXlTdGF0dXNQ
YWlyIDogc2Vzc2lvbkludGVyZmFjZS0+a2V5U3RhdHVzZXMoKSkgeworICAgICAgICAgICAgaWYg
KGtleVN0YXR1c1BhaXIuc2Vjb25kICE9IENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzOjpV
c2FibGUpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChrZXlz
LmZpbmRJZihbJl0gKGF1dG8mIGtleSkgeworICAgICAgICAgICAgICAgIHJldHVybiBrZXkuZ2V0
KCkgPT0ga2V5U3RhdHVzUGFpci5maXJzdC5nZXQoKTsKKyAgICAgICAgICAgIH0pICE9IG5vdEZv
dW5kKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6YWRkS2V5U3RhdHVzZXNDaGFuZ2VkT2JzZXJ2ZXIoY29uc3QgS2V5U3RhdHVzZXNDaGFu
Z2VkT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fa2V5U3RhdHVzQ2hhbmdlZE9ic2VydmVy
cy5hZGQob2JzZXJ2ZXIpOworfQorCit2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDOjpzZXNzaW9uS2V5U3RhdHVzZXNDaGFuZ2VkKGNvbnN0IENETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyYpCit7CisgICAgbV9rZXlTdGF0dXNDaGFuZ2VkT2Jz
ZXJ2ZXJzLmZvckVhY2goW10gKGF1dG8mIG9ic2VydmVyKSB7CisgICAgICAgIG9ic2VydmVyKCk7
CisgICAgfSk7Cit9CisKIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qzo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKFJlZjxDRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4mJiBpbnN0YW5jZSkKICAgICA6IG1faW5zdGFu
Y2UoV1RGTW92ZShpbnN0YW5jZSkpCiAgICAgLCBtX2RlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3Jl
RlBTQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6dGhpc10p
KQpAQCAtMTMwNiwxMyArMTMzNywxNSBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6ZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QoQVZDb250ZQogCiB2b2lk
IENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdERpZFN1
Y2NlZWQoQVZDb250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCkKIHsKKyAgICB1cGRhdGVLZXlTdGF0
dXNlcygpOworCiAgICAgaWYgKG1fdXBkYXRlUmVzcG9uc2VDb2xsZWN0b3IpIHsKICAgICAgICAg
bV91cGRhdGVSZXNwb25zZUNvbGxlY3Rvci0+YWRkU3VjY2Vzc2Z1bFJlc3BvbnNlKHJlcXVlc3Qs
IG51bGxwdHIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fdXBkYXRlTGlj
ZW5zZUNhbGxiYWNrKSB7Ci0gICAgICAgIG1fdXBkYXRlTGljZW5zZUNhbGxiYWNrKGZhbHNlLCBz
dGQ6Om1ha2Vfb3B0aW9uYWwoa2V5U3RhdHVzZXMoKSksIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxs
b3B0LCBTdWNjZWVkZWQpOworICAgICAgICBtX3VwZGF0ZUxpY2Vuc2VDYWxsYmFjayhmYWxzZSwg
c3RkOjptYWtlX29wdGlvbmFsKGNvcHlLZXlTdGF0dXNlcygpKSwgc3RkOjpudWxsb3B0LCBzdGQ6
Om51bGxvcHQsIFN1Y2NlZWRlZCk7CiAgICAgICAgIEFTU0VSVCghbV91cGRhdGVMaWNlbnNlQ2Fs
bGJhY2spOwogICAgIH0KIApAQCAtMTQwNSw3ICsxNDM4LDcgQEAgc3RhdGljIGF1dG8gcmVxdWVz
dFN0YXR1c1RvQ0RNU3RhdHVzKEFWQ29udGVudEtleVJlcXVlc3RTdGF0dXMgc3RhdHVzKQogICAg
IH0KIH0KIAotQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXNWZWN0b3IgQ0RNSW5zdGFuY2VT
ZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjprZXlTdGF0dXNlcyhzdGQ6Om9wdGlvbmFs
PFBsYXRmb3JtRGlzcGxheUlEPiBkaXNwbGF5SUQpIGNvbnN0Cit2b2lkIENETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlS2V5U3RhdHVzZXMoc3RkOjpvcHRp
b25hbDxQbGF0Zm9ybURpc3BsYXlJRD4gZGlzcGxheUlEKQogewogICAgIEtleVN0YXR1c1ZlY3Rv
ciBrZXlTdGF0dXNlczsKIApAQCAtMTQyNyw3ICsxNDYwLDE5IEBAIENETUluc3RhbmNlU2Vzc2lv
bjo6S2V5U3RhdHVzVmVjdG9yIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4ga2V5U3RhdHVzZXM7CisgICAg
bV9rZXlTdGF0dXNlcy5zd2FwKGtleVN0YXR1c2VzKTsKKworICAgIG1faW5zdGFuY2UtPnNlc3Np
b25LZXlTdGF0dXNlc0NoYW5nZWQoKnRoaXMpOworfQorCithdXRvIENETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Y29weUtleVN0YXR1c2VzKCkgY29uc3QgLT4gS2V5
U3RhdHVzVmVjdG9yCit7CisgICAgS2V5U3RhdHVzVmVjdG9yIGNvcGllZEtleVN0YXR1c2VzOwor
ICAgIGNvcGllZEtleVN0YXR1c2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9rZXlTdGF0dXNl
cy5zaXplKCkpOworICAgIGZvciAoYXV0byYgc3RhdHVzIDogbV9rZXlTdGF0dXNlcykKKyAgICAg
ICAgY29waWVkS2V5U3RhdHVzZXMudW5jaGVja2VkQXBwZW5kKHsgc3RhdHVzLmZpcnN0LmNvcHlS
ZWYoKSwgc3RhdHVzLnNlY29uZCB9KTsKKyAgICByZXR1cm4gY29waWVkS2V5U3RhdHVzZXM7CisK
IH0KIAogdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Om91
dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJv
b2wgb2JzY3VyZWQpCkBAIC0xNDM4LDggKzE0ODMsMTAgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Np
b25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2ll
bnQKICAgICBBTFdBWVNfTE9HX0lGX1BPU1NJQkxFKExPR0lERU5USUZJRVIsIG9ic2N1cmVkKTsK
ICAgICBtX291dHB1dE9ic2N1cmVkID0gb2JzY3VyZWQ7CiAKKyAgICB1cGRhdGVLZXlTdGF0dXNl
cygpOworCiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dXBkYXRlS2V5U3Rh
dHVzZXMoa2V5U3RhdHVzZXMoKSk7CisgICAgICAgIG1fY2xpZW50LT51cGRhdGVLZXlTdGF0dXNl
cyhjb3B5S2V5U3RhdHVzZXMoKSk7CiB9CiAKIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpleHRlcm5hbFByb3RlY3Rpb25TdGF0dXNEaWRDaGFuZ2VGb3JD
b250ZW50S2V5UmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KikKQEAgLTE0OTIsOSArMTUzOSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPENETUtleVN0YXR1cz4gQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpwcm90ZWN0aQogCiB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlUHJvdGVjdGlvblN0YXR1c0ZvckRpc3BsYXlJ
RChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7Ci0gICAgaWYgKG1fcmVxdWVzdHMuaXNF
bXB0eSgpIHx8ICFtX2NsaWVudCkKKyAgICBpZiAobV9yZXF1ZXN0cy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2NsaWVudC0+dXBkYXRlS2V5U3RhdHVzZXMoa2V5U3RhdHVzZXMo
ZGlzcGxheUlEKSk7CisKKyAgICB1cGRhdGVLZXlTdGF0dXNlcyhkaXNwbGF5SUQpOworCisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+dXBkYXRlS2V5U3RhdHVzZXMoY29weUtl
eVN0YXR1c2VzKCkpOwogfQogCiBib29sIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFt
aW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lvbk9yR3JvdXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29u
dGVudEtleVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLmgKaW5kZXggNzE5YTEx
ZmUyMjliZWYwZDQzYzljM2VmZDVkOTAyMDgwZTc2YzdmMC4uOTBkMjczZDA3OTYxZmM5ODZmYjdj
NDU2ZmY3MzM2MmMxNGVjNWQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5oCkBAIC03NCw3ICs3NCw3IEBAIHByb3Rl
Y3RlZDoKICAgICBSZXRhaW5QdHI8V2ViQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb25EZWxl
Z2F0ZT4gbV9jb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlOwogICAgIFJldGFpblB0cjxBVkNvbnRl
bnRLZXlSZXF1ZXN0PiBtX2tleVJlcXVlc3Q7CiAgICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1faWRl
bnRpZmllcjsKLSAgICBSZWZQdHI8VWludDhBcnJheT4gbV9pbml0RGF0YTsKKyAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBtX2luaXREYXRhOwogICAgIFJldGFpblB0cjxOU0RhdGE+IG1fZXhwaXJl
ZFNlc3Npb247CiAgICAgVmVjdG9yPGludD4gbV9wcm90b2NvbFZlcnNpb25zOwogICAgIGludCBt
X2NkbVZlcnNpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCmluZGV4IDdlYzU3NzQyNjEwYzM4NGJlNmRkZGM1ODc0
ZmYzOTVlNWI1ZjJlZGMuLjcyYTA5NTMwOWM4NDViZGNjZmRlNzA3YmU0YjcwNzBjNWQ1MWViYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRl
bnRLZXlTZXNzaW9uLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJMZWdhY3lDRE0uaCIK
ICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhUGxheWVyLmgiCisjaW1wb3J0ICJT
aGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgiCiAj
aW1wb3J0ICJXZWJDb3JlTlNFcnJvckV4dHJhcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FW
RXJyb3IuaD4KQEAgLTE1MSw3ICsxNTIsNyBAQCBSZWZQdHI8VWludDhBcnJheT4gQ0RNU2Vzc2lv
bkFWQ29udGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbgogICAg
IGlmIChtX2NkbVZlcnNpb24gPT0gMikKICAgICAgICAgbV9pZGVudGlmaWVyID0gaW5pdERhdGE7
CiAgICAgZWxzZQotICAgICAgICBtX2luaXREYXRhID0gaW5pdERhdGE7CisgICAgICAgIG1faW5p
dERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShpbml0RGF0YS0+ZGF0YSgpLCBpbml0RGF0YS0+
bGVuZ3RoKCkpOwogCiAgICAgQVNTRVJUKCFtX2NlcnRpZmljYXRlKTsKICAgICBTdHJpbmcgY2Vy
dGlmaWNhdGVTdHJpbmcoImNlcnRpZmljYXRlIl9zKTsKQEAgLTI3MywxMiArMjc0LDEyIEBAIGJv
b2wgQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OnVwZGF0ZShVaW50OEFycmF5KiBrZXks
IFJlZlB0cjxVaW50OEFycmF5PiYKICAgICB9CiAKICAgICBpZiAoIW1fa2V5UmVxdWVzdCkgewot
ICAgICAgICBOU0RhdGEqIG5zSW5pdERhdGEgPSBtX2luaXREYXRhID8gW05TRGF0YSBkYXRhV2l0
aEJ5dGVzOm1faW5pdERhdGEtPmRhdGEoKSBsZW5ndGg6bV9pbml0RGF0YS0+bGVuZ3RoKCldIDog
bmlsOworICAgICAgICBSZXRhaW5QdHI8TlNEYXRhPiBuc0luaXREYXRhID0gbV9pbml0RGF0YSA/
IG1faW5pdERhdGEtPmNyZWF0ZU5TRGF0YSgpIDogbmlsOwogICAgICAgICBOU0RhdGEqIG5zSWRl
bnRpZmllciA9IG1faWRlbnRpZmllciA/IFtOU0RhdGEgZGF0YVdpdGhCeXRlczptX2lkZW50aWZp
ZXItPmRhdGEoKSBsZW5ndGg6bV9pZGVudGlmaWVyLT5sZW5ndGgoKV0gOiBuaWw7CiAgICAgICAg
IGlmIChbY29udGVudEtleVNlc3Npb24oKSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHBy
b2Nlc3NDb250ZW50S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOmluaXRpYWxpemF0aW9uRGF0YTpv
cHRpb25zOildKQotICAgICAgICAgICAgW2NvbnRlbnRLZXlTZXNzaW9uKCkgcHJvY2Vzc0NvbnRl
bnRLZXlSZXF1ZXN0V2l0aElkZW50aWZpZXI6bnNJZGVudGlmaWVyIGluaXRpYWxpemF0aW9uRGF0
YTpuc0luaXREYXRhIG9wdGlvbnM6bmlsXTsKKyAgICAgICAgICAgIFtjb250ZW50S2V5U2Vzc2lv
bigpIHByb2Nlc3NDb250ZW50S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOm5zSWRlbnRpZmllciBp
bml0aWFsaXphdGlvbkRhdGE6bnNJbml0RGF0YS5nZXQoKSBvcHRpb25zOm5pbF07CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIFtjb250ZW50S2V5U2Vzc2lvbigpIHByb2Nlc3NDb250ZW50S2V5
UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YTpuc0luaXREYXRhIG9wdGlvbnM6bmlsXTsKKyAgICAg
ICAgICAgIFtjb250ZW50S2V5U2Vzc2lvbigpIHByb2Nlc3NDb250ZW50S2V5UmVxdWVzdEluaXRp
YWxpemF0aW9uRGF0YTpuc0luaXREYXRhLmdldCgpIG9wdGlvbnM6bmlsXTsKICAgICB9CiAKICAg
ICBpZiAoc2hvdWxkR2VuZXJhdGVLZXlSZXF1ZXN0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpp
bmRleCA3NjQ4YmRiODU1NDVmNzA5OWZhZTY1ODY0MjkyYTE1MTcwMzdkZjI1Li5lODAzZDI2YzJl
YzRlNWE0MDJjMGM3Mzc2ZTQ3NDI3ZjU1Mjk4MjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
QEAgLTIxMjIsOCArMjEyMiw4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKEFWQXNzZXRSCiAgICAgICAgIGF1
dG8ga2V5VVJJQXJyYXkgPSBVaW50MTZBcnJheTo6Y3JlYXRlKGluaXREYXRhQnVmZmVyLmNvcHlS
ZWYoKSwgNCwga2V5VVJJLmxlbmd0aCgpKTsKICAgICAgICAga2V5VVJJQXJyYXktPnNldFJhbmdl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgVW5pQ2hhcio+KFN0cmluZ1ZpZXcoa2V5VVJJKS51cGNv
bnZlcnRlZENoYXJhY3RlcnMoKS5nZXQoKSksIGtleVVSSS5sZW5ndGgoKSAvIHNpemVvZih1bnNp
Z25lZCBjaGFyKSwgMCk7CiAKLSAgICAgICAgYXV0byBpbml0RGF0YSA9IFVpbnQ4QXJyYXk6OmNy
ZWF0ZShXVEZNb3ZlKGluaXREYXRhQnVmZmVyKSwgMCwgYnl0ZUxlbmd0aCk7Ci0gICAgICAgIHBs
YXllcigpLT5rZXlOZWVkZWQoaW5pdERhdGEucHRyKCkpOworICAgICAgICBhdXRvIGluaXREYXRh
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoVmVjdG9yPHVpbnQ4X3Q+IHsgc3RhdGljX2Nhc3Q8dWlu
dDhfdCo+KGluaXREYXRhQnVmZmVyLT5kYXRhKCkpLCBieXRlTGVuZ3RoIH0pOworICAgICAgICBw
bGF5ZXIoKS0+a2V5TmVlZGVkKGluaXREYXRhKTsKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQogICAgICAgICBpZiAoIXBsYXllcigpLT5zaG91bGRDb250aW51ZUFmdGVyS2V5TmVlZGVkKCkp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIxNTEsOSArMjE1MSw3IEBAIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJl
c291cmNlKEFWQXNzZXRSCiAgICAgaWYgKHNjaGVtZSA9PSAiY2xlYXJrZXkiKSB7CiAgICAgICAg
IFN0cmluZyBrZXlJRCA9IFtbW2F2UmVxdWVzdCByZXF1ZXN0XSBVUkxdIHJlc291cmNlU3BlY2lm
aWVyXTsKICAgICAgICAgYXV0byBlbmNvZGVkS2V5SWQgPSBQQUw6OlVURjhFbmNvZGluZygpLmVu
Y29kZShrZXlJRCwgUEFMOjpVbmVuY29kYWJsZUhhbmRsaW5nOjpVUkxFbmNvZGVkRW50aXRpZXMp
OwotCi0gICAgICAgIGF1dG8gaW5pdERhdGEgPSBVaW50OEFycmF5OjpjcmVhdGUoZW5jb2RlZEtl
eUlkLnNpemUoKSk7Ci0gICAgICAgIGluaXREYXRhLT5zZXRSYW5nZShlbmNvZGVkS2V5SWQuZGF0
YSgpLCBlbmNvZGVkS2V5SWQuc2l6ZSgpLCAwKTsKKyAgICAgICAgYXV0byBpbml0RGF0YSA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoZW5jb2RlZEtleUlkKSk7CiAKICAgICAgICAgYXV0
byBrZXlEYXRhID0gcGxheWVyKCktPmNhY2hlZEtleUZvcktleUlkKGtleUlEKTsKICAgICAgICAg
aWYgKGtleURhdGEpIHsKQEAgLTIxNjEsNyArMjE1OSw3IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKEFWQXNz
ZXRSCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBwbGF5
ZXIoKS0+a2V5TmVlZGVkKGluaXREYXRhLnB0cigpKTsKKyAgICAgICAgcGxheWVyKCktPmtleU5l
ZWRlZChpbml0RGF0YSk7CiAKICAgICAgICAgaWYgKCFwbGF5ZXIoKS0+c2hvdWxkQ29udGludWVB
ZnRlcktleU5lZWRlZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMuaAppbmRleCBiY2FkMTI1NDM2M2ExODdjNjhhMzM2OGZhN2E3YTE0ODUxNWI4MmU1
Li4yOTgzY2VjYWRlYTIyZTNmMjU1YjA3OWM5NmEyZjc4OTFjZDNhMzMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuZFNp
bXVsYXRlZEhEQ1BFcnJvcigpIG92ZXJyaWRlIHsgb3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmlj
aWVudEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoZmFsc2UpOyB9CiAKICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkgfHwgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lk
IGtleU5lZWRlZChVaW50OEFycmF5Kik7CisgICAgdm9pZCBrZXlOZWVkZWQoY29uc3QgU2hhcmVk
QnVmZmVyJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggZTk1ZjhjM2NhY2YwYWRlMTgxMWYxMWJhZTY4M2JlNGI1
ZmIxNTUzMy4uMWMzMzI3MjU0NmI0ZWY4Yjc5Nzg4ZDkwNTI3YTUwZTU0ZDZkNDlkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldENETVNlc3Npb24oTGVnYWN5Q0RNU2Vz
c2lvbiogc2Vzc2kKICNlbmRpZiAvLyBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKIAog
I2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKSB8fCBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmtleU5lZWRl
ZChVaW50OEFycmF5KiBpbml0RGF0YSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjprZXlOZWVkZWQoY29uc3QgU2hhcmVkQnVmZmVyJiBpbml0RGF0YSkKIHsKICAg
ICBtX3BsYXllci0+a2V5TmVlZGVkKGluaXREYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZG
T2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKaW5kZXggOTAwN2RjY2E5ZGVlMTBlZWJjM2IzMWQ2MzM4
MDYwZDdlOTIzNzA1Ni4uN2VjMTBjMTQwNDc0YjZiMTAwMDk3YzlhZjVhZTkzYjRhODgyMGQ3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmgKQEAgLTI5LDEx
ICsyOSwxMyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogCiB1c2luZyBDVlBpeGVs
QnVmZmVyUmVmID0gc3RydWN0IF9fQ1ZCdWZmZXIqOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI7CiBjbGFzcyBQaXhlbEJ1ZmZlcjsKIAogY2xh
c3MgTWVkaWFTYW1wbGVBVkZPYmpDIDogcHVibGljIE1lZGlhU2FtcGxlIHsKQEAgLTYxLDYgKzYz
LDcgQEAgcHVibGljOgogCiAgICAgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNhbXBsZSgpIG92ZXJyaWRlOworICAgIFBsYXRm
b3JtU2FtcGxlOjpUeXBlIHBsYXRmb3JtU2FtcGxlVHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1ZmZlclR5cGU7IH0KICAgICBzdGQ6Om9wdGlv
bmFsPEJ5dGVSYW5nZT4gYnl0ZVJhbmdlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBv
ZmZzZXRUaW1lc3RhbXBzQnkoY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGU7CkBAIC04MCw2ICs4
MywxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEJ5dGVSYW5nZU9mZnNldChzaXplX3QpOwog
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgJiYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9O
KQorICAgIHVzaW5nIEtleUlEcyA9IFZlY3RvcjxSZWY8RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcj4+
OworICAgIHZvaWQgc2V0S2V5SURzKEtleUlEcyYmIGtleUlEcykgeyBtX2tleUlEcyA9IFdURk1v
dmUoa2V5SURzKTsgfQorICAgIGNvbnN0IEtleUlEcyYga2V5SURzKCkgY29uc3QgeyByZXR1cm4g
bV9rZXlJRHM7IH0KKyAgICBLZXlJRHMmIGtleUlEcygpIHsgcmV0dXJuIG1fa2V5SURzOyB9Cisj
ZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhU2FtcGxlQVZGT2Jq
QyhSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIE1l
ZGlhU2FtcGxlQVZGT2JqQyhDTVNhbXBsZUJ1ZmZlclJlZik7CkBAIC05NCw2ICsxMDQsMjggQEAg
cHJvdGVjdGVkOgogICAgIEF0b21TdHJpbmcgbV9pZDsKICAgICBWaWRlb1JvdGF0aW9uIG1fcm90
YXRpb24geyBWaWRlb1JvdGF0aW9uOjpOb25lIH07CiAgICAgYm9vbCBtX21pcnJvcmVkIHsgZmFs
c2UgfTsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIEhBVkUoQVZDT05URU5US0VZ
U0VTU0lPTikKKyAgICBWZWN0b3I8UmVmPEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+PiBtX2tleUlE
czsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4gc3RydWN0IExvZ0FyZ3VtZW50OwordGVtcGxh
dGUgPD4KK3N0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM+IHsK
KyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZG
T2JqQyYgc2FtcGxlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHNhbXBsZS50b0pTT05TdHJpbmco
KTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19CRUdJTihXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakMpCitzdGF0aWMgYm9vbCBpc1R5
cGUoY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBsZSkgeyByZXR1cm4gc2FtcGxlLnBs
YXRmb3JtU2FtcGxlVHlwZSgpID09IFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlOjpDTVNhbXBsZUJ1
ZmZlclR5cGU7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
b3VyY2VQcml2YXRlQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oCmluZGV4IDcyMjQ5
N2UwYmM0MjBjZDRlNjJiMDYyNDkyM2JmZDhmOWQ1NDA2MjIuLjg5NTFiMjQ3ZGQwMDE1MGVkMTZj
ZTA0MWFjY2VjYmJmY2JlZDVmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmgKQEAgLTEyNSw3ICsxMjUsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc291cmNlQnVmZmVyUHJpdmF0ZURpZENoYW5nZUFjdGl2ZVN0YXRlKFNvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDKiwgYm9vbCBhY3RpdmUpOwogICAgIHZvaWQgc291cmNlQnVmZmVy
UHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakMqKTsKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lk
IHNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyosIFVpbnQ4
QXJyYXkqKTsKKyAgICB2b2lkIHNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQyosIGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogI2VuZGlmCiAgICAgdm9pZCByZW1v
dmVTb3VyY2VCdWZmZXIoU291cmNlQnVmZmVyUHJpdmF0ZSopOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJj
ZVByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5tbQppbmRleCA5MjdkMTMw
MzExZThlZWM4YjAyMTU2YWM2MzI4MGE5YmY5ZDA4MDhjLi4xMjAxYjcyNmJkMDQ3YzVmMTEwZjcx
NGFiMTAyMzE5YTYxNjIyY2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU291cmNlUHJpdmF0ZUFWRk9iakMubW0KQEAgLTE5NSw5ICsxOTUsMTAgQEAgdm9pZCBNZWRp
YVNvdXJjZVByaXZhdGVBVkZPYmpDOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkQ2hhbmdlQWN0aXZl
U3RhdGUoU291cmNlQnUKIH0KIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQot
dm9pZCBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpzb3VyY2VCdWZmZXJLZXlOZWVkZWQoU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMqIGJ1ZmZlciwgVWludDhBcnJheSogaW5pdERhdGEpCit2
b2lkIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakM6OnNvdXJjZUJ1ZmZlcktleU5lZWRlZChTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQyogYnVmZmVyLCBjb25zdCBTaGFyZWRCdWZmZXImIGluaXRE
YXRhKQogewogICAgIG1fc291cmNlQnVmZmVyc05lZWRpbmdTZXNzaW9ucy5hcHBlbmQoYnVmZmVy
KTsKKwogICAgIGlmIChtX3BsYXllcikKICAgICAgICAgbV9wbGF5ZXItPmtleU5lZWRlZChpbml0
RGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQYXJz
ZXJBVkZPYmpDLmgKaW5kZXggYzIyZTcyNWY4NTQ2ZjI3OGZmNjU3YTVmNGM1NzJiOTI5NTE1ZWQ0
OC4uNzgxMTIwNGNjZmQxZDgxYjE1MDkyYjU3NWE4Mjk4MGQ2MmMyZjEwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUGFyc2VyQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakMuaApAQCAtNjgs
NiArNjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQcm92aWRlTWVkaWFEYXRhRm9yVHJhY2tJ
RCh1aW50NjRfdCB0cmFja0lELCBDTVNhbXBsZUJ1ZmZlclJlZiwgY29uc3QgU3RyaW5nJiBtZWRp
YVR5cGUsIHVuc2lnbmVkIGZsYWdzKTsKICAgICB2b2lkIHdpbGxQcm92aWRlQ29udGVudEtleVJl
cXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKHVpbnQ2NF90IHRyYWNrSUQpOwogICAg
IHZvaWQgZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJh
Y2tJRChOU0RhdGEqLCB1aW50NjRfdCB0cmFja0lEKTsKKyAgICB2b2lkIGRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdFNwZWNpZmllckZvclRyYWNrSUQoTlNEYXRhKiwgdWludDY0X3QgdHJhY2tJ
RCk7CiAKIHByaXZhdGU6CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VC
dWZmZXJQYXJzZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUGFyc2VyQVZGT2JqQy5tbQppbmRleCBhYmQ4
MWU1ZjNjMWVhNTBlNDIyZTJmYTNjMmJhMWQxOGNmZTMxYWUyLi5hYTE1ODQwNGIxMGU0NDRhZjZl
NWVkZGM4ZGFkNmJhOTZlZDVjYjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L1NvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakMubW0KQEAgLTU3LDYgKzU3LDEyIEBACiAjcHJhZ21h
IG1hcmsgLQogI3ByYWdtYSBtYXJrIFdlYkFWU3RyZWFtRGF0YVBhcnNlckxpc3RlbmVyCiAKKyNp
ZiBIQVZFKEFWQ09OVEVOVEtFWVNQRUNJRklFUikKK0BpbnRlcmZhY2UgQVZDb250ZW50S2V5U3Bl
Y2lmaWVyIChXZWJDb3JlUHJpdmF0ZSkKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5TRGF0YSAqaW5p
dGlhbGl6YXRpb25EYXRhOworQGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgV2ViQVZTdHJlYW1E
YXRhUGFyc2VyTGlzdGVuZXIgOiBOU09iamVjdDxBVlN0cmVhbURhdGFQYXJzZXJPdXRwdXRIYW5k
bGluZz4gewogICAgIFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakMqIF9wYXJlbnQ7
CiAgICAgQVZTdHJlYW1EYXRhUGFyc2VyKiBfcGFyc2VyOwpAQCAtMTMzLDYgKzEzOSwxNiBAQCBB
TExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBBU1NFUlRfVU5VU0VEKHN0
cmVhbURhdGFQYXJzZXIsIHN0cmVhbURhdGFQYXJzZXIgPT0gX3BhcnNlcik7CiAgICAgX3BhcmVu
dC0+ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJ
RChpbml0RGF0YSwgdHJhY2tJRCk7CiB9CisKKyNpZiBIQVZFKEFWQ09OVEVOVEtFWVNQRUNJRklF
UikKKy0gKHZvaWQpc3RyZWFtRGF0YVBhcnNlcjooQVZTdHJlYW1EYXRhUGFyc2VyICopc3RyZWFt
RGF0YVBhcnNlciBkaWRQcm92aWRlQ29udGVudEtleVNwZWNpZmllcjooQVZDb250ZW50S2V5U3Bl
Y2lmaWVyICopa2V5U3BlY2lmaWVyIGZvclRyYWNrSUQ6KENNUGVyc2lzdGVudFRyYWNrSUQpdHJh
Y2tJRAoreworICAgIEFTU0VSVF9VTlVTRUQoc3RyZWFtRGF0YVBhcnNlciwgc3RyZWFtRGF0YVBh
cnNlciA9PSBfcGFyc2VyKTsKKyAgICBpZiAoW2tleVNwZWNpZmllciByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluaXRpYWxpemF0aW9uRGF0YSldKQorICAgICAgICBfcGFyZW50LT5kaWRQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RTcGVjaWZpZXJGb3JUcmFja0lEKGtleVNwZWNpZmllci5p
bml0aWFsaXphdGlvbkRhdGEsIHRyYWNrSUQpOworfQorI2VuZGlmCisKIEBlbmQKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzM0LDEwICszNTAsMTQgQEAgdm9pZCBTb3VyY2VCdWZmZXJQYXJz
ZXJBVkZPYmpDOjp3aWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRh
Rm8KIAogdm9pZCBTb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKE5TRGF0YSogbnNJbml0RGF0YSwg
dWludDY0X3QgdHJhY2tJRCkKIHsKLSAgICBhdXRvIGluaXREYXRhID0gVWludDhBcnJheTo6Y3Jl
YXRlKG5zSW5pdERhdGEubGVuZ3RoKTsKLSAgICBbbnNJbml0RGF0YSBnZXRCeXRlczppbml0RGF0
YS0+ZGF0YSgpIGxlbmd0aDppbml0RGF0YS0+bGVuZ3RoKCldOworICAgIG1fZGlkUHJvdmlkZUNv
bnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRENhbGxiYWNrKFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKG5zSW5pdERhdGEpLCB0cmFja0lEKTsKK30KIAotICAgIG1fZGlkUHJv
dmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRENhbGxiYWNr
KFdURk1vdmUoaW5pdERhdGEpLCB0cmFja0lEKTsKK3ZvaWQgU291cmNlQnVmZmVyUGFyc2VyQVZG
T2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0U3BlY2lmaWVyRm9yVHJhY2tJRChOU0Rh
dGEqIG5zSW5pdERhdGEsIHVpbnQ2NF90IHRyYWNrSUQpCit7CisgICAgbV9jYWxsT25DbGllbnRU
aHJlYWRDYWxsYmFjayhbdGhpcywgc3Ryb25nVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5zSW5pdERh
dGEgPSByZXRhaW5QdHIobnNJbml0RGF0YSksIHRyYWNrSURdIHsKKyAgICAgICAgbV9kaWRQcm92
aWRlQ29udGVudEtleVJlcXVlc3RJZGVudGlmaWVyRm9yVHJhY2tJRENhbGxiYWNrKFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKG5zSW5pdERhdGEuZ2V0KCkpLCB0cmFja0lEKTsKKyAgICB9KTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLmgKaW5kZXggNzU0YjFlMmVlYzAyZGYzMzk1ZTVjZGI1YzA3ZjhlODhhOTM1Y2QwOC4uMzc2
YTZmYzE0MzgxMWVlYjg1NjdiY2IwOGU3ZGRkM2IxZmYxM2NmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvT1NPYmplY3RQdHIuaD4KKyNpbmNsdWRlIDx3dGYvT2Jz
ZXJ2ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTk1LDcgKzk2LDkgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJNZWRpYVNvdXJjZSgpIHsgbV9tZWRpYVNvdXJjZSA9IG51bGxwdHI7IH0K
IAogICAgIHZvaWQgd2lsbFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvclRyYWNrSUQodWludDY0X3QgdHJhY2tJRCk7Ci0gICAgdm9pZCBkaWRQcm92aWRlQ29udGVu
dEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKFJlZjxVaW50OEFycmF5PiYm
LCB1aW50NjRfdCB0cmFja0lELCBCb3g8QmluYXJ5U2VtYXBob3JlPik7CisgICAgdm9pZCBkaWRQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKFJlZjxT
aGFyZWRCdWZmZXI+JiYsIHVpbnQ2NF90IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+KTsK
KworICAgIHZvaWQgZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SWRlbnRpZmllckZvclRyYWNr
SUQoUmVmPFNoYXJlZEJ1ZmZlcj4mJiwgdWludDY0X3QgdHJhY2tJRCk7CiAKICAgICBib29sIGhh
c1NlbGVjdGVkVmlkZW8oKSBjb25zdDsKIApAQCAtMTMyLDcgKzEzNSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGJ1ZmZlcldhc0NvbnN1bWVkKCk7CiAgICAgCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNS
WVBURURfTUVESUEpCi0gICAgVWludDhBcnJheSogaW5pdERhdGEoKSB7IHJldHVybiBtX2luaXRE
YXRhLmdldCgpOyB9CisgICAgU2hhcmVkQnVmZmVyKiBpbml0RGF0YSgpIHsgcmV0dXJuIG1faW5p
dERhdGEuZ2V0KCk7IH0KICNlbmRpZgogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECkBAIC0x
NTAsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB1c2luZyBJbml0aWFsaXphdGlvblNlZ21lbnQg
PSBTb3VyY2VCdWZmZXJQcml2YXRlQ2xpZW50OjpJbml0aWFsaXphdGlvblNlZ21lbnQ7CiAgICAg
dm9pZCBkaWRQYXJzZUluaXRpYWxpemF0aW9uRGF0YShJbml0aWFsaXphdGlvblNlZ21lbnQmJik7
CiAgICAgdm9pZCBkaWRFbmNvdW50ZXJFcnJvckR1cmluZ1BhcnNpbmcoaW50MzJfdCk7Ci0gICAg
dm9pZCBkaWRQcm92aWRlTWVkaWFEYXRhRm9yVHJhY2tJZChSZWY8TWVkaWFTYW1wbGU+JiYsIHVp
bnQ2NF90IHRyYWNrSWQsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKTsKKyAgICB2b2lkIGRpZFBy
b3ZpZGVNZWRpYURhdGFGb3JUcmFja0lkKFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+JiYsIHVpbnQ2
NF90IHRyYWNrSWQsIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKTsKIAogICAgIC8vIFNvdXJjZUJ1
ZmZlclByaXZhdGUgb3ZlcnJpZGVzCiAgICAgdm9pZCBhcHBlbmQoUmVmPFNoYXJlZEJ1ZmZlcj4m
JikgZmluYWw7CkBAIC0xNzQsNiArMTc3LDcgQEAgcHJpdmF0ZToKICAgICBNZWRpYVRpbWUgY3Vy
cmVudE1lZGlhVGltZSgpIGNvbnN0IGZpbmFsOwogICAgIE1lZGlhVGltZSBkdXJhdGlvbigpIGNv
bnN0IGZpbmFsOwogCisgICAgdm9pZCBlbnF1ZXVlU2FtcGxlKFJlZjxNZWRpYVNhbXBsZUFWRk9i
akM+JiYsIHVpbnQ2NF90IHRyYWNrSUQpOwogICAgIHZvaWQgZGlkQmVjb21lUmVhZHlGb3JNb3Jl
U2FtcGxlcyh1aW50NjRfdCB0cmFja0lEKTsKICAgICB2b2lkIGFwcGVuZENvbXBsZXRlZCgpOwog
ICAgIHZvaWQgZGVzdHJveVN0cmVhbURhdGFQYXJzZXIoKTsKQEAgLTE4Niw2ICsxOTAsMTIgQEAg
cHJpdmF0ZToKICAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogCiAgICAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDKiBwbGF5ZXIoKSBjb25zdDsKKyAgICBi
b29sIGNhbkVucXVldWVTYW1wbGUodWludDY0X3QgdHJhY2tJRCwgY29uc3QgTWVkaWFTYW1wbGVB
VkZPYmpDJik7CisgICAgYm9vbCB0cmFja0lzQmxvY2tlZCh1aW50NjRfdCB0cmFjaykgY29uc3Q7
CisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKSAmJiBIQVZFKEFWQ09OVEVOVEtFWVNFU1NJ
T04pCisgICAgdm9pZCBrZXlTdGF0dXNlc0NoYW5nZWQoKTsKKyNlbmRpZgogCiAgICAgVmVjdG9y
PFJlZlB0cjxWaWRlb1RyYWNrUHJpdmF0ZT4+IG1fdmlkZW9UcmFja3M7CiAgICAgVmVjdG9yPFJl
ZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4+IG1fYXVkaW9UcmFja3M7CkBAIC0xOTcsNyArMjA3LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJvY2Vzc2luZ0luaXRpYWxpemF0aW9uU2VnbWVudCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdBcHBlbmRDb21wbGV0ZWRDYWxsYmFjayB7
IGZhbHNlIH07CiAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4+IG1fcGVuZGluZ1RyYWNrQ2hh
bmdlQ2FsbGJhY2tzOwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8dWludDY0X3QsIFJlZjxNZWRpYVNh
bXBsZT4+PiBtX21lZGlhU2FtcGxlczsKKyAgICBWZWN0b3I8c3RkOjpwYWlyPHVpbnQ2NF90LCBS
ZWY8TWVkaWFTYW1wbGVBVkZPYmpDPj4+IG1fbWVkaWFTYW1wbGVzOworICAgIERlcXVlPHN0ZDo6
cGFpcjx1aW50NjRfdCwgUmVmPE1lZGlhU2FtcGxlQVZGT2JqQz4+PiBtX2Jsb2NrZWRTYW1wbGVz
OwogCiAgICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyPiBtX2Rpc3BsYXlM
YXllcjsKICAgICBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCkBAIC0yMTUsMTMg
KzIyNiwyNyBAQCBwcml2YXRlOgogCiAgICAgTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQyogbV9t
ZWRpYVNvdXJjZTsKICAgICBib29sIG1faXNBY3RpdmUgeyBmYWxzZSB9OworCiAjaWYgRU5BQkxF
KExFR0FDWV9FTkNSWVBURURfTUVESUEpCi0gICAgUmVmUHRyPFVpbnQ4QXJyYXk+IG1faW5pdERh
dGE7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9pbml0RGF0YTsKICAgICBXZWFrUHRyPENE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM+IG1fc2Vzc2lvbiB7IG51bGxwdHIgfTsKICNlbmRp
ZgogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIEhBVkUoQVZDT05URU5US0VZU0VTU0lP
TikKKyAgICB1c2luZyBLZXlJRHMgPSBWZWN0b3I8UmVmPEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+
PjsKKyAgICBzdHJ1Y3QgVHJhY2tJbml0RGF0YSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGluaXREYXRhOworICAgICAgICBLZXlJRHMga2V5SURzOworICAgIH07CisgICAgdXNpbmcg
VHJhY2tJbml0RGF0YU1hcCA9IEhhc2hNYXA8dWludDY0X3QsIFRyYWNrSW5pdERhdGE+OworICAg
IFRyYWNrSW5pdERhdGFNYXAgbV9wZW5kaW5nUHJvdGVjdGVkVHJhY2tJbml0RGF0YU1hcDsKKyAg
ICBUcmFja0luaXREYXRhTWFwIG1fcHJvdGVjdGVkVHJhY2tJbml0RGF0YU1hcDsKKworICAgIHVz
aW5nIFRyYWNrS2V5SURzTWFwID0gSGFzaE1hcDx1aW50NjRfdCwgS2V5SURzPjsKKyAgICBUcmFj
a0tleUlEc01hcCBtX2N1cnJlbnRUcmFja0lEczsKKwogICAgIFJlZlB0cjxDRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gbV9jZG1JbnN0YW5jZTsKLSAgICBWZWN0b3I8UmVmPEZy
YWdtZW50ZWRTaGFyZWRCdWZmZXI+PiBtX2tleUlEczsKKyAgICBVbmlxdWVSZWY8T2JzZXJ2ZXI8
dm9pZCgpPj4gbV9rZXlTdGF0dXNlc0NoYW5nZWRPYnNlcnZlcjsKKyAgICBLZXlJRHMgbV9rZXlJ
RHM7CiAjZW5kaWYKIAogICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRTaXplPiBtX2NhY2hlZFNpemU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDLm1tCmluZGV4IGU2MWEzYTdmY2M5NjM3OThmNjg5OGMwMTI3YmQ3NGJiMzMwYmY3YTEuLmM5
Njc2ZDJmNGI2OTE4N2Y2MGViMGM4MWRkZGFmYzM1OThhYzA1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC03Niw2
ICs3NiwxMiBAQCAtICh2b2lkKWV4cGVjdE1pbmltdW1VcGNvbWluZ1NhbXBsZUJ1ZmZlclByZXNl
bnRhdGlvblRpbWU6IChDTVRpbWUpbWluaW11bVVwY29taQogLSAodm9pZClyZXNldFVwY29taW5n
U2FtcGxlQnVmZmVyUHJlc2VudGF0aW9uVGltZUV4cGVjdGF0aW9uczsKIEBlbmQKIAorQGludGVy
ZmFjZSBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciAoV2ViQ29yZVNhbXBsZUJ1ZmZlcktleVNl
c3Npb24pIDxBVkNvbnRlbnRLZXlSZWNpcGllbnQ+CitAZW5kCisKK0BpbnRlcmZhY2UgQVZTYW1w
bGVCdWZmZXJBdWRpb1JlbmRlcmVyIChXZWJDb3JlU2FtcGxlQnVmZmVyS2V5U2Vzc2lvbikgPEFW
Q29udGVudEtleVJlY2lwaWVudD4KK0BlbmQKKwogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFy
ayBBVlN0cmVhbVNlc3Npb24KIApAQCAtMjc1LDYgKzI4MSwyNCBAQCBzdGF0aWMgdWludDY0X3Qg
bmV4dE1hcElEKCkKICAgICByZXR1cm4gKyttYXBJRDsKIH0KIAorc3RhdGljIGJvb2wgc2FtcGxl
QnVmZmVyUmVuZGVyZXJzU3VwcG9ydEtleVNlc3Npb24oKQoreworICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzID0gZmFsc2U7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47Cisg
ICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBbJl0geworICAgICAgICBzdXBwb3J0cyA9IFtQ
QUw6OmdldEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlckNsYXNzKCkgY29uZm9ybXNUb1Byb3Rv
Y29sOkBwcm90b2NvbChBVkNvbnRlbnRLZXlSZWNpcGllbnQpXQorICAgICAgICAgICAgJiYgW1BB
TDo6Z2V0QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJDbGFzcygpIGNvbmZvcm1zVG9Qcm90b2Nv
bDpAcHJvdG9jb2woQVZDb250ZW50S2V5UmVjaXBpZW50KV07CisgICAgfSk7CisgICAgcmV0dXJu
IHN1cHBvcnRzOworfQorCitzdGF0aWMgVmVjdG9yPFJlZjxGcmFnbWVudGVkU2hhcmVkQnVmZmVy
Pj4gY29weUtleUlEcyhjb25zdCBWZWN0b3I8UmVmPEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+PiBr
ZXlJRHMpCit7CisgICAgcmV0dXJuIGtleUlEcy5tYXAoW10gKGF1dG8mIGtleUlEKSB7CisgICAg
ICAgIHJldHVybiBrZXlJRC5jb3B5UmVmKCk7CisgICAgfSk7Cit9CisKIHN0YXRpYyB2b2lkIGJ1
ZmZlcldhc0NvbnN1bWVkQ2FsbGJhY2soQ01Ob3RpZmljYXRpb25DZW50ZXJSZWYsIGNvbnN0IHZv
aWQqIGxpc3RlbmVyLCBDRlN0cmluZ1JlZiBub3RpZmljYXRpb25OYW1lLCBjb25zdCB2b2lkKiwg
Q0ZUeXBlUmVmKQogewogICAgIGlmICghQ0ZFcXVhbChQQUw6OmtDTVNhbXBsZUJ1ZmZlckNvbnN1
bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVkLCBub3RpZmljYXRpb25OYW1lKSkKQEAgLTMw
Nyw2ICszMzEsOSBAQCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6U291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMoTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQwogICAgICwgbV9lcnJvckxpc3Rl
bmVyKGFkb3B0TlMoW1tXZWJBVlNhbXBsZUJ1ZmZlckVycm9yTGlzdGVuZXIgYWxsb2NdIGluaXRX
aXRoUGFyZW50Oip0aGlzXSkpCiAgICAgLCBtX2FwcGVuZFF1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRl
KCJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyBkYXRhIHBhcnNlciBxdWV1ZSIpKQogICAgICwg
bV9tZWRpYVNvdXJjZShwYXJlbnQpCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgJiYgSEFW
RShBVkNPTlRFTlRLRVlTRVNTSU9OKQorICAgICwgbV9rZXlTdGF0dXNlc0NoYW5nZWRPYnNlcnZl
cihtYWtlVW5pcXVlUmVmPE9ic2VydmVyPHZvaWQoKT4+KFt0aGlzXSB7IGtleVN0YXR1c2VzQ2hh
bmdlZCgpOyB9KSkKKyNlbmRpZgogICAgICwgbV9tYXBJRChuZXh0TWFwSUQoKSkKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nZ2VyKHBhcmVudC0+bG9nZ2VyKCkpCkBAIC0z
NjQsNiArMzkxLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VJ
bml0aWFsaXphdGlvbkRhdGEoSW5pdGlhbGl6YXRpb25TZWdtZW4KIAogICAgIGNsZWFyVHJhY2tz
KCk7CiAKKyAgICBtX3Byb3RlY3RlZFRyYWNrSW5pdERhdGFNYXAuc3dhcChtX3BlbmRpbmdQcm90
ZWN0ZWRUcmFja0luaXREYXRhTWFwKTsKKyAgICBtX3BlbmRpbmdQcm90ZWN0ZWRUcmFja0luaXRE
YXRhTWFwLmNsZWFyKCk7CisKICAgICBmb3IgKGF1dG8gdmlkZW9UcmFja0luZm8gOiBzZWdtZW50
LnZpZGVvVHJhY2tzKSB7CiAgICAgICAgIHZpZGVvVHJhY2tJbmZvLnRyYWNrLT5zZXRTZWxlY3Rl
ZENoYW5nZWRDYWxsYmFjayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpc10gKFZp
ZGVvVHJhY2tQcml2YXRlJiB0cmFjaywgYm9vbCBzZWxlY3RlZCkgewogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKQEAgLTQ1OCwxMCArNDg4LDE2IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmRpZEVuY291bnRlckVycm9yRHVyaW5nUGFyc2luZyhpbnQzMl90IGNvZGUpCiAg
ICAgbV9wYXJzaW5nU3VjY2VlZGVkID0gZmFsc2U7CiB9CiAKLXZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lkKFJlZjxNZWRpYVNhbXBs
ZT4mJiBtZWRpYVNhbXBsZSwgdWludDY0X3QgdHJhY2tJZCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5
cGUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlTWVkaWFEYXRh
Rm9yVHJhY2tJZChSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiYmIG1lZGlhU2FtcGxlLCB1aW50NjRf
dCB0cmFja0lkLCBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
bWVkaWFUeXBlKTsKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIEhBVkUoQVZDT05U
RU5US0VZU0VTU0lPTikKKyAgICBhdXRvIGZpbmRSZXN1bHQgPSBtX3Byb3RlY3RlZFRyYWNrSW5p
dERhdGFNYXAuZmluZCh0cmFja0lkKTsKKyAgICBpZiAoZmluZFJlc3VsdCAhPSBtX3Byb3RlY3Rl
ZFRyYWNrSW5pdERhdGFNYXAuZW5kKCkpCisgICAgICAgIG1lZGlhU2FtcGxlLT5zZXRLZXlJRHMo
Y29weUtleUlEcyhmaW5kUmVzdWx0LT52YWx1ZS5rZXlJRHMpKTsKKyNlbmRpZgorCiAgICAgaWYg
KG1fcHJvY2Vzc2luZ0luaXRpYWxpemF0aW9uU2VnbWVudCkgewogICAgICAgICBERUJVR19MT0co
TE9HSURFTlRJRklFUiwgbWVkaWFTYW1wbGUuZ2V0KCkpOwogICAgICAgICBtX21lZGlhU2FtcGxl
cy5hcHBlbmQoc3RkOjptYWtlX3BhaXIodHJhY2tJZCwgV1RGTW92ZShtZWRpYVNhbXBsZSkpKTsK
QEAgLTUwOCw3ICs1NDQsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjp3aWxs
UHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRgogI2VuZGlmCiB9CiAK
LXZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVx
dWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQoUmVmPFVpbnQ4QXJyYXk+JiYgaW5pdERh
dGEsIHVpbnQ2NF90IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+IGhhc1Nlc3Npb25TZW1h
cGhvcmUpCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVu
dEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKFJlZjxTaGFyZWRCdWZmZXI+
JiYgaW5pdERhdGEsIHVpbnQ2NF90IHRyYWNrSUQsIEJveDxCaW5hcnlTZW1hcGhvcmU+IGhhc1Nl
c3Npb25TZW1hcGhvcmUpCiB7CiAgICAgYXV0byBwbGF5ZXIgPSB0aGlzLT5wbGF5ZXIoKTsKICAg
ICBpZiAoIXBsYXllcikKQEAgLTUxOSwxMSArNTU1LDE1IEBAIHZvaWQgU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0
YUZvCiAKICAgICBtX3Byb3RlY3RlZFRyYWNrSUQgPSB0cmFja0lEOwogICAgIG1faW5pdERhdGEg
PSBXVEZNb3ZlKGluaXREYXRhKTsKLSAgICBtX21lZGlhU291cmNlLT5zb3VyY2VCdWZmZXJLZXlO
ZWVkZWQodGhpcywgbV9pbml0RGF0YS5nZXQoKSk7CisgICAgbV9tZWRpYVNvdXJjZS0+c291cmNl
QnVmZmVyS2V5TmVlZGVkKHRoaXMsICptX2luaXREYXRhKTsKKwogICAgIGlmIChhdXRvIHNlc3Np
b24gPSBwbGF5ZXItPmNkbVNlc3Npb24oKSkgewotICAgICAgICBpZiAoYXV0byBwYXJzZXIgPSB0
aGlzLT5zdHJlYW1EYXRhUGFyc2VyKCkpCisgICAgICAgIGlmIChzYW1wbGVCdWZmZXJSZW5kZXJl
cnNTdXBwb3J0S2V5U2Vzc2lvbigpKSB7CisgICAgICAgICAgICAvLyBuby1vcC4KKyAgICAgICAg
fSBlbHNlIGlmIChhdXRvIHBhcnNlciA9IHRoaXMtPnN0cmVhbURhdGFQYXJzZXIoKSkKICAgICAg
ICAgICAgIHNlc3Npb24tPmFkZFBhcnNlcihwYXJzZXIpOwotICAgICAgICBoYXNTZXNzaW9uU2Vt
YXBob3JlLT5zaWduYWwoKTsKKyAgICAgICAgaWYgKGhhc1Nlc3Npb25TZW1hcGhvcmUpCisgICAg
ICAgICAgICBoYXNTZXNzaW9uU2VtYXBob3JlLT5zaWduYWwoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICNlbmRpZgpAQCAtNTMzLDE0ICs1NzMsMTcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRh
Rm8KICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUgPSBoYXNTZXNzaW9uU2VtYXBob3JlOwogICAg
IAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpICYmIEhBVkUoQVZDT05URU5US0VZU0VTU0lP
TikKLSAgICBhdXRvIGluaXREYXRhQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUobV9pbml0
RGF0YS0+ZGF0YSgpLCBtX2luaXREYXRhLT5ieXRlTGVuZ3RoKCkpOwotICAgIGF1dG8ga2V5SURz
ID0gQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0S2V5SURzU2luZihpbml0RGF0
YUJ1ZmZlcik7CisgICAgYXV0byBrZXlJRHMgPSBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6
OmV4dHJhY3RLZXlJRHNTaW5mKCptX2luaXREYXRhKTsKICAgICBpZiAoIWtleUlEcykKICAgICAg
ICAgcmV0dXJuOwogCisgICAgbV9wZW5kaW5nUHJvdGVjdGVkVHJhY2tJbml0RGF0YU1hcC5zZXQo
dHJhY2tJRCwgVHJhY2tJbml0RGF0YSB7IG1faW5pdERhdGEuY29weVJlZigpLCAqa2V5SURzIH0p
OworCiAgICAgaWYgKG1fY2RtSW5zdGFuY2UpIHsKICAgICAgICAgaWYgKGF1dG8gaW5zdGFuY2VT
ZXNzaW9uID0gbV9jZG1JbnN0YW5jZS0+c2Vzc2lvbkZvcktleUlEcyhrZXlJRHMudmFsdWUoKSkp
IHsKLSAgICAgICAgICAgIGlmIChhdXRvIHBhcnNlciA9IHRoaXMtPnN0cmVhbURhdGFQYXJzZXIo
KSkKKyAgICAgICAgICAgIGlmIChzYW1wbGVCdWZmZXJSZW5kZXJlcnNTdXBwb3J0S2V5U2Vzc2lv
bigpKSB7CisgICAgICAgICAgICAgICAgLy8gbm8tb3AuCisgICAgICAgICAgICB9IGVsc2UgaWYg
KGF1dG8gcGFyc2VyID0gdGhpcy0+c3RyZWFtRGF0YVBhcnNlcigpKQogICAgICAgICAgICAgICAg
IFtpbnN0YW5jZVNlc3Npb24tPmNvbnRlbnRLZXlTZXNzaW9uKCkgYWRkQ29udGVudEtleVJlY2lw
aWVudDpwYXJzZXJdOwogICAgICAgICAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFwaG9yZSkgewog
ICAgICAgICAgICAgICAgIG1faGFzU2Vzc2lvblNlbWFwaG9yZS0+c2lnbmFsKCk7CkBAIC01NTIs
NyArNTk1LDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNv
bnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8KICAgICB9CiAKICAgICBtX2tleUlE
cyA9IFdURk1vdmUoa2V5SURzLnZhbHVlKCkpOwotICAgIHBsYXllci0+aW5pdGlhbGl6YXRpb25E
YXRhRW5jb3VudGVyZWQoInNpbmYiLCBpbml0RGF0YUJ1ZmZlci0+dHJ5Q3JlYXRlQXJyYXlCdWZm
ZXIoKSk7CisgICAgcGxheWVyLT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCgic2luZiIs
IG1faW5pdERhdGEtPnRyeUNyZWF0ZUFycmF5QnVmZmVyKCkpOwogCiAgICAgbV93YWl0aW5nRm9y
S2V5ID0gdHJ1ZTsKICAgICBwbGF5ZXItPndhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CkBAIC01ODcs
NyArNjMwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6YXBwZW5kKFJlZjxT
aGFyZWRCdWZmZXI+JiYgZGF0YSkKICAgICAgICAgd2Vha1RoaXMtPmRpZEVuY291bnRlckVycm9y
RHVyaW5nUGFyc2luZyhlcnJvckNvZGUpOwogICAgIH0pOwogCi0gICAgbV9wYXJzZXItPnNldERp
ZFByb3ZpZGVNZWRpYURhdGFDYWxsYmFjayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
YWJvcnRDYWxsZWQgPSBtX2Fib3J0Q2FsbGVkXSAoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwg
dWludDY0X3QgdHJhY2tJZCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpIHsKKyAgICBtX3BhcnNl
ci0+c2V0RGlkUHJvdmlkZU1lZGlhRGF0YUNhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCBhYm9ydENhbGxlZCA9IG1fYWJvcnRDYWxsZWRdIChSZWY8TWVkaWFTYW1wbGVBVkZP
YmpDPiYmIHNhbXBsZSwgdWludDY0X3QgdHJhY2tJZCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUp
IHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgaWYgKCF3ZWFrVGhp
cyB8fCBhYm9ydENhbGxlZCAhPSB3ZWFrVGhpcy0+bV9hYm9ydENhbGxlZCkKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTYxNiw3ICs2NTksNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZP
YmpDOjphcHBlbmQoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBkYXRhKQogICAgICAgICB9CiAgICAgfSk7
CiAKLSAgICBtX3BhcnNlci0+c2V0RGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6
YXRpb25EYXRhRm9yVHJhY2tJRENhbGxiYWNrKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBhYm9ydFNlbWFwaG9yZSA9IG1fYWJvcnRTZW1hcGhvcmUsIGFib3J0Q2FsbGVkID0gbV9hYm9y
dENhbGxlZF0oUmVmPFVpbnQ4QXJyYXk+JiYgaW5pdERhdGEsIHVpbnQ2NF90IHRyYWNrSUQpIG11
dGFibGUgeworICAgIG1fcGFyc2VyLT5zZXREaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0
aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEQ2FsbGJhY2soW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGFib3J0U2VtYXBob3JlID0gbV9hYm9ydFNlbWFwaG9yZSwgYWJvcnRDYWxsZWQgPSBt
X2Fib3J0Q2FsbGVkXShSZWY8U2hhcmVkQnVmZmVyPiYmIGluaXREYXRhLCB1aW50NjRfdCB0cmFj
a0lEKSBtdXRhYmxlIHsKICAgICAgICAgLy8gQ2FsbGVkIG9uIHRoZSBkYXRhIHBhcnNlciBxdWV1
ZS4KICAgICAgICAgQm94PEJpbmFyeVNlbWFwaG9yZT4gaGFzU2Vzc2lvblNlbWFwaG9yZSA9IEJv
eDxCaW5hcnlTZW1hcGhvcmU+OjpjcmVhdGUoKTsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
d2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgYWJvcnRDYWxsZWQsIGluaXREYXRhID0gV1RG
TW92ZShpbml0RGF0YSksIHRyYWNrSUQsIGhhc1Nlc3Npb25TZW1hcGhvcmVdICgpIG11dGFibGUg
ewpAQCAtNjM2LDYgKzY3OSwxMyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjph
cHBlbmQoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBkYXRhKQogICAgICAgICB9CiAgICAgfSk7CiAKKyAg
ICBtX3BhcnNlci0+c2V0RGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SWRlbnRpZmllckZvclRy
YWNrSURDYWxsYmFjayhbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgYWJvcnRDYWxsZWQg
PSBtX2Fib3J0Q2FsbGVkXSAoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBpbml0RGF0YSwgdWludDY0X3Qg
dHJhY2tJRCkgeworICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8IGFib3J0Q2FsbGVkICE9IHdlYWtUaGlzLT5tX2Fib3J0Q2FsbGVkKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB3ZWFrVGhpcy0+ZGlkUHJvdmlkZUNvbnRlbnRLZXlS
ZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRChXVEZNb3ZlKGluaXREYXRhKSwgdHJh
Y2tJRCwgbnVsbHB0cik7CisgICAgfSk7CisKICAgICBtX3BhcnNpbmdTdWNjZWVkZWQgPSB0cnVl
OwogCiAgICAgbV9hcHBlbmRRdWV1ZS0+ZGlzcGF0Y2goW2RhdGEgPSBXVEZNb3ZlKGRhdGEpLCB3
ZWFrVGhpcyA9IG1fYXBwZW5kV2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyksIHBhcnNl
ciA9IG1fcGFyc2VyLCBhYm9ydENhbGxlZCA9IG1fYWJvcnRDYWxsZWRdKCkgbXV0YWJsZSB7CkBA
IC03MzYsNiArNzg2LDExIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRlc3Ry
b3lSZW5kZXJlcnMoKQogICAgICAgICBbcmVuZGVyZXIgZmx1c2hdOwogICAgICAgICBbcmVuZGVy
ZXIgc3RvcFJlcXVlc3RpbmdNZWRpYURhdGFdOwogICAgICAgICBbbV9lcnJvckxpc3RlbmVyIHN0
b3BPYnNlcnZpbmdSZW5kZXJlcjpyZW5kZXJlci5nZXQoKV07CisKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKSAmJiBIQVZFKEFWQ09OVEVOVEtFWVNFU1NJT04pCisgICAgICAgIGlmIChtX2Nk
bUluc3RhbmNlICYmIHNhbXBsZUJ1ZmZlclJlbmRlcmVyc1N1cHBvcnRLZXlTZXNzaW9uKCkpCisg
ICAgICAgICAgICBbbV9jZG1JbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24oKSByZW1vdmVDb250
ZW50S2V5UmVjaXBpZW50OnJlbmRlcmVyLmdldCgpXTsKKyNlbmRpZgogICAgIH0KIAogICAgIFtt
X2Vycm9yTGlzdGVuZXIgaW52YWxpZGF0ZV07CkBAIC04NDMsNiArODk4LDExIEBAIHZvaWQgU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZChBdWRpb1RyYWNr
UHJpdmF0ZSYgdHJhY2ssCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQog
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgJiYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9O
KQorICAgICAgICBpZiAobV9jZG1JbnN0YW5jZSAmJiBzYW1wbGVCdWZmZXJSZW5kZXJlcnNTdXBw
b3J0S2V5U2Vzc2lvbigpKQorICAgICAgICAgICAgW21fY2RtSW5zdGFuY2UtPmNvbnRlbnRLZXlT
ZXNzaW9uKCkgYWRkQ29udGVudEtleVJlY2lwaWVudDpyZW5kZXJlci5nZXQoKV07CisjZW5kaWYK
KwogICAgICAgICAgICAgV2Vha1B0ciB3ZWFrVGhpcyB7ICp0aGlzIH07CiAgICAgICAgICAgICBb
cmVuZGVyZXIgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6ZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSB1c2luZ0Jsb2NrOl57CiAgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQpA
QCAtOTA5LDcgKzk2OSwyNCBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpzZXRD
RE1JbnN0YW5jZShDRE1JbnN0YW5jZSogaW5zdGFuY2UpCiAKICAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIpOwogCisgICAgaWYgKHNhbXBsZUJ1ZmZlclJlbmRlcmVyc1N1cHBvcnRLZXlTZXNz
aW9uKCkgJiYgbV9jZG1JbnN0YW5jZSkgeworICAgICAgICBpZiAobV9kaXNwbGF5TGF5ZXIpCisg
ICAgICAgICAgICBbbV9jZG1JbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24oKSByZW1vdmVDb250
ZW50S2V5UmVjaXBpZW50Om1fZGlzcGxheUxheWVyLmdldCgpXTsKKworICAgICAgICBmb3IgKGF1
dG8mIGF1ZGlvUmVuZGVyZXIgOiBtX2F1ZGlvUmVuZGVyZXJzLnZhbHVlcygpKQorICAgICAgICAg
ICAgW21fY2RtSW5zdGFuY2UtPmNvbnRlbnRLZXlTZXNzaW9uKCkgcmVtb3ZlQ29udGVudEtleVJl
Y2lwaWVudDphdWRpb1JlbmRlcmVyLmdldCgpXTsKKyAgICB9CisKICAgICBtX2NkbUluc3RhbmNl
ID0gZnBzSW5zdGFuY2U7CisKKyAgICBpZiAoc2FtcGxlQnVmZmVyUmVuZGVyZXJzU3VwcG9ydEtl
eVNlc3Npb24oKSAmJiBtX2NkbUluc3RhbmNlKSB7CisgICAgICAgIGlmIChtX2Rpc3BsYXlMYXll
cikKKyAgICAgICAgICAgIFttX2NkbUluc3RhbmNlLT5jb250ZW50S2V5U2Vzc2lvbigpIGFkZENv
bnRlbnRLZXlSZWNpcGllbnQ6bV9kaXNwbGF5TGF5ZXIuZ2V0KCldOworCisgICAgICAgIGZvciAo
YXV0byYgYXVkaW9SZW5kZXJlciA6IG1fYXVkaW9SZW5kZXJlcnMudmFsdWVzKCkpCisgICAgICAg
ICAgICBbbV9jZG1JbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24oKSBhZGRDb250ZW50S2V5UmVj
aXBpZW50OmF1ZGlvUmVuZGVyZXIuZ2V0KCldOworICAgIH0KKwogICAgIGF0dGVtcHRUb0RlY3J5
cHQoKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGluc3RhbmNlKTsKQEAgLTkyNiw4ICsxMDAz
LDEwIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmF0dGVtcHRUb0RlY3J5cHQo
KQogICAgIGlmICghaW5zdGFuY2VTZXNzaW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
YXV0byBwYXJzZXIgPSB0aGlzLT5zdHJlYW1EYXRhUGFyc2VyKCkpCi0gICAgICAgIFtpbnN0YW5j
ZVNlc3Npb24tPmNvbnRlbnRLZXlTZXNzaW9uKCkgYWRkQ29udGVudEtleVJlY2lwaWVudDpwYXJz
ZXJdOworICAgIGlmICghc2FtcGxlQnVmZmVyUmVuZGVyZXJzU3VwcG9ydEtleVNlc3Npb24oKSkg
eworICAgICAgICBpZiAoYXV0byBwYXJzZXIgPSB0aGlzLT5zdHJlYW1EYXRhUGFyc2VyKCkpCisg
ICAgICAgICAgICBbaW5zdGFuY2VTZXNzaW9uLT5jb250ZW50S2V5U2Vzc2lvbigpIGFkZENvbnRl
bnRLZXlSZWNpcGllbnQ6cGFyc2VyXTsKKyAgICB9CiAgICAgaWYgKG1faGFzU2Vzc2lvblNlbWFw
aG9yZSkgewogICAgICAgICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUtPnNpZ25hbCgpOwogICAgICAg
ICBtX2hhc1Nlc3Npb25TZW1hcGhvcmUgPSBudWxscHRyOwpAQCAtMTEwNSwxOSArMTE4NCw4OCBA
QCBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0VORAogICAgICAgICBwbGF5ZXItPnNldEhh
c0F2YWlsYWJsZUF1ZGlvU2FtcGxlKHJlbmRlcmVyLCBmYWxzZSk7CiB9CiAKK2Jvb2wgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrSXNCbG9ja2VkKHVpbnQ2NF90IHRyYWNrSUQpIGNv
bnN0Cit7CisgICAgZm9yIChhdXRvJiBzYW1wbGVQYWlyIDogbV9ibG9ja2VkU2FtcGxlcykgewor
ICAgICAgICBpZiAoc2FtcGxlUGFpci5maXJzdCA9PSB0cmFja0lEKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKworI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpICYmIEhBVkUoQVZDT05URU5US0VZU0VTU0lPTikKK3ZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZUFWRk9iakM6OmtleVN0YXR1c2VzQ2hhbmdlZCgpCit7CisgICAgd2hpbGUgKCFt
X2Jsb2NrZWRTYW1wbGVzLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvJiBmaXJzdFBhaXIgPSBt
X2Jsb2NrZWRTYW1wbGVzLmZpcnN0KCk7CisKKyAgICAgICAgLy8gSWYgd2Ugc3RpbGwgY2FuJ3Qg
ZW5xdWV1ZSB0aGUgc2FtcGxlLCBiYWlsLgorICAgICAgICBpZiAoIWNhbkVucXVldWVTYW1wbGUo
Zmlyc3RQYWlyLmZpcnN0LCBmaXJzdFBhaXIuc2Vjb25kKSkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBhdXRvIGZpcnN0UGFpclRha2VuID0gbV9ibG9ja2VkU2FtcGxlcy50YWtlRmly
c3QoKTsKKyAgICAgICAgZW5xdWV1ZVNhbXBsZShXVEZNb3ZlKGZpcnN0UGFpclRha2VuLnNlY29u
ZCksIGZpcnN0UGFpclRha2VuLmZpcnN0KTsKKyAgICB9Cit9CisjZW5kaWYKKworYm9vbCBTb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6Y2FuRW5xdWV1ZVNhbXBsZSh1aW50NjRfdCB0cmFja0lE
LCBjb25zdCBNZWRpYVNhbXBsZUFWRk9iakMmIHNhbXBsZSkKK3sKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKSAmJiBIQVZFKEFWQ09OVEVOVEtFWVNFU1NJT04pCisgICAgLy8gSWYgc2FtcGxl
IGJ1ZmZlcnMgZG9uJ3Qgc3VwcG9ydCBBVkNvbnRlbnRLZXlTZXNzaW9uOiBlbnF1ZXVlIHNhbXBs
ZQorICAgIGlmICghc2FtcGxlQnVmZmVyUmVuZGVyZXJzU3VwcG9ydEtleVNlc3Npb24oKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBpZiBzYW1wbGUgaXMgdW5lbmNyeXRwZWQ6IGVu
cXVldWUgc2FtcGxlCisgICAgaWYgKHNhbXBsZS5rZXlJRHMoKS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgLy8gaWYgc2FtcGxlIGlzIGVuY3J5cHRlZCwgYnV0IHdlIGFy
ZSBub3QgYXR0YWNoZWQgdG8gYSBDRE06IGRvIG5vdCBlbnF1ZXVlIHNhbXBsZS4KKyAgICBpZiAo
IW1fY2RtSW5zdGFuY2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIGlmIHNhbXBs
ZSBpcyBlbmNyeXB0ZWQsIGFuZCBrZXlJRHMgbWF0Y2ggdGhlIGN1cnJlbnQgc2V0IG9mIGtleUlE
czogZW5xdWV1ZSBzYW1wbGUuCisgICAgYXV0byBmaW5kUmVzdWx0ID0gbV9jdXJyZW50VHJhY2tJ
RHMuZmluZCh0cmFja0lEKTsKKyAgICBpZiAoZmluZFJlc3VsdCAhPSBtX2N1cnJlbnRUcmFja0lE
cy5lbmQoKSAmJiBmaW5kUmVzdWx0LT52YWx1ZSA9PSBzYW1wbGUua2V5SURzKCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgLy8gaWYgc2FtcGxlJ3Mgc2V0IG9mIGtleUlEcyBkb2VzIG5v
dCBtYXRjaCB0aGUgY3VycmVudCBzZXQgb2Yga2V5SURzLCBjb25zdWx0IHdpdGggdGhlIENETQor
ICAgIC8vIHRvIGRldGVybWluZSBpZiB0aGUga2V5SURzIGFyZSB1c2FibGU7IGlmIHNvLCB1cGRh
dGUgdGhlIGN1cnJlbnQgc2V0IG9mIGtleUlEcyBhbmQgZW5xdWV1ZSBzYW1wbGUuCisgICAgaWYg
KG1fY2RtSW5zdGFuY2UtPmlzQW55S2V5VXNhYmxlKHNhbXBsZS5rZXlJRHMoKSkpIHsKKyAgICAg
ICAgbV9jdXJyZW50VHJhY2tJRHMuc2V0KHRyYWNrSUQsIHNhbXBsZS5rZXlJRHMoKSk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIHJl
dHVybiB0cnVlOworI2VuZGlmCit9CisKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6
OmVucXVldWVTYW1wbGUoUmVmPE1lZGlhU2FtcGxlPiYmIHNhbXBsZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdHJhY2tJRFN0cmluZykKIHsKICAgICBhdXRvIHRyYWNrSUQgPSBwYXJzZUludGVnZXJBbGxv
d2luZ1RyYWlsaW5nSnVuazx1aW50NjRfdD4odHJhY2tJRFN0cmluZykudmFsdWVfb3IoMCk7CiAg
ICAgaWYgKHRyYWNrSUQgIT0gbV9lbmFibGVkVmlkZW9UcmFja0lEICYmICFtX2F1ZGlvUmVuZGVy
ZXJzLmNvbnRhaW5zKHRyYWNrSUQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBQbGF0Zm9ybVNh
bXBsZSBwbGF0Zm9ybVNhbXBsZSA9IHNhbXBsZS0+cGxhdGZvcm1TYW1wbGUoKTsKLSAgICBpZiAo
cGxhdGZvcm1TYW1wbGUudHlwZSAhPSBQbGF0Zm9ybVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBl
KQorICAgIGlmICghaXM8TWVkaWFTYW1wbGVBVkZPYmpDPihzYW1wbGUpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiBzYW1wbGVBVkZPYmpDID0gc3RhdGlj
X3JlZmVyZW5jZV9jYXN0PE1lZGlhU2FtcGxlQVZGT2JqQz4oV1RGTW92ZShzYW1wbGUpKTsKKyAg
ICBpZiAoIXNhbXBsZUFWRk9iakMtPmtleUlEcygpLmlzRW1wdHkoKSAmJiAhY2FuRW5xdWV1ZVNh
bXBsZSh0cmFja0lELCBzYW1wbGVBVkZPYmpDKSkgeworICAgICAgICBtX2Jsb2NrZWRTYW1wbGVz
LmFwcGVuZCh7IHRyYWNrSUQsIFdURk1vdmUoc2FtcGxlQVZGT2JqQykgfSk7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKKyAgICBlbnF1ZXVlU2FtcGxlKFdURk1vdmUoc2FtcGxlQVZGT2JqQyks
IHRyYWNrSUQpOworfQorCit2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjplbnF1ZXVl
U2FtcGxlKFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+JiYgc2FtcGxlLCB1aW50NjRfdCB0cmFja0lE
KQorewogICAgIGF1dG8gbG9nU2l0ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwogICAgIERF
QlVHX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInRyYWNrIElEID0gIiwgdHJhY2tJRCwgIiwgc2Ft
cGxlID0gIiwgc2FtcGxlLmdldCgpKTsKIAorICAgIFBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2Ft
cGxlID0gc2FtcGxlLT5wbGF0Zm9ybVNhbXBsZSgpOworCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlv
blJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IFBBTDo6Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNj
cmlwdGlvbihwbGF0Zm9ybVNhbXBsZS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpOwogICAgIEFTU0VS
VChmb3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikgewpAQCAt
MTI4NCw2ICsxNDMyLDkgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkQmVj
b21lUmVhZHlGb3JNb3JlU2FtcGxlcyh1aW50NjRfdCB0cmFja0lEKQogICAgIGVsc2UKICAgICAg
ICAgcmV0dXJuOwogCisgICAgaWYgKHRyYWNrSXNCbG9ja2VkKHRyYWNrSUQpKQorICAgICAgICBy
ZXR1cm47CisKICAgICBwcm92aWRlTWVkaWFEYXRhKEF0b21TdHJpbmc6Om51bWJlcih0cmFja0lE
KSk7CiB9CiAKQEAgLTEzNzUsMTEgKzE1MjYsMjEgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6c2V0VmlkZW9MYXllcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciogbGF5ZXIK
ICAgICAgICAgW21fZGlzcGxheUxheWVyIGZsdXNoXTsKICAgICAgICAgW21fZGlzcGxheUxheWVy
IHN0b3BSZXF1ZXN0aW5nTWVkaWFEYXRhXTsKICAgICAgICAgW21fZXJyb3JMaXN0ZW5lciBzdG9w
T2JzZXJ2aW5nTGF5ZXI6bV9kaXNwbGF5TGF5ZXIuZ2V0KCldOworCisjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkgJiYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9OKQorICAgICAgICBpZiAobV9j
ZG1JbnN0YW5jZSAmJiBzYW1wbGVCdWZmZXJSZW5kZXJlcnNTdXBwb3J0S2V5U2Vzc2lvbigpKQor
ICAgICAgICAgICAgW21fY2RtSW5zdGFuY2UtPmNvbnRlbnRLZXlTZXNzaW9uKCkgcmVtb3ZlQ29u
dGVudEtleVJlY2lwaWVudDptX2Rpc3BsYXlMYXllci5nZXQoKV07CisjZW5kaWYKICAgICB9CiAK
ICAgICBtX2Rpc3BsYXlMYXllciA9IGxheWVyOwogCiAgICAgaWYgKG1fZGlzcGxheUxheWVyKSB7
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkgJiYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9O
KQorICAgICAgICBpZiAobV9jZG1JbnN0YW5jZSAmJiBzYW1wbGVCdWZmZXJSZW5kZXJlcnNTdXBw
b3J0S2V5U2Vzc2lvbigpKQorICAgICAgICAgICAgW21fY2RtSW5zdGFuY2UtPmNvbnRlbnRLZXlT
ZXNzaW9uKCkgYWRkQ29udGVudEtleVJlY2lwaWVudDptX2Rpc3BsYXlMYXllci5nZXQoKV07Cisj
ZW5kaWYKKwogICAgICAgICBXZWFrUHRyIHdlYWtUaGlzIHsgKnRoaXMgfTsKICAgICAgICAgW21f
ZGlzcGxheUxheWVyIHJlcXVlc3RNZWRpYURhdGFXaGVuUmVhZHlPblF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpeIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJj
ZUJ1ZmZlclBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyLmgKaW5kZXggNTIwYjUyMDdmYzI3MWQ3OTgxNTMzZmIxNGQyMzE1
NTk0YTg4ODM2NS4uZmMyYmFiOTA3ZDk4MzUzZDFmOGFhZDY5NGY5ZTU1MmE0YzI5ZmU3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvU291cmNlQnVm
ZmVyUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
U291cmNlQnVmZmVyUGFyc2VyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgTG9nZ2VyOwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb250ZW50VHlwZTsKLWNsYXNzIE1lZGlhU2FtcGxl
OworY2xhc3MgTWVkaWFTYW1wbGVBVkZPYmpDOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBjbGFz
cyBXRUJDT1JFX0VYUE9SVCBTb3VyY2VCdWZmZXJQYXJzZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJl
ZkNvdW50ZWQ8U291cmNlQnVmZmVyUGFyc2VyPiB7CkBAIC0xMjMsNyArMTIzLDcgQEAgcHVibGlj
OgogICAgIH0KIAogICAgIC8vIFdpbGwgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KLSAg
ICB1c2luZyBEaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJlZjxN
ZWRpYVNhbXBsZT4mJiwgdWludDY0X3QgdHJhY2tJRCwgY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUp
PjsKKyAgICB1c2luZyBEaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lk
KFJlZjxNZWRpYVNhbXBsZUFWRk9iakM+JiYsIHVpbnQ2NF90IHRyYWNrSUQsIGNvbnN0IFN0cmlu
ZyYgbWVkaWFUeXBlKT47CiAgICAgdm9pZCBzZXREaWRQcm92aWRlTWVkaWFEYXRhQ2FsbGJhY2so
RGlkUHJvdmlkZU1lZGlhRGF0YUNhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgewogICAgICAgICBt
X2RpZFByb3ZpZGVNZWRpYURhdGFDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwpAQCAtMTM3
LDEyICsxMzcsMTkgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIFdpbGwgYmUgY2FsbGVkIHN5
bmNocm9ub3VzbHkgb24gdGhlIHBhcnNlciB0aGVhZC4KLSAgICB1c2luZyBEaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEQ2FsbGJhY2sgPSBGdW5j
dGlvbjx2b2lkKFJlZjxVaW50OEFycmF5PiYmLCB1aW50NjRfdCB0cmFja0lEKT47CisgICAgdXNp
bmcgRGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJ
RENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZWY8U2hhcmVkQnVmZmVyPiYmLCB1aW50NjRfdCB0
cmFja0lEKT47CiAgICAgdm9pZCBzZXREaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFs
aXphdGlvbkRhdGFGb3JUcmFja0lEQ2FsbGJhY2soRGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0
SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRENhbGxiYWNrJiYgY2FsbGJhY2spCiAgICAgewog
ICAgICAgICBtX2RpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZv
clRyYWNrSURDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogICAgIH0KIAorICAgIC8vIFdp
bGwgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICB1c2luZyBEaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJZGVudGlmaWVyRm9yVHJhY2tJRENhbGxiYWNrID0gRnVuY3Rpb248dm9p
ZChSZWY8U2hhcmVkQnVmZmVyPiYmLCB1aW50NjRfdCB0cmFja0lEKT47CisgICAgdm9pZCBzZXRE
aWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJZGVudGlmaWVyRm9yVHJhY2tJRENhbGxiYWNrKERp
ZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdElkZW50aWZpZXJGb3JUcmFja0lEQ2FsbGJhY2smJiBj
YWxsYmFjaykKKyAgICB7CisgICAgICAgIG1fZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SWRl
bnRpZmllckZvclRyYWNrSURDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworICAgIH0KKwog
cHJvdGVjdGVkOgogICAgIFNvdXJjZUJ1ZmZlclBhcnNlcigpOwogCkBAIC0xNTIsNiArMTU5LDcg
QEAgcHJvdGVjdGVkOgogICAgIERpZFByb3ZpZGVNZWRpYURhdGFDYWxsYmFjayBtX2RpZFByb3Zp
ZGVNZWRpYURhdGFDYWxsYmFjazsKICAgICBXaWxsUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5p
dGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRENhbGxiYWNrIG1fd2lsbFByb3ZpZGVDb250ZW50S2V5
UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSURDYWxsYmFjazsKICAgICBEaWRQcm92
aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEQ2FsbGJhY2sg
bV9kaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lE
Q2FsbGJhY2s7CisgICAgRGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SWRlbnRpZmllckZvclRy
YWNrSURDYWxsYmFjayBtX2RpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdElkZW50aWZpZXJGb3JU
cmFja0lEQ2FsbGJhY2s7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3Bw
CmluZGV4IDA1YTgzMTZkYzI3ZTYzMDE3ZjM5N2YxOTI0NjliODJhMzNiN2IwMzQuLmFlMTY0MTRm
MjFjNjg0NmMxODk3NzA5ZTE0MjRlNGE2YTRiNzYxYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1NvdXJjZUJ1ZmZlclBh
cnNlcldlYk0uY3BwCkBAIC0xMDMyLDcgKzEwMzIsNyBAQCBTdGF0dXMgU291cmNlQnVmZmVyUGFy
c2VyV2ViTTo6T25UcmFja0VudHJ5KGNvbnN0IEVsZW1lbnRNZXRhZGF0YSYsIGNvbnN0IFRyYWNr
RQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBhdXRvJiBrZXlJZCA9
IGtleUlkRWxlbWVudC52YWx1ZSgpOwotICAgICAgICAgICAgbV9rZXlJZHMuYXBwZW5kKHN0ZDo6
bWFrZV9wYWlyKHRyYWNrRW50cnkudHJhY2tfdWlkLnZhbHVlKCksIFVpbnQ4QXJyYXk6OmNyZWF0
ZShrZXlJZC5kYXRhKCksIGtleUlkLnNpemUoKSkpKTsKKyAgICAgICAgICAgIG1fa2V5SWRzLmFw
cGVuZChzdGQ6Om1ha2VfcGFpcih0cmFja0VudHJ5LnRyYWNrX3VpZC52YWx1ZSgpLCBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShrZXlJZC5kYXRhKCksIGtleUlkLnNpemUoKSkpKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oCmluZGV4IDI4ZTczZmJhNTAyM2M4
MTZiZmIyNDJjNWY5OTBkYjk3YTE4YmMxZmYuLmU4NzZhYjQxNGE0YWJiMzNkNTE4YzM3YjQxZmU1
YTE0Nzc2YWI0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgKQEAgLTI2OSw3ICsy
NjksNyBAQCBwcml2YXRlOgogICAgIHdlYm06OlN0YXR1cyBPbkZyYW1lKGNvbnN0IHdlYm06OkZy
YW1lTWV0YWRhdGEmLCB3ZWJtOjpSZWFkZXIqLCB1aW50NjRfdCogYnl0ZXNSZW1haW5pbmcpIGZp
bmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEluaXRpYWxpemF0aW9uU2VnbWVudD4gbV9pbml0
aWFsaXphdGlvblNlZ21lbnQ7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRfdCwgUmVmPFVp
bnQ4QXJyYXk+Pj4gbV9rZXlJZHM7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjx1aW50NjRfdCwgUmVm
PFNoYXJlZEJ1ZmZlcj4+PiBtX2tleUlkczsKICAgICB3ZWJtOjpTdGF0dXMgbV9zdGF0dXM7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPHdlYm06OldlYm1QYXJzZXI+IG1fcGFyc2VyOwogICAgIGJvb2wg
bV9pbml0aWFsaXphdGlvblNlZ21lbnRFbmNvdW50ZXJlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFTYW1wbGVH
U3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVNhbXBsZUdTdHJlYW1lci5oCmluZGV4IDFkNzFhMzM5NjljZmJjNjc1ZGVlY2VhNzhlNjRm
MmQ2ODk5ZTQxZWIuLmI0ZDUzMTUwMjk4MmZkOWJjNmE5ZGQyYzI2OGQ3OWQ3ZmFiNzM2YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVNhbXBsZUdTdHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVNhbXBsZUdTdHJlYW1lci5oCkBAIC02Myw2ICs2Myw3IEBAIHB1Ymxp
YzoKICAgICBSZWY8TWVkaWFTYW1wbGU+IGNyZWF0ZU5vbkRpc3BsYXlpbmdDb3B5KCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgU2FtcGxlRmxhZ3MgZmxhZ3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2ZsYWdzOyB9CiAgICAgUGxhdGZvcm1TYW1wbGUgcGxhdGZvcm1TYW1wbGUoKSBvdmVycmlk
ZTsKKyAgICBQbGF0Zm9ybVNhbXBsZTo6VHlwZSBwbGF0Zm9ybVNhbXBsZVR5cGUoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBQbGF0Zm9ybVNhbXBsZTo6R1N0cmVhbWVyU2FtcGxlVHlwZTsgfQog
ICAgIHN0ZDo6b3B0aW9uYWw8Qnl0ZVJhbmdlPiBieXRlUmFuZ2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBzdGQ6Om51bGxvcHQ7IH0KICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25z
dCBvdmVycmlkZTsKICAgICBSZWZQdHI8SlNDOjpVaW50OENsYW1wZWRBcnJheT4gZ2V0UkdCQUlt
YWdlRGF0YSgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRl
LmNwcAppbmRleCA1Y2I2MGI5ZWY2ZWY1N2E0M2I0ZWVmNzJhMTM3Njc5YjFhZWJkNjViLi4wMDM5
YjQyMDAyYTZmMDVkY2I3ZGFiZDU5M2RmYTg0ZDJiMmJkNzJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tT
b3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtNjIsNiArNjIsNyBAQCBwcml2YXRlOgogICAgIHNp
emVfdCBzaXplSW5CeXRlcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHNpemVvZihtX2JveCk7
IH0KICAgICBTYW1wbGVGbGFncyBmbGFncygpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3Jt
U2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgb3ZlcnJpZGU7CisgICAgUGxhdGZvcm1TYW1wbGU6OlR5
cGUgcGxhdGZvcm1TYW1wbGVUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1T
YW1wbGU6Ok1vY2tTYW1wbGVCb3hUeXBlOyB9CiAgICAgc3RkOjpvcHRpb25hbDxCeXRlUmFuZ2U+
IGJ5dGVSYW5nZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgfQogICAg
IEZsb2F0U2l6ZSBwcmVzZW50YXRpb25TaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRmxv
YXRTaXplKCk7IH0KICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAppbmRleCA0MmEzMjA2NTRiMDNkZjliNDM5Nzc3OTQyNTY0NTgyMDA2
Y2RhMTEwLi43MTFjZWQwYmYxMzE0MjU5MTc3NWZmZDc5M2FlNWE4NmM2YWUwY2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCkBAIC02OTgsMTEgKzY5OCwxMCBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQoY29uc3Qg
UwogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyS2V5TmVlZGVkKFVpbnQ4QXJyYXkqIG1lc3NhZ2UpCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyS2V5TmVlZGVkKGNvbnN0IFNoYXJlZEJ1ZmZlciYg
bWVzc2FnZSkKIHsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZVJlZmVyZW5jZTsKLSAg
ICBpZiAobWVzc2FnZSkKLSAgICAgICAgbWVzc2FnZVJlZmVyZW5jZSA9IHsgbWVzc2FnZS0+ZGF0
YSgpLCBtZXNzYWdlLT5ieXRlTGVuZ3RoKCkgfTsKKyAgICBtZXNzYWdlUmVmZXJlbmNlID0geyBt
ZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkgfTsKICAgICBtX3dlYlByb2Nlc3NDb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVy
S2V5TmVlZGVkKFdURk1vdmUobWVzc2FnZVJlZmVyZW5jZSkpLCBtX2lkKTsKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmgKaW5kZXggOTMxNmI2NmFiMzU5NjZlNWI2NDVkZDFjN2NlMGU4MTJmMjA2YTYz
Ny4uNTk1YzU4OTE5ZWExM2ZlYjk1ZDhmYzBkMGI0MzIzMDY4YTgyYTBiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCkBAIC0yNDksNyArMjQ5LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShMRUdBQ1lfRU5D
UllQVEVEX01FRElBKQogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNoZWRL
ZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxh
eWVyS2V5TmVlZGVkKFVpbnQ4QXJyYXkqKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyS2V5
TmVlZGVkKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFsOwogICAgIFN0cmluZyBt
ZWRpYVBsYXllck1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKSBjb25zdCBmaW5hbDsKICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFk
ZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL01lZGlh
Rm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcAppbmRleCA3NzRjY2YzMWYyNjc3ZDBh
MDUyMTc2NTFiM2I0ZTEzMjM1YzRjMjk0Li5mODk1N2IzYjhlNDE4NjIzYjNiNTZjMDEyMTU3MDA1
YmRjZjYyODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3Jt
YXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYUZvcm1hdFJlYWRlci5jcHAKQEAgLTE2Miw3ICsx
NjIsNyBAQCB2b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpwYXJzZUJ5dGVTb3VyY2UoUmV0YWluUHRy
PE1UUGx1Z2luQnl0ZVNvdXJjZVJlZj4mJiBieXRlUwogICAgICAgICBkaWRQYXJzZVRyYWNrcyh7
IH0sIGVycm9yQ29kZSk7CiAgICAgfSk7CiAKLSAgICBwYXJzZXItPnNldERpZFByb3ZpZGVNZWRp
YURhdGFDYWxsYmFjayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKFJlZjxN
ZWRpYVNhbXBsZT4mJiBtZWRpYVNhbXBsZSwgdWludDY0X3QgdHJhY2tJRCwgY29uc3QgU3RyaW5n
JiBtZWRpYVR5cGUpIHsKKyAgICBwYXJzZXItPnNldERpZFByb3ZpZGVNZWRpYURhdGFDYWxsYmFj
ayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKFJlZjxNZWRpYVNhbXBsZUFW
Rk9iakM+JiYgbWVkaWFTYW1wbGUsIHVpbnQ2NF90IHRyYWNrSUQsIGNvbnN0IFN0cmluZyYgbWVk
aWFUeXBlKSB7CiAgICAgICAgIGRpZFByb3ZpZGVNZWRpYURhdGEoV1RGTW92ZShtZWRpYVNhbXBs
ZSksIHRyYWNrSUQsIG1lZGlhVHlwZSk7CiAgICAgfSk7CiAKQEAgLTIyNCw3ICsyMjQsNyBAQCB2
b2lkIE1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQYXJzZVRyYWNrcyhTb3VyY2VCdWZmZXJQcml2YXRl
Q2xpZW50OjpJbml0aWFsaXphdGlvbgogICAgIG1faW5pdCA9IHRydWU7CiB9CiAKLXZvaWQgTWVk
aWFGb3JtYXRSZWFkZXI6OmRpZFByb3ZpZGVNZWRpYURhdGEoUmVmPE1lZGlhU2FtcGxlPiYmIG1l
ZGlhU2FtcGxlLCB1aW50NjRfdCB0cmFja0lELCBjb25zdCBTdHJpbmcmKQordm9pZCBNZWRpYUZv
cm1hdFJlYWRlcjo6ZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8TWVkaWFTYW1wbGVBVkZPYmpDPiYm
IG1lZGlhU2FtcGxlLCB1aW50NjRfdCB0cmFja0lELCBjb25zdCBTdHJpbmcmKQogewogICAgIEFT
U0VSVCghaXNNYWluUnVuTG9vcCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuaAppbmRl
eCA2NTA5M2U5ZTQ2YjQwYjVhMzk3NmZkZWYyOWU2MTNjNjQ1MWYzMTVhLi4xNWQ1NTczNjMzODE3
NDYwYzJlNjIwNDQxOTAxMDIzY2Y4NmI0YTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFGb3JtYXRSZWFkZXIu
aApAQCAtMzYsNiArMzYsNyBAQAogREVDTEFSRV9DT1JFX01FRElBX1RSQUlUUyhGb3JtYXRSZWFk
ZXIpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNZWRpYVNhbXBsZUFWRk9iakM7CiBj
bGFzcyBTb3VyY2VCdWZmZXJQYXJzZXI7CiB9CiAKQEAgLTY3LDcgKzY4LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZFBhcnNlVHJhY2tzKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVDbGll
bnQ6OkluaXRpYWxpemF0aW9uU2VnbWVudCYmLCB1aW50NjRfdCBlcnJvckNvZGUpOwogICAgIHZv
aWQgZGlkU2VsZWN0VmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYsIGJvb2wp
IHsgfQogICAgIHZvaWQgZGlkRW5hYmxlQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJp
dmF0ZSYsIGJvb2wpIHsgfQotICAgIHZvaWQgZGlkUHJvdmlkZU1lZGlhRGF0YShSZWY8V2ViQ29y
ZTo6TWVkaWFTYW1wbGU+JiYsIHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGRp
ZFByb3ZpZGVNZWRpYURhdGEoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQz4mJiwgdWlu
dDY0X3QsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZmluaXNoUGFyc2luZyhSZWY8V2ViQ29y
ZTo6U291cmNlQnVmZmVyUGFyc2VyPiYmKTsKIAogICAgIC8vIENNQmFzZUNsYXNzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvTWVkaWFGb3JtYXRSZWFkZXIvTWVkaWFTYW1w
bGVCeXRlUmFuZ2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRl
ci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5oCmluZGV4IGI4ZTRkNzZjZTZmMzkyODU3NmU5ZmIxZWY5
NjJiNDA0OTdlM2RjMzEuLjI1NWMwN2VhNWFkNzg1MWVmZjhlNGVlNmY3ZTQ3YjM2MGU2MzY0ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9N
ZWRpYVNhbXBsZUJ5dGVSYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9NZWRp
YUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVSYW5nZS5oCkBAIC01MSw2ICs1MSw3IEBAIHB1
YmxpYzoKIAogICAgIEF0b21TdHJpbmcgdHJhY2tJRCgpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNv
cmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgZmluYWw7CisgICAgV2ViQ29yZTo6
UGxhdGZvcm1TYW1wbGU6OlR5cGUgcGxhdGZvcm1TYW1wbGVUeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OkJ5dGVSYW5nZVNhbXBsZVR5cGU7IH0KICAg
ICB2b2lkIG9mZnNldFRpbWVzdGFtcHNCeShjb25zdCBNZWRpYVRpbWUmKSBmaW5hbDsKICAgICB2
b2lkIHNldFRpbWVzdGFtcHMoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCAzM2RhOGFhMDZiNjE3Mjk3
MzI3MDNlOTBhZWUwMjVjNGE3NjI2YmY5Li41NjYwNmM0NzQwY2U5ZTk1NzU3NDIzYWU4NGI4MDVl
MTE4MjExYzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC0xMTkxLDcgKzEx
OTEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6a2V5QWRkZWQoKQogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Om1lZGlhUGxheWVyS2V5TmVlZGVkKElQQzo6RGF0YVJl
ZmVyZW5jZSYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKFJlZlB0ciBwbGF5ZXIgPSBtX3BsYXllci5n
ZXQoKSkKLSAgICAgICAgcGxheWVyLT5rZXlOZWVkZWQoVWludDhBcnJheTo6Y3JlYXRlKG1lc3Nh
Z2UuZGF0YSgpLCBtZXNzYWdlLnNpemUoKSkucHRyKCkpOworICAgICAgICBwbGF5ZXItPmtleU5l
ZWRlZChTaGFyZWRCdWZmZXI6OmNyZWF0ZShtZXNzYWdlKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU2ZDJlODkxZWIx
Mjg2OTU1NWI5ZGM5MzZjYjA5NTUwZmZmODA5NmQuLjdmMDI2OWY1NTczM2UwZmNlMzQ4YTU4OTll
MGNkOGIyOTAxNjMxNTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNTQgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBZG9wdCAtc3RyZWFtRGF0YVBhcnNl
cjpkaWRQcm92aWRlQ29udGVudEtleVNwZWNpZmllcjpmb3JUcmFja0lEOiBkZWxlZ2F0ZSBjYWxs
YmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2
MTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nv
Y29hXSBBZG9wdCAtc3RyZWFtRGF0YVBhcnNlcjpkaWRQcm92aWRlQ29udGVudEtleVNwZWNpZmll
cjpmb3JUcmFja0lEOiBkZWxlZ2F0ZSBjYWxsYmFjaworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MTA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU291cmNlL1dlYkNvcmU6CisKKyAgICAgICAgVGhlIGN1
cnJlbnQgc2V0IG9mIGRlbGVnYXRlIGNhbGxiYWNrIG1ldGhvZHMgaGF2ZSBhIHNpZ25pZmljYW50
IHNob3J0Y29taW5nOiBjbGllbnRzIG11c3QKKyAgICAgICAgYXR0YWNoIGFuIEFWQ29udGVudEtl
eVNlc3Npb24gdG8gdGhlIEFWU3RyZWFtRGF0YVBhcnNlciBiZWZvcmUgcmV0dXJuaW5nIGZyb20g
dGhlCisgICAgICAgIC1zdHJlYW1EYXRhUGFyc2VyOmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YTpmb3JUcmFja0lEOiBjYWxsYmFjay4gVGhpcworICAgICAgICBp
cyBiZWNhdXNlIHRoZSBwYXJzZXIgaXRzZWxmIGF0dGFjaGVzIHRoZSBvYmplY3QgcmVxdWlyZWQg
dG8gZGVjcnlwdCBlYWNoIGVuY3J5cHRlZCBzYW1wbGUKKyAgICAgICAgdG8gdGhlIHNhbXBsZSBp
dHNlbGYgYXQgdGhlIHBhcnNpbmcgc3RhZ2UuIElmIGEgY2xpZW50IGRvZXMgbm90IGF0dGFjaCBh
bgorICAgICAgICBBVkNvbnRlbnRLZXlTZXNzaW9uIGJ5IHRoZSB0aW1lIHRoYXQgbWV0aG9kIHJl
dHVybnMsIEFWU3RyZWFtRGF0YVBhcnNlciB3aWxsIGF0dGFjaCBvbmUgb2YKKyAgICAgICAgaXRz
IG93bi4KKworICAgICAgICBUaGUgd2ViLWZhY2luZyBiZWhhdmlvciB0aGlzIGNhdXNlcyBpcyB0
aGF0IE1TRSBhcHBlbmRzIHdpbGwgbm90IGNvbXBsZXRlIChieSBmaXJpbmcKKyAgICAgICAgYW4g
InVwZGF0ZWVuZCIgZXZlbnQpIGlmIGFuIGVuY3J5cHRlZCBzZWdtZW50IGlzIHBhcnNlZCB1bnRp
bCB0aGUgY2xpZW50IGNyZWF0ZXMgYW5kCisgICAgICAgIGF0dGFjaGVzIGEgTWVkaWFLZXlzIG9i
amVjdCB3aXRoIGEgdmFsaWQgc2Vzc2lvbi4KKworICAgICAgICBBIG5ldyBkZWxlZ2F0ZSBjYWxs
YmFjayBtZXRob2QsIC1zdHJlYW1EYXRhUGFyc2VyOmRpZFByb3ZpZGVDb250ZW50S2V5U3BlY2lm
aWVyOmZvclRyYWNrSUQ6CisgICAgICAgIGFsbG93cyB1cyB0byB3b3JrIGFyb3VuZCB0aGlzIHBy
b2JsZW0uIFdoZW4gdGhpcyBkZWxlZ2F0ZSBpcyBwcmVzZW50LCBBVlN0cmVhbURhdGFQYXJzZXIK
KyAgICAgICAgd2lsbCBza2lwIGF0dGFjaGluZyBhIGRlY3J5cHRpb24gb2JqZWN0IGVudGlyZWx5
LCBtb3ZpbmcgdGhhdCByZXNwb25zaWJpbGl0eSB0byB0aGUKKyAgICAgICAgY2xpZW50LiBIb3dl
dmVyLCB0aGlzIGNvbWVzIHdpdGggdGhlIHJlcXVpcmVtZW50IHRoYXQgdGhlIGNsaWVudCAoV2Vi
S2l0KSB3b24ndCBlbnF1ZXVlCisgICAgICAgIGFuIGVuY3J5cHRlZCBzYW1wbGUgYmVmb3JlIGEg
ZGVjcnlwdGlvbiBvYmplY3QgaXMgYXZhaWxhYmxlIHZpYSBBVkNvbnRlbnRLZXlTZXNzaW9uLgor
CisgICAgICAgIEluIG9yZGVyIHRvIG1lZXQgdGhpcyBuZXcgcmVxdWlyZW1lbnQsIFdlYktpdCB3
aWxsIGFzc29jaWF0ZSB0aGUga2V5IElEcyBuZWNlc3NhcnkgdG8KKyAgICAgICAgZGVjcnlwdCBl
YWNoIHNhbXBsZSBpbiB0aGUgTWVkaWFTYW1wbGUgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIGVuY3J5
cHRlZCBzYW1wbGUuIEJlY2F1c2Ugbm90CisgICAgICAgIGV2ZXJ5IHR5cGUgb2YgTWVkaWFTYW1w
bGUgd2lsbCBjYXJyeSBrZXkgSURzLCB0aGlzIHByb3BlcnR5IHdhcyBhZGRlZCB0byB0aGUKKyAg
ICAgICAgTWVkaWFTYW1wbGVBVkZPYmpDIHN1YmNsYXNzLCBhbmQgdGhlcmVmb3JlIHdlIG5lZWQg
dG8gYmUgYWJsZSB0byBzYWZlbHkgZG93bmNhc3QgZnJvbQorICAgICAgICBNZWRpYVNhbXBsZSB0
byBNZWRpYVNhbXBsZUFWRk9iakMuIE1lZGlhU2FtcGxlIHN1YmNsYXNzZXMgY2FuIGJlIGRpc3Rp
bmd1aXNoZWQgYnkgdGhlCisgICAgICAgIFBsYXRmb3JtTWVkaWFTYW1wbGUgdHlwZSBhdmFpbGFi
bGUgdGhyb3VnaCB0aGVpciBwbGF0Zm9ybVNhbXBsZSgpIHByb3BlcnR5LCBob3dldmVyIHRoaXMK
KyAgICAgICAgY2FsbCBpcyBub3QgY29uc3QsIGFuZCBtYXkgbm90IGJlIGZyZWUsIGFzIGl0IHJl
dHVybnMgYSBub24tUE9EIHR5cGUuIFNvCisgICAgICAgIFBsYXRmb3JtTWVkaWE6OlR5cGUgd2Fz
IG1hZGUgYW4gZXhwbGljaXQgZW51bSB0eXBlLCBhbmQgYSBuZXcgdmlydHVhbCBtZXRob2QKKyAg
ICAgICAgcGxhdGZvcm1TYW1wbGVUeXBlKCkgd2FzIGFkZGVkIHRvIE1lZGlhU2FtcGxlIChhbmQg
aW1wbGVtZW50ZWQgYnkgYWxsIHN1YmNsYXNzZXMpLCBhbmQgYQorICAgICAgICB0eXBlIHNwZWNp
YWxpemF0aW9uIG1hY3JvIHdhcyBhZGRlZCB0byBNZWRpYVNhbXBsZUFWRk9iakMuCisKKyAgICAg
ICAgSW4gb3JkZXIgdG8gY2hlY2sgd2hldGhlciBhIGdpdmVuIHNhbXBsZSBpcyBjYXBhYmxlIG9m
IGJlaW5nIGVucXVldWVkLCB0aGUgQ0RNSW5zdGFuY2UKKyAgICAgICAgbXVzdCBiZSBxdWVyaWVk
IHRvIGRldGVybWluZSBpZiB0aGUgc2FtcGxlJ3MgcmVxdWlyZWQga2V5cyBhcmUgdXNhYmxlLiBG
b3IKKyAgICAgICAgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMsIGl0IGhhcyBh
biBleGlzdGluZyBrZXlTdGF0dXMoKSwgbWV0aG9kLCBidXQgdGhhdAorICAgICAgICBtZXRob2Qg
aXMgYWxzbyBub24tY29uc3QsIGFuZCBtYXkgYmUgZXhwZW5zaXZlLiBTbyBhIEtleVN0YXR1c01h
cCBpbnN0YW5jZSB2YXJpYWJsZQorICAgICAgICBoYXMgYmVlbiBhZGRlZCB0byBjYWNoZSB0aGUg
a2V5IHN0YXR1cyBmb3IgZWFzZSBvZiBxdWVyeWluZy4gVG8gbm90aWZ5IGFuIGFyYml0cmFyeSBu
dW1iZXIKKyAgICAgICAgb2YgY2xpZW50cyB3aGVuIHRoZSBrZXkgc3RhdHVzZXMgY2hhbmdlLCBh
biBPYnNlcnZlciBoYXMgYmVlbiBhZGRlZC4KKworICAgICAgICBXaGVuIGFuIGVuY3J5cHRlZCBz
YW1wbGUgaXMgZW5xdWV1ZWQsIGlmIHRoaXMgbmV3IGRlbGVnYXRlIG1ldGhvZCBpcyBhdmFpbGFi
bGUsIHRoZQorICAgICAgICBzb3VyY2UgYnVmZmVyIHdpbGwgY2hlY2sgaWYgYSBDRE0gaW5zdGFu
Y2UgaXMgYXZhaWxhYmxlLCBhbmQgaWYgc28sIHdoZXRoZXIgdGhlIHNhbXBsZSdzCisgICAgICAg
IGtleXMgYXJlIHVzYWJsZS4gSWYgYW55IG9mIHRoZXNlIGNoZWNrcyBmYWlsLCB0aGUgc2FtcGxl
IHdpbGwgYmUgc3RvcmVkIGluIGEgbG9jYWwgcXVldWUKKyAgICAgICAgYW5kIG5ldyBlbnF1ZXVl
cyB3aWxsIGJlIGJsb2NrZWQuIFdoZW4gdGhlIENETSdzIGtleVN0YXR1cyBvYnNlcnZlciBpcyB0
cmlnZ2VyZWQsIHRoZQorICAgICAgICBsb2NhbCBxdWV1ZSB3aWxsIGJlIHByb2Nlc3NlZCwgYW5k
IGFsbCBzYW1wbGVzIHdpdGggdXNhYmxlIGtleSBJRHMgd2lsbCBiZSBlbnF1ZXVlZC4KKworICAg
ICAgICBEcml2ZS1ieSBmaXg6IFVzZSBTaGFyZWRCdWZmZXIgcmF0aGVyIHRoYW4gVWludDhBcnJh
eSwgYXMgdGhlIGZvcm1lciBpcyBsaWdodGVyIHdlaWdodAorICAgICAgICBhbmQgY2FuIGJlIG1v
cmUgZWFzaWx5IGNvbnZlcnRlZCB0byBhbmQgZnJvbSBhIE5TRGF0YS4KKworICAgICAgICAqIGh0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjptZWRpYVBsYXllcktleU5lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vTWVkaWFTYW1wbGUuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0ZpbGVSZWFkZXJDb2NvYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb0ZpbGVSZWFkZXI6OmRlbXV4V2ViTURhdGEgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjprZXlOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJL
ZXlOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFt
aW5nQVZGT2JqQzo6aXNBbnlLZXlVc2FibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
SW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmFkZEtleVN0YXR1c2VzQ2hhbmdlZE9i
c2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDOjpzZXNzaW9uS2V5U3RhdHVzZXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNE
TUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdERpZFN1Y2Nl
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjp1cGRhdGVLZXlTdGF0dXNlcyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0
YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmNvcHlLZXlTdGF0dXNlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rp
b25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlUHJvdGVjdGlvblN0YXR1c0ZvckRpc3BsYXlJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OmtleVN0YXR1c2VzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25B
VkNvbnRlbnRLZXlTZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWQ29u
dGVudEtleVNlc3Npb246OmdlbmVyYXRlS2V5UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6dXBkYXRlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6c2hvdWxkV2FpdEZvckxvYWRpbmdPZlJlc291cmNlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmtleU5lZWRlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1w
bGVBVkZPYmpDLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OnNldEtl
eUlEcyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmtleUlEcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6OmtleUlEcyk6CisgICAg
ICAgIChXVEY6OkxvZ0FyZ3VtZW50PFdlYkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQz46OnRvU3Ry
aW5nKToKKyAgICAgICAgKGlzVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU291cmNlUHJpdmF0ZUFWRk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDOjpzb3Vy
Y2VCdWZmZXJLZXlOZWVkZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDLm1t
OgorICAgICAgICAoLVtXZWJBVlN0cmVhbURhdGFQYXJzZXJMaXN0ZW5lciBzdHJlYW1EYXRhUGFy
c2VyOmRpZFByb3ZpZGVDb250ZW50S2V5U3BlY2lmaWVyOmZvclRyYWNrSUQ6XSk6CisgICAgICAg
IChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQYXJzZXJBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtl
eVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclBhcnNlckFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdFNw
ZWNpZmllckZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVCdWZmZXJSZW5kZXJlcnNTdXBwb3J0S2V5U2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpjb3B5S2V5SURzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQyk6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUGFyc2VJ
bml0aWFsaXphdGlvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0
ZUFWRk9iakM6OmRpZFByb3ZpZGVNZWRpYURhdGFGb3JUcmFja0lkKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVl
c3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRlc3Ryb3lSZW5kZXJlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OnRyYWNrRGlkQ2hhbmdlRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6c2V0Q0RNSW5zdGFu
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmF0dGVt
cHRUb0RlY3J5cHQpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akM6OnRyYWNrSXNCbG9ja2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZl
clByaXZhdGVBVkZPYmpDOjprZXlTdGF0dXNlc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmNhbkVucXVldWVTYW1wbGUpOgorICAgICAgICAo
V2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmVucXVldWVTYW1wbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZEJlY29tZVJlYWR5
Rm9yTW9yZVNhbXBsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFW
Rk9iakM6OnNldFZpZGVvTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1NvdXJjZUJ1ZmZlclBhcnNlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1NvdXJjZUJ1ZmZlclBhcnNlcldlYk0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVm
ZmVyUGFyc2VyV2ViTTo6T25UcmFja0VudHJ5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Tb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL01lZGlhU2FtcGxlR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZv
cm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisKKyAgICAg
ICAgU291cmNlL1dlYktpdDoKKworICAgICAgICBBZGQgdGhlIG5ld2x5IHJlcXVyaWVkIHZpcnR1
YWwgbWV0aG9kIGNoYW5nZXMgdG8gTWVkaWFTYW1wbGUgc3ViY2xhc3NlcywgYW5kIHVzZQorICAg
ICAgICBTaGFyZWRCdWZmZXIgcmF0aGVyIHRoYW4gVWludDhBcnJheS4KKworICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyS2V5TmVlZGVkKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAg
KiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFGb3JtYXRSZWFkZXI6OnBhcnNlQnl0ZVNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhRm9ybWF0UmVhZGVyOjpkaWRQcm92aWRlTWVkaWFEYXRhKToKKyAg
ICAgICAgKiBTaGFyZWQvbWFjL01lZGlhRm9ybWF0UmVhZGVyL01lZGlhRm9ybWF0UmVhZGVyLmg6
CisgICAgICAgICogU2hhcmVkL21hYy9NZWRpYUZvcm1hdFJlYWRlci9NZWRpYVNhbXBsZUJ5dGVS
YW5nZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6
bWVkaWFQbGF5ZXJLZXlOZWVkZWQpOgorCisgICAgICAgIFNvdXJjZS9XVEY6CisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvU2FtcGxlTWFwLmNwcDoKKwogMjAyMi0wMi0wNyAgUm95IFJlYXBvciAgPHJyZWFwb3JA
YXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRjb3JlcHldIEF1dG9pbnN0YWxsZXIgbWF5IGZh
aWwgdG8gaW5zdGFsbCB3aGVlbHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9TYW1wbGVNYXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1NhbXBsZU1hcC5jcHAKaW5kZXggZDE0NmNlYzRmMmVjNGNmNjkxMmQ3ZjA0OGQyODgxNTdh
ZGZkYzFiOC4uMmIyNzU5OTAyODdmY2U1ZDRlMWVmY2M0YTk4MDNhMzAwNGM2NjRjNCAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NhbXBsZU1hcC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NhbXBsZU1hcC5jcHAKQEAgLTcy
LDYgKzcyLDcgQEAgcHVibGljOgogICAgIH0KICAgICBTYW1wbGVGbGFncyBmbGFncygpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIG1fZmxhZ3M7IH0KICAgICBQbGF0Zm9ybVNhbXBsZSBwbGF0Zm9ybVNh
bXBsZSgpIGZpbmFsIHsgcmV0dXJuIHsgUGxhdGZvcm1TYW1wbGU6Ok5vbmUsIHtudWxscHRyfX07
IH0KKyAgICBQbGF0Zm9ybVNhbXBsZTo6VHlwZSBwbGF0Zm9ybVNhbXBsZVR5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBQbGF0Zm9ybVNhbXBsZTo6Tm9uZTsgfQogICAgIHN0ZDo6b3B0aW9uYWw8
Qnl0ZVJhbmdlPiBieXRlUmFuZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzdGQ6Om51bGxvcHQ7
IH0KIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0IGZpbmFsIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451271</attachid>
            <date>2022-02-08 10:38:53 -0800</date>
            <delta_ts>2022-02-12 09:05:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236245-20220208103852.patch</filename>
            <type>text/plain</type>
            <size>88434</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZkOWYyZmY4ZTVmM2E2OWU0Y2NhNjc3
MjRmZWY3MDA2MjAwYzAwNzMuLjI3MTVjNzdmZDE2MjZkODIwMWJkNWI0OGZiYWJjODY5OTE1M2Ux
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xMjMsNiArMTIzLDE1IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU4NTYKICAgICAgICAgaHR0cHM6Ly9jb21taXRzLndlYmtp
dC5vcmcvcjI4ODkwMgogCisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWluZXJz
IGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0wMiAgWGFuIExvcGV6ICA8eGFuQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgaW4gVHJhaWxpbmdB
cnJheS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmUwZDgxZDY0MWU3Mjg1MDZlM2YwNjBlNWEwNjMyZmE3YzE5
NGQxMS4uOWYwNDdiZWY4ZDU3ZGNkMmRiZWJjYjNjZDZiMDE0MmFlNjkzNDFkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEwMiBAQAorMjAyMi0wMi0wNyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3MgdG8gcmVzdHJpY3QgbWVkaWEgY29udGFp
bmVycyBhbmQgY29kZWNzIHdoZW4gaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjQ1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21lZGlhLWFs
bG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLWFsbG93ZWQtY29u
dGFpbmVycy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKKworICAgICAgICBBZGQgc2V0
dGluZ3MgYXQgdGhlIFdlYkNvcmUgbGV2ZWwgdG8gb3B0aW9uYWxseSBkZWNsYXJlIGEgbGlzdCBv
ZiBjb250YWluZXIgdHlwZXMsCisgICAgICAgIHZpZGVvIGNvZGVjcywgYXVkaW8gY29kZWNzLCBh
bmQgY2FwdGlvbiBmb3JtYXRzIHRvIGFsbG93IHdoZW4gbG9hZGluZyBtZWRpYSB0aHJvdWdoCisg
ICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYW5kIE1lZGlhU291cmNlLgorCisgICAgICAgIFRoZXJl
IGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoZSBjb2RlYyBJRCwgdHlwaWNhbGx5IGEgZm91ci1jaGFy
YWN0ZXItY29kZSBlbWJlZGRlZAorICAgICAgICBpbiB0aGUgY29udGFpbmVyIGl0c2VsZiwgZG9l
cyBub3QgbWF0Y2ggdGhlIFJGQzQyODEgY29kZWMgc3RyaW5nLiBOb3RhYmx5LCB0aGlzIGlzIHRo
ZSBjYXNlCisgICAgICAgIHdpdGggIm1wNGEuNDAiIGFuZCAnYWFjICcuIFNvIHRoZSBzZXR0aW5n
cyBtdXN0IGluY2x1ZGUgYm90aCB0aGUgY29kZWMgSUQgYW5kIHRoZSBjb2RlYworICAgICAgICB0
eXBlIGluIHN0cmluZyBmb3JtLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCkgYW5kIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0
ZWQoKQorICAgICAgICBhbmQgcmVqZWN0IENvbnRlbnRUeXBlcyB3aGljaCBkbyBub3QgY29uZm9y
bSB0byB0aGUgYWxsb3dlZCB0eXBlcy4KKworICAgICAgICBRdWVyeSB0aGVzZSBsaXN0cyBpbiBN
ZWRpYVNvdXJjZTo6Y2hhbmdlVHlwZSgpIHRvIGRpc2FsbG93IHN3aXRjaGluZyB0byBhbiB1bnN1
cHBvcnRlZAorICAgICAgICBDb250ZW50VHlwZS4KKyAgICAgICAgCisgICAgICAgIElmIHRoZXNl
IGxpc3RzIGFyZSBzZXQsIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgYXMgY3JlYXRpb24gb3B0
aW9ucy4KKworICAgICAgICBXaGVuIGEgbmV3IEFWQXNzZXRUcmFjayBpcyBsb2FkZWQsIHF1ZXJ5
IHRoZXNlIGxpc3RzIGFuZCBpZiB0aGUgdHJhY2sncyB0eXBlIGRvZXMgbm90CisgICAgICAgIGNv
bmZvcm0gdG8gdGhlIGFsbG93ZWQgdHlwZXMsIHN5bnRoZXNpemUgYW4gZXJyb3IgYW5kIGJsb2Nr
IGZ1cnRoZXIgbG9hZGluZy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRl
ZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXph
dGlvblNlZ21lbnQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjphbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6
OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29udGVudFR5cGVVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
bnRUeXBlc1RvQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUeXBlTWVldHNDb250
YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRpb25h
bFN0cmluZ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpudWxsT3B0aW9uYWxGb3VyQ0NWZWN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5leHRCZXN0TWVkaWFFbmdpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFW
aWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjps
b2FkaW5nTWV0YWRhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRlbnRUeXBlc1RvQ29kZWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJh
Y2tzQXJlUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tJc1BsYXlhYmxlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjphc3NldFRyYWNr
TWV0YWRhdGFLZXlOYW1lcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNl
dHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKToK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDIyLTAyLTA3ICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIE1vdmUgRG9jdW1lbnRUaW1lbGluZTo6cnVubmlu
Z0FuaW1hdGlvbnNGb3JSZW5kZXJlckFyZUFsbEFjY2VsZXJhdGVkKCkgdG8gU3R5bGVhYmxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZwppbmRleCBiMjA1MmM5ODI2ZTQ4YWIxY2YxZTk4YjJjNWQ0Mjg5NjMyNjJm
NDFhLi42MWFlZWM2MTY5YTA4Mjg2OGVhNjMyZjc1YTk4NjAyNzMyODAwZDRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMi0wNyAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3MgdG8gcmVzdHJpY3QgbWVkaWEg
Y29udGFpbmVycyBhbmQgY29kZWNzIHdoZW4gaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjQ1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsubW06CisKIDIwMjItMDItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgcHJpdmF0ZSByZWxheSBmb3IgYWxsIHN1YnJlc291
cmNlcyBpZiB0aGUgbWFpbiBkb2N1bWVudCBtYWluIHJlc291cmNlIHdhcyBsb2FkZWQgdXNpbmcg
cHJpdmF0ZSByZWxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNzZhYTg1MDQ2ZjFmYjI1YTM1NGQwMTJmYzc4ZThk
ZTQ1NmFhNzE5Li40YjdlZDNjNWYzOGE3YzU0YWY0ZWI1MmI2OTBkMWYwYzY1OTJjNjI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250
YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIgY2FjaGVzIHRoZSByZXN1bHRzIG9mIHN1cHBvcnRzVHlwZUFuZENvZGVjcygpIGNhbGxz
LCB3aGljaAorICAgICAgICBpcyBwcm9ibGVtYXRpYyB3aGVuIHRob3NlIHJlc3VsdHMgY2FuIGNo
YW5nZSBkdWUgdG8gYSBjaGFuZ2UgaW4gc2V0dGluZ3MuIFNvIGVuZm9yY2UKKyAgICAgICAgdGhl
IGFsbG93ZWQgY29kZWMgYW5kIGNvbnRhaW5lcnMgc2V0dGluZ3MgYXQgdGhlIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBsZXZlbC4gQWxzbywKKyAgICAgICAgcGFzcyB0aG9zZSBzZXR0aW5ncyBh
Y3Jvc3MgdGhlIEdQVSBwcm9jZXNzIGJvdW5kYXJ5IHZpYSBSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbi4KKworICAgICAgICBEcml2ZS1ieSBmaXg6IHJlZmFjdG9yIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOjpkZWNvZGUoKSBzbyBhcyBub3QgdG8gcmVxdWly
ZQorICAgICAgICByZS1kZWNsYXJpbmcgdGhlIHR5cGVzIG9mIGV2ZXJ5IGl2YXIsIGFuZCBncmVh
dGx5IHNpbXBsaWZ5IHRoZSBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOjpkZWNv
ZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3Jl
YXRlUmVtb3RlTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyk6CisKIDIwMjItMDItMDcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdW1dQXSBFbmFibGUgc2FuZGJveCBzdGF0ZSBydWxlcyBmb3Ig
TWFjaCBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2Vi
UHJlZmVyZW5jZXMueWFtbAppbmRleCBlNzljN2Q5MmQxMjhhODY2OGYzNGMzMjQxODUzOTE0NjMz
MWYyZWNlLi40YWE2N2EzMTI5ODA0ZGE5ZmY4ZTZhNDQ5NDU5NmM0NjYxZmY5ZTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbApA
QCAtMTMyNiw2ICsxMzI2LDE0IEBAIE1heFBhcnNlRHVyYXRpb246CiAgICAgV2ViQ29yZToKICAg
ICAgIGRlZmF1bHQ6IC0xCiAKK01lZGlhQXVkaW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0
YWxNb2RlOgorICB0eXBlOiBTdHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3Nl
ZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVs
dDogJyJhYWMgLHphYWMscWFhYyxjYWFjLC5tcDMiJworCiBNZWRpYUNhcGFiaWxpdGllc0VuYWJs
ZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOgpAQCAtMTMzNiw2ICsxMzQ0LDMwIEBA
IE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDog
ZmFsc2UKIAorTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9k
ZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6IFsg
V2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6ICci
YzYwOCx3dnR0IicKKworTWVkaWFDb2RlY1R5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGU6
CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdl
YktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnIm1w
NGEuNDAsYXZjMSInCisKK01lZGlhQ29udGFpbmVyVHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFs
TW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6
IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6
ICcidmlkZW8vbXA0LGF1ZGlvL21wNCx2aWRlby94LW00dixhdWRpby94LW00YSxhdWRpby9tcDMs
YXBwbGljYXRpb24veC1tcGVnVVJMLHZuZC5hcHBsZS5tcGVnVVJMIicKKwogTWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6CiAgIHR5cGU6IFN0cmluZwogICB3ZWJjb3Jl
RXhjbHVkZUZyb21JbnRlcm5hbFNldHRpbmdzOiB0cnVlCkBAIC0xNDU1LDYgKzE0ODcsMTQgQEAg
TWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50OgogICAgIFdlYkNvcmU6CiAgICAg
ICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVZpZGVvQ29kZWNJRHNBbGxvd2VkSW5DYXB0aXZlUG9y
dGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9z
ZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1
bHQ6ICciYXZjMSx6YXZjLHFhdmMsY2F2YyInCisKIE1lbnVJdGVtRWxlbWVudEVuYWJsZWQ6CiAg
IHR5cGU6IGJvb2wKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAK
aW5kZXggNTk1ZTQyNTQyN2U4ZWJhYzlmNWFiNmFmMTBhNTczYzA1NDViYjRhYi4uOTEyNzQ3ZjQw
NmMyOTU5NDk5NzNiNWJiMTM0OWRiY2E2NzQxYzEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAK
IAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIK
KyNpbmNsdWRlICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKQEAg
LTkwOSw2ICs5MTAsMTcgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAgICBwYXJhbWV0ZXJz
LmlzTWVkaWFTb3VyY2UgPSB0cnVlOwogICAgIHBhcmFtZXRlcnMuY29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0ID0gV1RGTW92ZShjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQpOwogCisgICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpKSB7CisgICAgICAgIGF1
dG8mIHNldHRpbmdzID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnNldHRpbmdzKCk7Cisg
ICAgICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVt
ZW50cyhjb250ZW50VHlwZSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSwg
c2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0g
c2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICAgICAgcGFyYW1ldGVy
cy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gc2V0dGluZ3MuYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMg
PSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgICAgIHBhcmFtZXRl
cnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gc2V0dGluZ3MuYWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzKCk7CisgICAgfQorCiAgICAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOwog
CiAgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMmIzY2RlMzYwODI0NzFjMTFj
ODdmY2Y2MWNjODFjYzM2MGMzOWQ5MC4uZTA2OTI3MGRmNmI2ZDFlN2JmYmMzZTIwOTMyNzY3NmIy
ZDhhMzk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
b3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2Uv
U291cmNlQnVmZmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tM
aXN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlICJCdWZmZXJT
b3VyY2UuaCIKKyNpbmNsdWRlICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKQEAgLTM1NSw2ICszNTYsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU291cmNlQnVmZmVy
OjpjaGFuZ2VUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAvLyB0aGUgdHlwZXMgc3BlY2lm
aWVkIChjdXJyZW50bHkgb3IgcHJldmlvdXNseSkgb2YgU291cmNlQnVmZmVyIG9iamVjdHMgaW4g
dGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mCiAgICAgLy8gdGhlIHBhcmVudCBtZWRpYSBz
b3VyY2UsIHRoZW4gdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBleGNlcHRpb24gYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgogICAgIENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKHR5cGUpOworCisgICAg
YXV0byYgc2V0dGluZ3MgPSBkb2N1bWVudCgpLnNldHRpbmdzKCk7CisgICAgaWYgKCFjb250ZW50
VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKGNvbnRlbnRUeXBlLCBz
ZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpLCBzZXR0aW5ncy5hbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCkpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IgfTsKKwogICAgIGlmICghbV9wcml2YXRlLT5jYW5Td2l0Y2hUb1R5cGUoY29udGVudFR5
cGUpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIApA
QCAtNzg2LDYgKzc5MiwyNSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoSW5pdGlhbGl6YQogICAgICAgICAvLyA1
LjEgSWYgdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgY29udGFpbnMgdHJhY2tzIHdpdGggY29k
ZWNzIHRoZSB1c2VyIGFnZW50IGRvZXMgbm90IHN1cHBvcnQsCiAgICAgICAgIC8vIHRoZW4gcnVu
IHRoZSBhcHBlbmQgZXJyb3IgYWxnb3JpdGhtIHdpdGggdGhlIGRlY29kZSBlcnJvciBwYXJhbWV0
ZXIgc2V0IHRvIHRydWUgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgICAgICAvLyBOT1RFOiBU
aGlzIGNoZWNrIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgU291cmNlQnVmZmVyUHJpdmF0
ZS4KKyAgICAgICAgaWYgKGF1dG8mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBkb2N1bWVu
dCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpKSB7CisgICAgICAgICAg
ICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNrcykgeworICAg
ICAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbiAmJiBhbGxvd2VkTWVk
aWFBdWRpb0NvZGVjSURzLT5jb250YWlucyhGb3VyQ0M6OmZyb21TdHJpbmcoYXVkaW9UcmFja0lu
Zm8uZGVzY3JpcHRpb24tPmNvZGVjKCkpKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICAgICAgYXBwZW5kRXJyb3IodHJ1ZSk7CisgICAgICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkpIHsK
KyAgICAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50LnZpZGVvVHJh
Y2tzKSB7CisgICAgICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tJbmZvLmRlc2NyaXB0aW9uICYm
IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMtPmNvbnRhaW5zKEZvdXJDQzo6ZnJvbVN0cmluZyh2
aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbi0+Y29kZWMoKSkpKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhcHBlbmRFcnJvcih0cnVlKTsKKyAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIC8vIDUuMiBGb3IgZWFjaCBhdWRpbyB0
cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2luZyBzdGVwczoK
ICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5mbyA6IHNlZ21lbnQuYXVkaW9UcmFja3Mp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsuaAppbmRleCBhOTdhODc2MWU5NjQ4MTA4MTcyMWJlYzUyN2MwMTBiZTQ1M2ZkMzk3Li45
NzcyMTU4ZmE5YTU0NmI0Njc1NzkyN2EwMzFjMjhkMTBiZGE0MjA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC0xMjcs
NiArMTI3LDE0IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0
aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVk1lZGlhVHlwZUF1
ZGlvIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk1lZGlhVHlwZUF1ZGlvKCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZU1ldGFkYXRh
LCBOU1N0cmluZyAqKQogI2RlZmluZSBBVk1lZGlhVHlwZU1ldGFkYXRhIFBBTDo6Z2V0X0FWRm91
bmRhdGlvbl9BVk1lZGlhVHlwZU1ldGFkYXRhKCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNh
dGVnb3JpZXNLZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxvd2FibGVUeXBl
Q2F0ZWdvcmllc0tleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZVR5
cGVDYXRlZ29yaWVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2RlY1R5cGVzS2V5
LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2RlY1R5cGVz
S2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2RlY1R5
cGVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5LCBOU1N0cmlu
ZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5IFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5KCkK
K1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXksIE5TU3RyaW5nICopCisjZGVm
aW5lIEFWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSBQQUw6OmdldF9BVkZvdW5k
YXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5KCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0SW5oZXJpdFVS
SVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5LCBOU1N0cmluZyAqKQogI2RlZmlu
ZSBBVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5
IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50
RnJvbVJlZmVyZW5jaW5nVVJJS2V5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBB
TCwgQVZGb3VuZGF0aW9uLCBBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1vZGVDbGVhbkFw
ZXJ0dXJlLCBOU1N0cmluZyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggYmQ2ZWJiY2I5OTEzZGE4YzEyYThiOTZh
YTJiZTEyOGYwODE5Mzc3ZC4uNmRiOTI1YmFmM2U1MmUyZDJkYzFkYTg3ODU5YmZlZjg5NTQ4MDMw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25T
b2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLm1tCkBAIC0xODIsNiArMTgyLDEwIEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlv
CiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRh
dGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2NvbFZlcnNpb25z
S2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VS
Q0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbkNvbnRlbnRQ
cm90ZWN0aW9uU2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBOU1N0cmluZyAq
LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtaW5nS2V5RGVsaXZlcnlDb250ZW50S2V5VHlwZSwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1Jf
U09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxl
VHlwZUNhdGVnb3JpZXNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwg
QVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VY
UE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2Fi
bGVDYXB0aW9uRm9ybWF0c0tleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19D
T05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFz
c2V0Q2FjaGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRf
Rk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEluaGVy
aXRVUklRdWVyeUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSwgTlNTdHJpbmcgKiwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tzS2V5LCBOU1N0
cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBiZGMzZDZhZjM3NjUwMGJhZDhl
ZDllODIxNGQzYzRmZWNlNjIyOGVlLi42MDIxZGVkODE0MDcxZTRjMmQ3OGI4YWM3ODM1YWI1YWVk
NDIyMzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAwMyw2ICsyMDAzLDcgQEAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFj
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGVu
dFR5cGVVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rlc3RpbmF0aW9uQ29sb3JTcGFjZS5jcHAKIHBs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MWY4YTUxMDRi
NmIyOTU2ZjJiZjFkMjZjNTFkODczM2VkMjU4Y2Q5Li4wMTk1ZTBlMDY4MDdjMTdlN2Q5YWU3Nzgy
ZmQwNTkxMWFjZTJhMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTYyLDYgKzQ1NjIsNyBAQAogCQlDREFCNkQyRTE3Qzgx
NEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMkMxN0M4MTRFRTAwQzYwQjM0IC8qIEpT
TWVkaWFDb250cm9sc0hvc3QuaCAqLzsgfTsKIAkJQ0RBQjZEMzExN0M5MjU5NTAwQzYwQjM0IC8q
IFVzZXJBZ2VudFNjcmlwdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQUI2RDJGMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2VyQWdlbnRTY3JpcHRzLmgg
Ki87IH07CiAJCUNEQUMwNjgzMjRDNkE5NUEwMDJGNzI3RiAvKiBWUDlVdGlsaXRpZXNDb2NvYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q2RkU1Qjcy
NEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RBRDFBNUEyN0FGQzI3QzAwNjk5Mjg1
IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREFEMUE1NzI3QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVV
dGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlDREI2MzU0OTIzRjYwMjNBMDBDMEY5REUgLyogV2ViQVZQbGF5ZXJDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREEyOUEyQzFD
QkY3M0ZDMDA5MDFDQ0YgLyogV2ViQVZQbGF5ZXJDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RCNzA0NUExRjc0NjVBMTAwMzky
M0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDREI3MDQ1ODFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBs
YXlTdHJlYW1pbmcuaCAqLzsgfTsKIAkJQ0RCNzA0NUIxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZh
aXJQbGF5U3RyZWFtaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEQjcwNDU5MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVhbWlu
Zy5jcHAgKi87IH07CkBAIC0xNjE1Niw2ICsxNjE1Nyw4IEBACiAJCUNEQUI2RDJDMTdDODE0RUUw
MEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTTWVkaWFDb250cm9sc0hvc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0RBQjZEMkYxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNlckFnZW50U2NyaXB0cy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTY3JpcHRzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUNEQUI2RDMwMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2Vy
QWdlbnRTY3JpcHRzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBVc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1VzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRUeXBlVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEQUQxQTU4MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0
aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50VHlwZVV0aWxpdGllcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUU4QzA3MTc0NkI5NTcwMDUzMkQ3OCAv
KiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBRThDMDgxNzQ2Qjk1NzAwNTMyRDc4IC8qIFBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RCNzA0NTgxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENETUZhaXJQbGF5U3RyZWFtaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yODg0NSw2ICsyODg0OCw4IEBACiAJCQkJQzJGNEU3ODkxRTQ1QUVERjAwNkQ3
MTA1IC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oICovLAogCQkJCTFDODRCRTQxMjZEMzkzOUYw
MDJENjFGQyAvKiBDb21wb3NlZENoYXJhY3RlckNsdXN0ZXJUZXh0SXRlcmF0b3IuaCAqLywKIAkJ
CQk3MkJBQzNBNzIzRTE3MzI4MDA4RDc0MUMgLyogQ29uY3JldGVJbWFnZUJ1ZmZlci5oICovLAor
CQkJCUNEQUQxQTU4MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5jcHAg
Ki8sCisJCQkJQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVz
LmggKi8sCiAJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVyYXRl
ZEltYWdlLmNwcCAqLywKIAkJCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRl
R2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlBOENCNDEwMjBFODVCOEE1MDAzMkM0RjAgLyogRGFz
aEFycmF5LmggKi8sCkBAIC0zMzg3NCw2ICszMzg3OSw3IEBACiAJCQkJQ0U3OTlGOTgxQzZBNDZC
QzAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNFNzk5RkFDMUM2QTUwNjYwMDk3QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xp
Y3lTb3VyY2VMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQwMTVDQTBGNEI1
QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUNEQUQxQTVB
MjdBRkMyN0MwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc2MjdCOEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0EgLyogQ29u
dGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY1MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhcHRpb25zLmNz
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wM2U4NzY5ZDU0MDc4ZGQ1YjE2ZjFhOTI1ZGEyNTViODgxNzk1YmJkCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhcHRpb25zLmNzcwpAQCAtMCww
ICsxLDI4IEBACit2aWRlbzo6Y3VlKCopIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAs
IDAsIDAsIDAuOCk7Cit9CisKK3ZpZGVvOjpjdWUoOmZ1dHVyZSkgPiAqIHsKKyAgICBjb2xvcjog
Z3JheTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNwbGF5IHsKKyAg
ICBmb250OiAyMnB4IHNhbnMtc2VyaWY7IC8qIEtlZXAgaW4gc3luYyB3aXRoIGBERUZBVUxUQ0FQ
VElPTkZPTlRTSVpFYC4gKi8KK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1j
b250YWluZXIgYiB7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK3ZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHUgeworICAgIHRleHQtZGVjb3JhdGlvbjogdW5k
ZXJsaW5lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNvbnRhaW5lciBp
IHsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRl
eHQtdHJhY2stcmVnaW9uIHsKKyAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7Cisg
ICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlNWZhMmNjN2MxMmM5NjJkZjQ3OGFkZWIzYmUyODgx
Yzc4Yjk2ZjA4Li43MjVjNTIwYTJlYjE2YTczMmFkYmRmZDBkYThlMTA5ZTdjZTQ1NWNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEwODksNiArMTA4OSwx
MiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSkgY29uc3QKICAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZShtaW1lVHlwZSk7CiAg
ICAgcGFyYW1ldGVycy50eXBlID0gY29udGVudFR5cGU7CiAgICAgcGFyYW1ldGVycy5jb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCgpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMgPSBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxs
b3dlZE1lZGlhQ29kZWNUeXBlcyA9IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsKKyAgICBwYXJh
bWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gYWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzID0gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7CisKICAgICBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnQgPSBNZWRpYVBsYXllcjo6c3VwcG9ydHNU
eXBlKHBhcmFtZXRlcnMpOwogICAgIFN0cmluZyBjYW5QbGF5OwogCkBAIC03NDA3LDYgKzc0MTMs
MzEgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdh
cmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorY29uc3Qgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3RyaW5nPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUNvbnRh
aW5lclR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIEhU
TUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdAoreworICAg
IHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygp
OworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRNTE1lZGlhRWxl
bWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7Cit9CisKK2Nv
bnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVu
dCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7Cit9CisKIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2Vk
KCkKIHsKICAgICBpZiAoIW1fdGV4dFRyYWNrcyB8fCBtX2J1ZmZlcmVkVGltZVJhbmdlc0NoYW5n
ZWRUYXNrQ2FuY2VsbGF0aW9uR3JvdXAuaGFzUGVuZGluZ1Rhc2soKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYjVmZTEzODUzYzY5NDI3ODM3ZWYzZjkxZDJiZDI2
MWMxOTNkYzRiYi4uODllNmE2MjY4YmY2ZDYxYzVlMzczZjI5YTg0OTZiMWQ2NzczYmFkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTc3MCw2ICs3NzAsMTIgQEAg
cHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkRGlzYWJsZVNsZWVwKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gc2hvdWxkRGlzYWJsZVNsZWVwKCkgPT0gU2xlZXBUeXBlOjpEaXNwbGF5
OyB9CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29u
c3QgZmluYWw7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBj
b25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxs
b3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgZmlu
YWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QgZmlu
YWw7CisKICAgICB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpIGZp
bmFsOwogCiAjaWYgVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3NCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNw
cAppbmRleCA3ZjU0ZDg3NjhjYzJmYTM2NGU1NDQxY2U4ZDQwZGE4NTYwNzljNmZiLi5jZTczMmIx
MmE5YzU1MmE5YjQyZmU2YmQxY2RhZTdjMGE5M2U3MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5nc0Jhc2UuY3BwCkBAIC0xOTksNyArMTk5LDgxIEBAIHZvaWQgU2V0dGluZ3NCYXNlOjpzZXRN
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChjb25zdCBWZWN0b3I8Q29u
CiAgICAgbV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IGNvbnRl
bnRUeXBlczsKIH0KIAordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7
CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBuZXdUeXBlczsKKyAg
ICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykpCisgICAgICAg
IG5ld1R5cGVzLmFwcGVuZCh0eXBlLnRvU3RyaW5nKCkpOworCisgICAgbV9hbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNldHRpbmdzQmFz
ZTo6c2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAg
IGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRpYUNvZGVjVHlwZXMg
PSBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3Ry
aW5nPiBuZXdUeXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNw
bGl0KCcsJykpCisgICAgICAgIG5ld1R5cGVzLmFwcGVuZCh0eXBlLnRvU3RyaW5nKCkpOworCisg
ICAgbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7Cit9CisKK3Zv
aWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKGNvbnN0IFN0cmlu
ZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFZlY3RvcjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDog
U3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0Mg
PSBGb3VyQ0M6OmZyb21TdHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQo
V1RGTW92ZSgqZm91ckNDKSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzID0gV1RGTW92ZShuZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5
cGVzLmlzTnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IHN0
ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxGb3VyQ0M+
IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQo
JywnKSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0MgPSBGb3VyQ0M6OmZyb21TdHJpbmcodHlw
ZSkpCisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQoV1RGTW92ZSgqZm91ckNDKSk7CisgICAg
fQogCisgICAgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gV1RGTW92ZShuZXdUeXBlcyk7
Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlw
ZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAg
ICAgICAgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBzdGQ6Om51bGxvcHQ7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8Rm91ckNDPiBuZXdUeXBlczsKKyAg
ICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykpIHsKKyAgICAg
ICAgaWYgKGF1dG8gZm91ckNDID0gRm91ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQorICAgICAgICAg
ICAgbmV3VHlwZXMuYXBwZW5kKFdURk1vdmUoKmZvdXJDQykpOworICAgIH0KKworICAgIG1fYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7Cit9CiAKIC8v
IE1BUksgLSBvbkNoYW5nZSBoYW5kbGVycwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaApp
bmRleCA0MGRkYjhhN2Y3YWY4NDVkNGI2NWU2MzBmYjdhYjJlNjU0YmExYzkyLi5lMzYxMGEyNWZi
MzM5ZTAzYWNjNjNiZTE0ZjAwNjMyODA4YzBjZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NC
YXNlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGb250TG9hZFRpbWluZ092ZXJyaWRl
LmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJGb3JjZWRBY2Nl
c3NpYmlsaXR5VmFsdWUuaCIKKyNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJGcmFtZUZs
YXR0ZW5pbmcuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIgog
I2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIKQEAgLTEwOCw2ICsxMDksMjYgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoY29uc3QgU3RyaW5nJik7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRU
eXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7
IHJldHVybiBtX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OyB9CiAK
KyAgICB2b2lkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IFdU
Rk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdCB7IHJldHVy
biBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOyB9CisKKyAgICB2b2lkIHNldEFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiB0eXBlcykgeyBt
X2FsbG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAg
ICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNU
eXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsgfQorCisgICAg
dm9pZCBzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gV1RGTW92ZSh0
eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91
ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcyhzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYmIHR5cGVzKSB7IG1fYWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmluZyYpOworICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOyB9CisK
KyAgICB2b2lkIHNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxGb3VyQ0M+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5
cGVzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7IH0KKwog
cHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFNldHRpbmdzQmFzZShQYWdlKik7CiAgICAgdmlydHVh
bCB+U2V0dGluZ3NCYXNlKCk7CkBAIC0xNTAsNiArMTcxLDExIEBAIHByb3RlY3RlZDoKICAgICBU
aW1lciBtX3NldEltYWdlTG9hZGluZ1NldHRpbmdzVGltZXI7CiAKICAgICBWZWN0b3I8Q29udGVu
dFR5cGU+IG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gbV9hbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
czsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBtX2FsbG93ZWRNZWRpYUNvZGVj
VHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBt
X2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsKIAogI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBmbG9hdCBib29zdGVkT25lTGluZVRl
eHRNdWx0aXBsaWVyQ29lZmZpY2llbnQgPSAyLjIzMTI1ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45NGQ3NTUyODE2MTdiMGFjODhiNzQwZmRjMGU3NjM5ZTViNWZmYzgzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGVudFR5cGVV
dGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGVVdGlsaXRpZXMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCisjaW5jbHVkZSAiRm91ckNDLmgiCisjaW5jbHVkZSA8d3RmL0FsZ29yaXRobXMu
aD4KKworYm9vbCBjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1l
bnRzKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKQoreworICAgIGlmIChhbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcyAmJiAhYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMtPmNv
bnRhaW5zKHR5cGUuY29udGFpbmVyVHlwZSgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKCFhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIHJldHVybiBhbGxPZih0eXBlLmNvZGVjcygpLCBbJl0gKGF1dG8mIGNvZGVjKSB7CisgICAg
ICAgIHJldHVybiBhbnlPZigqYWxsb3dlZE1lZGlhQ29kZWNUeXBlcywgWyZdIChhdXRvJiBhbGxv
d2VkQ29kZWMpIHsKKyAgICAgICAgICAgIHJldHVybiBjb2RlYy5zdGFydHNXaXRoKGFsbG93ZWRD
b2RlYyk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45OWM0ZDJiOWE0ZTliZWEyZjJjYzZhYzdmMzBkMzRiNGI4MTg1YTZkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGVudFR5cGVVdGls
aXRpZXMuaApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZvdXJDQzsKKworV0VCQ09SRV9FWFBPUlQgYm9vbCBj
b250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKGNvbnN0IENv
bnRlbnRUeXBlJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYg
YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm91ckNDLmgKaW5kZXggMjRlMjU1ZGY0NGZiMWY3ODcxNGM1OGU5OTk5MTAxMjZkNDY5
YzBhYi4uYjM3ZDA1MGU5YzBjMzY3NzA3ZGFlMGI2YWNjYjFiYzM3ZjhlYWMxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKQEAgLTM3LDYgKzM3LDE4IEBAIHN0
cnVjdCBGb3VyQ0MgewogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZvdXJDQz4gZnJvbVN0cmlu
ZyhTdHJpbmdWaWV3KTsKIAogICAgIHVpbnQzMl90IHZhbHVlIHsgMCB9OworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KKyAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgZW5jb2RlciA8PCB2YWx1ZTsKKyAgICB9CisKKyAgICB0ZW1wbGF0
ZSA8Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIEZvdXJDQyYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAg
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnZhbHVlKTsKKyAgICB9CiB9
OwogCiBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj09KEZvdXJDQywgRm91ckNDKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCA1MWE5
YjNhMzU0ZjExOWJlMjlmNzQxMWE5MzQ1Nzg0OTlhNmRhNzZkLi41NWY5N2MxYWE5MGZhZmQwN2Qz
ZWI5M2QxNjUwMmYwY2I2YThlOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJD
b250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkludFJlY3QuaCIKICNpbmNsdWRlICJMZWdhY3lDRE1TZXNzaW9uLmgiCkBAIC0xNzYsNiArMTc3
LDE4IEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBudWxsQ29u
dGVudFR5cGVWZWN0b3IoKQogICAgIHJldHVybiB2ZWN0b3I7CiB9CiAKK3N0YXRpYyBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgbnVsbE9wdGlvbmFsU3RyaW5nVmVjdG9yKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5n
Pj4+IHZlY3RvcjsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCitzdGF0aWMgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+PiB2
ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKwogY2xhc3MgTnVsbE1lZGlhUGxheWVyQ2xp
ZW50IDogcHVibGljIE1lZGlhUGxheWVyQ2xpZW50IHsKIHByaXZhdGU6CiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECkBAIC0xOTcsNiArMjEwLDEyIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKExF
R0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBtZWRpYVBsYXll
ckNhY2hlZEtleUZvcktleUlkKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51
bGxwdHI7IH0KICNlbmRpZgorCisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5n
Pj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVs
bE9wdGlvbmFsU3RyaW5nVmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG51bGxPcHRpb25hbFN0cmluZ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbnVsbE9wdGlvbmFsRm91ckNDVmVjdG9yKCk7IH0KKyAgICBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5
cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbE9wdGlvbmFsRm91ckNDVmVjdG9yKCk7IH0K
IH07CiAKIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIE1lZGlhUGxheWVyQ2xpZW50OjptZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0CkBAIC01MjksNiAr
NTQ4LDExIEBAIGNvbnN0IE1lZGlhUGxheWVyRmFjdG9yeSogTWVkaWFQbGF5ZXI6Om5leHRCZXN0
TWVkaWFFbmdpbmUoY29uc3QgTWVkaWFQbGF5ZXJGYWN0CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBwYXJhbWV0ZXJzLmlzTWVkaWFTdHJlYW0gPSAhIW1fbWVkaWFTdHJlYW07CiAjZW5k
aWYKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gYWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlw
ZXMgPSBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzID0gYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpOworICAgIHBhcmFt
ZXRlcnMuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IGFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOwogCiAgICAgaWYgKG1fYWN0aXZlRW5naW5l
SWRlbnRpZmllcikgewogICAgICAgICBpZiAoY3VycmVudCkKQEAgLTE2NTcsNiArMTY4MSwzMSBA
QCBib29sIE1lZGlhUGxheWVyOjpzaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0CiAg
ICAgcmV0dXJuIGNsaWVudCgpLm1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQo
KTsKIH0KIAorY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIE1lZGlhUGxheWVy
OjphbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVu
dCgpLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsK
K30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIE1lZGlhUGxheWVyOjph
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xpZW50KCku
YWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBj
b25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7
Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRpYVBsYXllcjo6
YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xp
ZW50KCkuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7Cit9CisKIHZvaWQgTWVkaWFQ
bGF5ZXI6OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZSgpCiB7CiAgICAgbV9wcml2YXRlLT5h
cHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IGViYmFkMTZhNjVhYjUzZWFmZmNmYTI2Mjc2
YjgyYzlmNmE3ZDY1ZWIuLjI1YzI0ODJmZjc2NjQ1YzhlY2Y4MTU4NGY0YWJhMjU3Zjc5NTBiMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNsdWRlICJD
b29raWUuaCIKKyNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzR0wu
aCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJFbnVtcy5o
IgpAQCAtOTcsNiArOTgsMTEgQEAgc3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMg
ewogICAgIGJvb2wgaXNNZWRpYVNvdXJjZSB7IGZhbHNlIH07CiAgICAgYm9vbCBpc01lZGlhU3Ry
ZWFtIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29udGVudFR5cGU+IGNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBh
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJp
bmc+PiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8Rm91ckNDPj4gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxGb3VyQ0M+PiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CiAKICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CkBAIC0xMDYsMzcgKzExMiwyNiBAQCBzdHJ1Y3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFy
YW1ldGVycyB7CiAgICAgICAgIGVuY29kZXIgPDwgaXNNZWRpYVNvdXJjZTsKICAgICAgICAgZW5j
b2RlciA8PCBpc01lZGlhU3RyZWFtOwogICAgICAgICBlbmNvZGVyIDw8IGNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDb2RlY1R5cGVz
OworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7CisgICAgICAg
IGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsKKyAgICAgICAgZW5jb2RlciA8
PCBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CiAgICAgfQogCiAgICAgdGVtcGxhdGUg
PGNsYXNzIERlY29kZXI+Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWVkaWFFbmdpbmVTdXBw
b3J0UGFyYW1ldGVycz4gZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPENvbnRlbnRUeXBlPiB0eXBl
OwotICAgICAgICBkZWNvZGVyID4+IHR5cGU7Ci0gICAgICAgIGlmICghdHlwZSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxVUkw+IHVy
bDsKLSAgICAgICAgZGVjb2RlciA+PiB1cmw7Ci0gICAgICAgIGlmICghdXJsKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlz
TWVkaWFTb3VyY2U7Ci0gICAgICAgIGRlY29kZXIgPj4gaXNNZWRpYVNvdXJjZTsKLSAgICAgICAg
aWYgKCFpc01lZGlhU291cmNlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzTWVkaWFTdHJlYW07Ci0gICAgICAgIGRlY29k
ZXIgPj4gaXNNZWRpYVN0cmVhbTsKLSAgICAgICAgaWYgKCFpc01lZGlhU3RyZWFtKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxDb250ZW50VHlwZT4+IHR5cGVzUmVxdWlyaW5nSGFyZHdhcmU7Ci0gICAgICAgIGRlY29kZXIg
Pj4gdHlwZXNSZXF1aXJpbmdIYXJkd2FyZTsKLSAgICAgICAgaWYgKCF0eXBlc1JlcXVpcmluZ0hh
cmR3YXJlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICByZXR1
cm4ge3sgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKnVybCksICppc01lZGlhU291cmNlLCAqaXNN
ZWRpYVN0cmVhbSwgKnR5cGVzUmVxdWlyaW5nSGFyZHdhcmUgfX07CisgICAgICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnR5cGUpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLnVybCkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuaXNNZWRpYVNvdXJjZSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuaXNNZWRpYVN0cmVhbSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcykK
KyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcykKKyAgICAgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKTsKICAgICB9
CiB9OwogCkBAIC0yNzUsNiArMjcwLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IFZl
Y3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNr
SGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwg
Y29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0
b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QgPSAwOwor
ICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBt
ZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbWVkaWFQbGF5ZXJTZWVrYWJsZVRpbWVSYW5nZXNDaGFuZ2VkKCkgeyB9CiAKQEAgLTYzNCw2
ICs2MzUsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlh
Q29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3Q7CiAgICAgYm9vbCBz
aG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogCisgICAgY29uc3Qgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3Q7
CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+
PiYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0OworICAgIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3Q7
CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNh
cHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0OworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAg
ICAgY29uc3QgTG9nZ2VyJiBtZWRpYVBsYXllckxvZ2dlcigpOwogICAgIGNvbnN0IHZvaWQqIG1l
ZGlhUGxheWVyTG9nSWRlbnRpZmllcigpIHsgcmV0dXJuIGNsaWVudCgpLm1lZGlhUGxheWVyTG9n
SWRlbnRpZmllcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggNjI2N2I4MzMyMTI5OWIxM2VhN2VkMmE0MDVlNGNiYjg1
ZTQ0ODgzYi4uZjRiMzVkNzY5ZDcyNzk3YTJmYWQ0NWViNzgyYmRkMjVjOTI2Y2RiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApA
QCAtMzI5LDYgKzMyOSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHNldE5lZWRzUmVuZGVyaW5n
TW9kZUNoYW5nZWQoKTsKICAgICB2b2lkIHJlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiAKKyAgICBi
b29sIGxvYWRpbmdNZXRhZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGluZ01ldGFkYXRhOyB9
CisKIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKaW5kZXggYWFjZDczN2I5NjM1OGMwZjUzY2UzNzdhNTk2NTQwNTZhOWNiMjBjYy4uZjRi
NzRjMTFhMmZkMjI1OTBhOTIxNmE0ZDkxNDM1MTlhMGUyMDczYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaApAQCAtMzUwLDYgKzM1MCw5IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxWaWRl
b0ZyYW1lTWV0YWRhdGE+IHZpZGVvRnJhbWVNZXRhZGF0YSgpIGZpbmFsIHsgcmV0dXJuIHN0ZDo6
ZXhjaGFuZ2UobV92aWRlb0ZyYW1lTWV0YWRhdGEsIHsgfSk7IH0KICAgICB2b2lkIGNoZWNrTmV3
VmlkZW9GcmFtZU1ldGFkYXRhKCk7CiAKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGFsbFRyYWNr
c0FyZVBsYXlhYmxlKCkgY29uc3Q7CisgICAgYm9vbCB0cmFja0lzUGxheWFibGUoQVZBc3NldFRy
YWNrKikgY29uc3Q7CisKICAgICBSZXRhaW5QdHI8QVZVUkxBc3NldD4gbV9hdkFzc2V0OwogICAg
IFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXllcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJ
dGVtPiBtX2F2UGxheWVySXRlbTsKQEAgLTQ0Nyw3ICs0NTAsOSBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9jYWNoZWRDYW5QbGF5RmFzdEZvcndhcmQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9jYWNo
ZWRDYW5QbGF5RmFzdFJldmVyc2UgeyBmYWxzZSB9OwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hl
ZEFzc2V0SXNMb2FkZWQgeyBmYWxzZSB9OworICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZFRyYWNr
c0FyZUxvYWRlZCB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1f
Y2FjaGVkQXNzZXRJc1BsYXlhYmxlOworICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxib29sPiBt
X2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxlOwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Nob3VsZE9ic2VydmVUaW1lQ29udHJvbFN0YXR1cyB7IGZhbHNlIH07CiAgICAg
bXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fdHJhY2tzQXJlUGxheWFibGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQppbmRleCA3YWI4OTExZjA0ZThmN2VmMjQ1MTA4Yjc1NzA3OTQ1NjdlNGVj
M2VmLi43NjQ4YmRiODU1NDVmNzA5OWZhZTY1ODY0MjkyYTE1MTcwMzdkZjI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KQEAgLTM4LDEwICszOCwxMiBAQAogI2ltcG9ydCAiQ0RNU2Vzc2lvbkFW
Rm91bmRhdGlvbk9iakMuaCIKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJDb2xv
clNwYWNlQ0cuaCIKKyNpbXBvcnQgIkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJD
b29raWUuaCIKICNpbXBvcnQgIkRlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oIgogI2ltcG9ydCAi
RXh0ZW5zaW9uc0dMLmgiCiAjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbXBvcnQgIkZv
dXJDQy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJJbWFnZVJvdGF0
aW9uU2Vzc2lvblZULmgiCiAjaW1wb3J0ICJJbmJhbmRDaGFwdGVyVHJhY2tQcml2YXRlQVZGT2Jq
Qy5oIgpAQCAtNjYsNiArNjgsNyBAQAogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCiAjaW1wb3J0
ICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgiCiAjaW1wb3J0ICJUZXh0VHJhY2tSZXByZXNlbnRh
dGlvbi5oIgorI2ltcG9ydCAiVVRJVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJWaWRlb0xheWVyTWFu
YWdlck9iakMuaCIKICNpbXBvcnQgIlZpZGVvVHJhY2tQcml2YXRlQVZGT2JqQy5oIgogI2ltcG9y
dCAiV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLmgiCkBAIC05NDgsNiArOTUxLDM4IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTChj
b25zdCBVUkwmIHVybCwgUmV0CiAgICAgICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6QE5PIGZv
cktleTpBVlVSTEFzc2V0VXNlc05vUGVyc2lzdGVudENhY2hlS2V5XTsKICAgICB9CiAKKyAgICBh
dXRvIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKCk7CisgICAgaWYgKGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzICYmIFBB
TDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVz
S2V5KCkpIHsKKyAgICAgICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5
IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OihOU1N0cmluZyAq
KVVUSUZyb21NSU1FVHlwZSh0eXBlKV07CisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpuc1R5
cGVzLmdldCgpIGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXldOwor
ICAgIH0KKworICAgIGF1dG8gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IHBsYXllcigpLT5h
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgaWYgKGFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQXVk
aW9Db2RlY1R5cGVzS2V5KCkpIHsKKyAgICAgICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05T
TXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6
QCh0eXBlLnZhbHVlKV07CisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpuc1R5cGVzLmdldCgp
IGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2RlY1R5cGVzS2V5XTsKKyAgICB9CisK
KyAgICBhdXRvIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcygpOworICAgIGlmIChhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzICYm
IFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNU
eXBlc0tleSgpKSB7CisgICAgICAgIGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlwZS52
YWx1ZSldOworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6
QVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleV07CisgICAgfQorCisgICAgYXV0
byBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzKCk7CisgICAgaWYgKGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRU
eXBlcyAmJiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVDYXB0
aW9uRm9ybWF0c0tleSgpKSB7CisgICAgICAgIGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011
dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMpCisgICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmpl
Y3Q6QCh0eXBlLnZhbHVlKV07CisgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpuc1R5cGVzLmdl
dCgpIGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXldOworICAgIH0K
KwogICAgIGlmICh3aWxsVXNlV2ViTUZvcm1hdFJlYWRlcikKICAgICAgICAgcmVnaXN0ZXJGb3Jt
YXRSZWFkZXJJZk5lY2Vzc2FyeSgpOwogCkBAIC0xNzg5LDYgKzE4MjQsNzYgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRBc3NldChSZXRhaW5QdHI8aWQ+JiYg
YXNzZXQpCiAgICAgcHJvY2Vzc0NoYXB0ZXJUcmFja3MoKTsKIH0KIAorc3RkOjpvcHRpb25hbDxi
b29sPiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphbGxUcmFja3NBcmVQbGF5
YWJsZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fYXZQbGF5ZXJJdGVtKSB7CisgICAgICAgIGZvciAo
QVZQbGF5ZXJJdGVtVHJhY2sgKnRyYWNrIGluIFttX2F2UGxheWVySXRlbSB0cmFja3NdKSB7Cisg
ICAgICAgICAgICBpZiAoIXRyYWNrSXNQbGF5YWJsZSh0cmFjay5hc3NldFRyYWNrKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBpZiAoIW1fYXZBc3NldCB8fCBbbV9hdkFzc2V0IHN0YXR1c09mVmFs
dWVGb3JLZXk6QCJ0cmFja3MiIGVycm9yOk5VTExdICE9IEFWS2V5VmFsdWVTdGF0dXNMb2FkZWQp
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBmb3IgKEFWQXNzZXRUcmFjayAq
YXNzZXRUcmFjayA6IFttX2F2QXNzZXQgdHJhY2tzXSkgeworICAgICAgICBpZiAoIXRyYWNrSXNQ
bGF5YWJsZShhc3NldFRyYWNrKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6dHJhY2tJc1BsYXlhYmxlKEFWQXNzZXRUcmFjayogdHJhY2spIGNvbnN0Cit7CisgICAg
aWYgKHBsYXllcigpLT5zaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpICYmICFhc3NldFRyYWNr
TWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyh0cmFjaywgcGxheWVyKCktPm1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBhdXRvIGRlc2NyaXB0aW9uID0gcmV0YWluUHRyKChfX2JyaWRnZSBDTUZvcm1h
dERlc2NyaXB0aW9uUmVmKXRyYWNrLmZvcm1hdERlc2NyaXB0aW9ucy5maXJzdE9iamVjdCk7Cisg
ICAgaWYgKCFkZXNjcmlwdGlvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBj
b2RlY1R5cGUgPSBGb3VyQ0MgeyBQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1YlR5
cGUoZGVzY3JpcHRpb24uZ2V0KCkpIH07CisgICAgc3dpdGNoIChQQUw6OkNNRm9ybWF0RGVzY3Jp
cHRpb25HZXRNZWRpYVR5cGUoZGVzY3JpcHRpb24uZ2V0KCkpKSB7CisgICAgY2FzZSBrQ01NZWRp
YVR5cGVfVmlkZW86IHsKKyAgICAgICAgYXV0byYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9
IHBsYXllcigpLT5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgICAgIGlmIChhbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzICYmICFhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzLT5jb250
YWlucyhjb2RlY1R5cGUpKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwg
IlZpZGVvIHRyYWNrIHdpdGggY29kZWMgdHlwZSAnIiwgY29kZWNUeXBlLCAiJyBub3QgY29udGFp
bmVkIGluIGFsbG93ZWQgY29kZWMgbGlzdDsgYmxvY2tpbmciKTsKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2Fz
ZSBrQ01NZWRpYVR5cGVfQXVkaW86IHsKKyAgICAgICAgYXV0byYgYWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgICAg
IGlmIChhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzICYmICFhbGxvd2VkTWVkaWFBdWRpb0NvZGVj
SURzLT5jb250YWlucyhjb2RlY1R5cGUpKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9HSURF
TlRJRklFUiwgIkF1ZGlvIHRyYWNrIHdpdGggY29kZWMgdHlwZSAnIiwgY29kZWNUeXBlLCAiJyBu
b3QgY29udGFpbmVkIGluIGFsbG93ZWQgY29kZWMgbGlzdDsgYmxvY2tpbmciKTsKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfVGV4dDoKKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9DbG9z
ZWRDYXB0aW9uOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX1N1YnRpdGxlOiB7CisgICAgICAgIGF1
dG8mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVk
aWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcyAmJiAhYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzLT5jb250YWlucyhj
b2RlY1R5cGUpKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIlRleHQg
dHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5vdCBjb250YWluZWQgaW4g
YWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIGtDTU1l
ZGlhVHlwZV9NdXhlZDoKKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9UaW1lQ29kZToKKyAgICBjYXNl
IGtDTU1lZGlhVHlwZV9NZXRhZGF0YToKKyAgICAgICAgLy8gTm8tb3AKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgLy8gTm90ZTogdGhlIENNTWVkaWFUeXBlIGVudW0gbWF5IG5v
dCBiZSBleGNsdXNpdmUuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRTdGF0dXMoKSBjb25zdAogewog
ICAgIGlmICghbV9hdkFzc2V0KQpAQCAtMTgxNCwyMyArMTkxOSwyMSBAQCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3RhdHVzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OgogICAgICAgICBtX2NhY2hlZEFzc2V0SXNMb2FkZWQgPSB0cnVlOwogICAgIH0K
IAotICAgIGlmICghcGxheWVyKCktPnNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkpCi0gICAg
ICAgIG1fdHJhY2tzQXJlUGxheWFibGUgPSB0cnVlOworICAgIC8vIG1fbG9hZGluZ01ldGFkYXRh
IHdpbGwgYmUgZmFsc2UgdW50aWwgYWxsIHRyYWNrcycgcHJvcGVydGllcyBoYXZlIGZpbmlzaGVk
IGxvYWRpbmcuCisgICAgLy8gU2VlOiBiZWdpbkxvYWRpbmdNZXRhZGF0YSgpLgorICAgIGlmIChs
b2FkaW5nTWV0YWRhdGEoKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0YXR1
c0xvYWRpbmc7CiAKLSAgICBpZiAoIW1fdHJhY2tzQXJlUGxheWFibGUpIHsKLSAgICAgICAgbV90
cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7Ci0gICAgICAgIGZvciAoQVZBc3NldFRyYWNrICp0cmFj
ayBpbiBbbV9hdkFzc2V0IHRyYWNrc10pIHsKLSAgICAgICAgICAgIGlmICghYXNzZXRUcmFja01l
ZXRzSGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpKSkgewotICAgICAgICAgICAgICAgIG1f
dHJhY2tzQXJlUGxheWFibGUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQorICAgIGlmICghbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSkg
eworICAgICAgICBtX2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxlID0gYWxsVHJhY2tzQXJlUGxheWFi
bGUoKTsKKyAgICAgICAgaWYgKCFtX2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxlKQorICAgICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c0xvYWRpbmc7CiAgICAgfQogCiAgICAg
aWYgKCFtX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSkKICAgICAgICAgbV9jYWNoZWRBc3NldElzUGxh
eWFibGUgPSBbW21fYXZBc3NldCB2YWx1ZUZvcktleTpAInBsYXlhYmxlIl0gYm9vbFZhbHVlXTsK
IAotICAgIGlmICgqbV9jYWNoZWRBc3NldElzUGxheWFibGUgJiYgbV90cmFja3NBcmVQbGF5YWJs
ZS52YWx1ZSgpKQorICAgIGlmICgqbV9jYWNoZWRBc3NldElzUGxheWFibGUgJiYgKm1fY2FjaGVk
VHJhY2tzQXJlUGxheWFibGUpCiAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0
dXNQbGF5YWJsZTsKIAogICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkZWQ7
CkBAIC0xOTM1LDYgKzIwMzgsOSBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZAogICAgICAgICBy
ZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYK
IAorICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVt
ZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMsIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcykpCisgICAgICAgIHJldHVybiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKKwogICAgIGF1dG8gc3Vw
cG9ydGVkID0gQVZBc3NldE1JTUVUeXBlQ2FjaGU6OnNpbmdsZXRvbigpLmNhbkRlY29kZVR5cGUo
cGFyYW1ldGVycy50eXBlLnJhdygpKTsKICAgICBpZiAoc3VwcG9ydGVkICE9IE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGU6OklzU3VwcG9ydGVkKQogICAgICAgICByZXR1cm4gc3VwcG9ydGVkOwpA
QCAtMzc1Miw3ICszODU4LDcgQEAgTlNBcnJheSogaXRlbUtWT1Byb3BlcnRpZXMoKQogCiBOU0Fy
cmF5KiBhc3NldFRyYWNrTWV0YWRhdGFLZXlOYW1lcygpCiB7Ci0gICAgc3RhdGljIE5TQXJyYXkq
IGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAInRvdGFsU2FtcGxlRGF0
YUxlbmd0aCIsIEAibWVkaWFUeXBlIiwgQCJlbmFibGVkIiwgQCJwcmVmZXJyZWRUcmFuc2Zvcm0i
LCBAIm5hdHVyYWxTaXplIiwgbmlsXTsKKyAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtbTlNB
cnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOkAidG90YWxTYW1wbGVEYXRhTGVuZ3RoIiwgQCJt
ZWRpYVR5cGUiLCBAImVuYWJsZWQiLCBAInByZWZlcnJlZFRyYW5zZm9ybSIsIEAibmF0dXJhbFNp
emUiLCBAImZvcm1hdERlc2NyaXB0aW9ucyIsIG5pbF07CiAgICAgcmV0dXJuIGtleXM7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDVkYTkx
ZWUwZWFiNGZkZmY5MjFmYzY3ODdhYTIzNDRjZDFjZjRmMTguLjE0MmZhZjA2ZWRhNGYxOWRkNzRk
NjA4NDFkN2JlNDU4YzI4NzA4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcApAQCAtNTg4LDYgKzU4OCw0OCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBJbnRl
cm5hbFNldHRpbmdzOjpzZXREZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCBzYW1w
bAogICAgIHJldHVybiB7IH07CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGlu
Z3M6OnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7
CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXModHlwZXMpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoY29uc3QgU3RyaW5n
JiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25P
cjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKGNv
bnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCku
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyh0eXBlcyk7CisgICAgcmV0dXJuIHsgfTsKK30K
KworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9wYWdl
LT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHModHlwZXMpOworICAgIHJl
dHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldEFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAg
IGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yIH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcyh0eXBlcyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworCisKIC8vIElmIHlvdSBhZGQg
dG8gdGhpcyBjbGFzcywgbWFrZSBzdXJlIHlvdSBhcmUgbm90IGR1cGxpY2F0aW5nIGZ1bmN0aW9u
YWxpdHkgaW4gdGhlIGdlbmVyYXRlZAogLy8gYmFzZSBjbGFzcyBJbnRlcm5hbFNldHRpbmdzR2Vu
ZXJhdGVkIGFuZCB0aGF0IHlvdSB1cGRhdGUgdGhlIEJhY2t1cCBjbGFzcyBmb3IgdGVzdCByZXBy
b2R1Y2FiaWxpdHkuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgK
aW5kZXggZjFhN2UyMjExMjBlNzFhOTY5OTFiMzIzM2EzODU0MzAzMTg5ZDViMC4uZmI5NGNlN2Rk
YmVmM2JjNTViYjM3NjMxYWVkZTE2YzNlMTUyZTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTEyMiw2ICsxMjIsMTIgQEAgcHVibGljOgogICAgIC8v
IEF1ZGlvQ29udGV4dAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldERlZmF1bHRBdWRpb0NvbnRl
eHRTYW1wbGVSYXRlKGZsb2F0KTsKIAorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmKTsKKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0
cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcyhjb25zdCBTdHJpbmcmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5h
bFNldHRpbmdzKFBhZ2UqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwKaW5kZXggYmI2YjhmNTIxMTJkZDk5NGNjNmI3NzgzMjMxMTk4ZTU5MjhiZmMxZS4u
YmM0MDE5NTBhOTQ3Mjg2OTc4YzAwOGFmZWI2MWY0OTBmOGFkY2EyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC05NSw0ICs5NSwxMCBAQCBlbnVt
IFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3kgeyAiQ29udGVudCIsICJTeXN0ZW0iIH07CiAK
ICAgICAvLyBBdWRpb0NvbnRleHQKICAgICB1bmRlZmluZWQgc2V0RGVmYXVsdEF1ZGlvQ29udGV4
dFNhbXBsZVJhdGUoZmxvYXQgc2FtcGxlUmF0ZSk7CisKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoRE9NU3RyaW5nPyB0eXBlcyk7CisgICAgdW5kZWZpbmVkIHNl
dEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoRE9NU3RyaW5nPyB0eXBlcyk7CisgICAgdW5kZWZpbmVk
IHNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoRE9NU3RyaW5nPyB0eXBlcyk7CisgICAgdW5k
ZWZpbmVkIHNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoRE9NU3RyaW5nPyB0eXBlcyk7Cisg
ICAgdW5kZWZpbmVkIHNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhET01TdHJpbmc/
IHR5cGVzKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCAxZmJlMWY5MzNkMDk1MDA2ZjQyZmQ5ZGNm
YzZmMmE0NDJhNzY0MDkzLi45MzE2YjY2YWIzNTk2NmU1YjY0NWRkMWM3Y2UwZTgxMmYyMDZhNjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgKQEAgLTc2LDYgKzc2LDggQEAgY2xhc3MgQXVkaW9UcmFja1ByaXZh
dGU7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDsKICNlbmRpZgogY2xhc3MgVmlk
ZW9UcmFja1ByaXZhdGU7CisKK3N0cnVjdCBGb3VyQ0M7CiB9CiAKICNpZiBVU0UoQVZGT1VOREFU
SU9OKQpAQCAtMjkzLDYgKzI5NSwxMiBAQCBwcml2YXRlOgogICAgIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdh
cmVTdXBwb3J0KCkgY29uc3QgZmluYWw7CiAKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7IH07CisgICAg
Y29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlw
ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3Vy
Q0M+PiYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOyB9OworICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHM7IH07CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29y
ZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7
IH07CisKICAgICB2b2lkIHN0YXJ0VXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIoKTsKICAg
ICB2b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKGJvb2wgPSBmYWxzZSk7CiAgICAgdm9pZCBzZW5kQ2Fj
aGVkU3RhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgKaW5kZXgg
NGFjYjQwZTJjMDllYzc1Y2U5ZWViYjczMWUxZGQxYzljNjMyMTUwZi4uNGZkNjYxYjdkMDY3MGRj
NTBkMWM3OGFkYjVmOGJhZjI5NjJlZTEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRUeXBlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Gb3Vy
Q0MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVGV4dFRyYWNrLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTQwLDYgKzQxLDEyIEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29u
ZmlndXJhdGlvbiB7CiAgICAgU3RyaW5nIHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKICAg
ICBTdHJpbmcgbmV0d29ya0ludGVyZmFjZU5hbWU7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRl
bnRUeXBlPiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsK
KyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVz
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckND
Pj4gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CisKICAgICBW
ZWN0b3I8U3RyaW5nPiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKICNpZiBFTkFCTEUo
QVZGX0NBUFRJT05TKQogICAgIFZlY3RvcjxXZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFja0RhdGE+
IG91dE9mQmFuZFRyYWNrRGF0YTsKQEAgLTU4LDYgKzY1LDExIEBAIHN0cnVjdCBSZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbiB7CiAgICAgICAgIGVuY29kZXIgPDwgc291cmNlQXBw
bGljYXRpb25JZGVudGlmaWVyOwogICAgICAgICBlbmNvZGVyIDw8IG5ldHdvcmtJbnRlcmZhY2VO
YW1lOwogICAgICAgICBlbmNvZGVyIDw8IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0OworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
OworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7CisgICAgICAgIGVu
Y29kZXIgPDwgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICAgICAgZW5jb2RlciA8PCBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlczsKICAgICAgICAgZW5jb2RlciA8PCBwcmVmZXJyZWRBdWRpb0No
YXJhY3RlcmlzdGljczsKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAgICAgICBlbmNvZGVy
IDw8IG91dE9mQmFuZFRyYWNrRGF0YTsKQEAgLTcwLDg2ICs4MiwyNyBAQCBzdHJ1Y3QgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gewogICAgIH0KIAogICAgIHRlbXBsYXRlIDxj
bGFzcyBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uPiBkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZp
Z3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0
cmluZz4gcmVmZXJyZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gcmVmZXJyZXI7Ci0gICAgICAgIGlm
ICghcmVmZXJyZXIpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiB1c2VyQWdlbnQ7Ci0gICAgICAgIGRlY29kZXIgPj4gdXNl
ckFnZW50OwotICAgICAgICBpZiAoIXVzZXJBZ2VudCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHNvdXJjZUFwcGxpY2F0
aW9uSWRlbnRpZmllcjsKLSAgICAgICAgZGVjb2RlciA+PiBzb3VyY2VBcHBsaWNhdGlvbklkZW50
aWZpZXI7Ci0gICAgICAgIGlmICghc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gbmV0d29ya0ludGVyZmFjZU5hbWU7Ci0gICAgICAgIGRlY29kZXIgPj4gbmV0d29ya0ludGVy
ZmFjZU5hbWU7Ci0gICAgICAgIGlmICghbmV0d29ya0ludGVyZmFjZU5hbWUpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdl
YkNvcmU6OkNvbnRlbnRUeXBlPj4gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQ7Ci0gICAgICAgIGRlY29kZXIgPj4gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQ7Ci0gICAgICAgIGlmICghbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0
aWNzOwotICAgICAgICBkZWNvZGVyID4+IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwot
ICAgICAgICBpZiAoIXByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKQotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlBsYXRmb3JtVGV4dFRyYWNrRGF0YT4+IG91
dE9mQmFuZFRyYWNrRGF0YTsKLSAgICAgICAgZGVjb2RlciA+PiBvdXRPZkJhbmRUcmFja0RhdGE7
Ci0gICAgICAgIGlmICghb3V0T2ZCYW5kVHJhY2tEYXRhKQotICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLSNlbmRpZgotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgICAgICBkZWNvZGVy
ID4+IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47Ci0gICAgICAgIGlmICghZG9jdW1lbnRTZWN1cml0
eU9yaWdpbikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gbG9nSWRlbnRpZmllcjsKLSAgICAgICAgZGVjb2RlciA+PiBs
b2dJZGVudGlmaWVyOwotICAgICAgICBpZiAoIWxvZ0lkZW50aWZpZXIpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gc2hvdWxk
VXNlUGVyc2lzdGVudENhY2hlOwotICAgICAgICBkZWNvZGVyID4+IHNob3VsZFVzZVBlcnNpc3Rl
bnRDYWNoZTsKLSAgICAgICAgaWYgKCFzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUpCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
aXNWaWRlbzsKLSAgICAgICAgZGVjb2RlciA+PiBpc1ZpZGVvOwotICAgICAgICBpZiAoIWlzVmlk
ZW8pCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZDsKLSAgICAgICAgZGVjb2RlciA+
PiByZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkOwotICAgICAgICBpZiAoIXJlbmRlcmluZ0NhbkJl
QWNjZWxlcmF0ZWQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHJldHVybiB7ewotICAgICAgICAgICAgV1RGTW92ZSgqcmVmZXJyZXIpLAotICAgICAgICAgICAg
V1RGTW92ZSgqdXNlckFnZW50KSwKLSAgICAgICAgICAgIFdURk1vdmUoKnNvdXJjZUFwcGxpY2F0
aW9uSWRlbnRpZmllciksCi0gICAgICAgICAgICBXVEZNb3ZlKCpuZXR3b3JrSW50ZXJmYWNlTmFt
ZSksCi0gICAgICAgICAgICBXVEZNb3ZlKCptZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydCksCi0gICAgICAgICAgICBXVEZNb3ZlKCpwcmVmZXJyZWRBdWRpb0NoYXJhY3Rl
cmlzdGljcyksCisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnJl
ZmVycmVyKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi51c2Vy
QWdlbnQpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnNvdXJj
ZUFwcGxpY2F0aW9uSWRlbnRpZmllcikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNv
bmZpZ3VyYXRpb24ubmV0d29ya0ludGVyZmFjZU5hbWUpCisgICAgICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25maWd1cmF0aW9uLm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVT
dXBwb3J0KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNv
bmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29kZWNUeXBlcykKKyAgICAgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcykKKyAgICAg
ICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uZmlndXJhdGlvbi5wcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcykKICNpZiBFTkFC
TEUoQVZGX0NBUFRJT05TKQotICAgICAgICAgICAgV1RGTW92ZSgqb3V0T2ZCYW5kVHJhY2tEYXRh
KSwKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ub3V0T2ZCYW5k
VHJhY2tEYXRhKQogI2VuZGlmCi0gICAgICAgICAgICBXVEZNb3ZlKCpkb2N1bWVudFNlY3VyaXR5
T3JpZ2luKSwKLSAgICAgICAgICAgICpsb2dJZGVudGlmaWVyLAotICAgICAgICAgICAgKnNob3Vs
ZFVzZVBlcnNpc3RlbnRDYWNoZSwKLSAgICAgICAgICAgICppc1ZpZGVvLAotICAgICAgICAgICAg
KnJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQsCi0gICAgICAgIH19OworICAgICAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5kb2N1bWVudFNlY3VyaXR5T3JpZ2luKQorICAg
ICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5sb2dJZGVudGlmaWVyKQor
ICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zaG91bGRVc2VQZXJz
aXN0ZW50Q2FjaGUpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9u
LmlzVmlkZW8pCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnJl
bmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcAppbmRleCA1OGZjMWU0ZWUyNTVlZDU4MzBjOTk2ZGZlNjhiZjJhYmQzNTNlYWY4
Li43YzlkNDU2OWE0ZTUwYjA3MTNhNzdhOGI0YWMyNDBmYWU0NmRkZDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50VHlwZVV0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CkBAIC0xNjYsNiArMTY3LDEyIEBAIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y3JlYXRlUmVtCiAgICAgYXV0byBk
b2N1bWVudFNlY3VyaXR5T3JpZ2luID0gcGxheWVyLT5kb2N1bWVudFNlY3VyaXR5T3JpZ2luKCk7
CiAgICAgcHJveHlDb25maWd1cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVu
dFNlY3VyaXR5T3JpZ2luOwogCisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzID0gcGxheWVyLT5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAg
IHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gcGxheWVyLT5hbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAg
ICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IHBsYXllci0+
YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIHByb3h5Q29uZmlndXJhdGlvbi5hbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcygpOworCiAgICAgYXV0byBpZGVudGlmaWVyID0gTWVkaWFQbGF5ZXJJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpOwogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpDcmVhdGVNZWRp
YVBsYXllcihpZGVudGlmaWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwcm94eUNvbmZpZ3Vy
YXRpb24pLCAwKTsKIApAQCAtMjAyLDYgKzIwOSwxMCBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNU
eXBlIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlh
UAogICAgIGlmIChwYXJhbWV0ZXJzLmlzTWVkaWFTdHJlYW0pCiAgICAgICAgIHJldHVybiBNZWRp
YVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRpZgorCisgICAgaWYg
KCFjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKHBhcmFt
ZXRlcnMudHlwZSwgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcywgcGFyYW1l
dGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKSkKKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVy
OjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworCiAgICAgcmV0dXJuIHR5cGVDYWNoZShy
ZW1vdGVFbmdpbmVJZGVudGlmaWVyKS5zdXBwb3J0c1R5cGVBbmRDb2RlY3MocGFyYW1ldGVycyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggYjhmOGRlNjdkMTJhNjNmODIzYTEwNTEyOWYwOTcxMjk1ZTk5ZDJiOS4uNDU1Y2FlNzVkYWE0
OWI1MDNjYjQ4ZWY3YzU3NGQ5MGQyZjE3MjNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQxMTYsNiArNDExNiwxMiBAQCB2b2lkIFdlYlBh
Z2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQog
ICAgICAgICBzZXR0aW5ncy5zZXRNYXRoTUxFbmFibGVkKGZhbHNlKTsKICNlbmRpZgogICAgICAg
ICBzZXR0aW5ncy5zZXRQZGZKU1ZpZXdlckVuYWJsZWQodHJ1ZSk7CisKKyAgICAgICAgc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhQ29udGFpbmVyVHlwZXNBbGxvd2VkSW5DYXB0aXZl
UG9ydGFsTW9kZUtleSgpKSk7CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVj
VHlwZXMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlh
Q29kZWNUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAgICAgICAgc2V0
dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFWaWRlb0NvZGVjSURzQWxsb3dlZEluQ2FwdGl2
ZVBvcnRhbE1vZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRp
b0NvZGVjSURzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpt
ZWRpYUF1ZGlvQ29kZWNJRHNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7CisgICAg
ICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhzdG9yZS5nZXRT
dHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDYXB0aW9uRm9ybWF0VHlw
ZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7CiAgICAgfQogCiAjaWYgRU5BQkxF
KEFSS0lUX0lOTElORV9QUkVWSUVXKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM1NThlZWYyZDNlMDQ0MGUzNTllZmYyNTQ5
ODVkNGQzZGYxMTg0NTguLmFmNWM3MzRjZTRhMmM4MzVhZDU1OWUwZDQ3NDEzMjM2NDAyN2JiYmMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTM3MCw2ICszNzAsMjIgQEAKIAogICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zOgogCisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWluZXJz
IGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29k
ZWNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1j
b2RlY3MuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWlu
ZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1j
b250YWluZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBt
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250
YWluZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbDogQWRkZWQuCisKIDIwMjItMDEt
MjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBy
VkZDKCkgY2FsbGJhY2tzIGhhdmUgdXAgdG8gNjBtcyBleHRyYSBsYXRlbmN5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjUwZDUzOWEyZjkwNjNhYTJjNWNhMDkzNzQ4NzRmNzFlNGRiZWJlMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMzIEBACitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMobnVsbCkpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMobnVsbCkpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMobnVsbCkpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUo
InZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAncHJvYmFibHknKSBPSworRVhQRUNURUQgKHZp
ZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ3Byb2JhYmx5Jykg
T0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChjYW5wbGF5KSBP
SworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJh
dmMxIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMoImFhYyAiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNU
eXBlcygiYXZjMSxtcDRhLjQwIikpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVv
L21wNDsgY29kZWNzPWF2YzEiKSA9PSAncHJvYmFibHknKSBPSworRVhQRUNURUQgKHZpZGVvLmNh
blBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJycpIE9LCitSVU4odmlkZW8u
c3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2FucGxheSkgT0sKK1JVTihpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpKQorUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIikpCitS
VU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoInZwMDksb3B1
cyIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMx
IikgPT0gJycpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29k
ZWNzPW1wNHYiKSA9PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIp
CitFVkVOVChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcygiYXZjMSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsb3B1cyIpKQorUlVOKHZpZGVvLnNyYyA9ICJjb250
ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKSkKK1JVTihpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxtcDRhLjQwIikpCitSVU4o
dmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3IpIE9LCitFTkQgT0Yg
VEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVj
cy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44MWM3YmM1MDE5MmY0YmI4OWM4MGVhZGNmMzY3ZDFkNGFiYjBlOGJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbApA
QCAtMCwwICsxLDYwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPm1lZGlhLWFsbG93ZWQtY29kZWNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8t
dGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycp
OworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51bGwpJyk7CisgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMobnVsbCknKTsK
KyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBl
cyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRl
by9tcDQ7IGNvZGVjcz1hdmMxIiknLCAncHJvYmFibHknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgJ3Byb2JhYmx5
Jyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAg
ICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5
JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpJyk7CisgICAgICAg
IHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFh
YyAiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCAncHJvYmFibHknKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9
bXA0diIpJywgJycpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0
IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVv
LCAnY2FucGxheScpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2Vycm9yJyldKTsKKworICAgICAg
ICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScp
OworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzKCJvcHVzIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxs
b3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVk
KCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgJycpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1t
cDR2IiknLCAnJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQi
Jyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8s
ICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2NhbnBsYXknKV0pOworCisgICAgICAg
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoIm9wdXMiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG9wdXMiKScpOworICAgICAgICBydW4oJ3ZpZGVvLnNy
YyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dh
aXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdj
YW5wbGF5JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMoInZwMDkiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAgcnVuKCdpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxtcDRhLjQwIikn
KTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAg
ICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9yJyks
IHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgZW5kVGVzdCgp
OworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0
bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Njk4YjA1Yzg5MzMzMDRhMjAxOWMzZTQwYTE3NDQwZWU3ODA4YWVjYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNyBAQAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcyhudWxsKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgiYXVk
aW8vbXAzIikgPT0gJ21heWJlJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlk
ZW8vbXA0IikgPT0gJ21heWJlJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1w
NCIpCitFVkVOVChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJhdWRpby9tcDMiKSA9PSAnbWF5YmUnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJ2aWRlby9tcDQiKSA9PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0
Lm1wNCIpCitFVkVOVChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoInZpZGVvL21wNCIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBs
YXlUeXBlKCJhdWRpby9tcDMiKSA9PSAnJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlw
ZSgidmlkZW8vbXA0IikgPT0gJ21heWJlJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90
ZXN0Lm1wNCIpCitFVkVOVChlcnJvcikgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmZjJk
OTk2YzM1NTNhMTM0ZWEzYjYzNzU2MTQwMTRjMDdhNGJlNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sCkBAIC0wLDAgKzEs
NDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEt
YWxsb3dlZC1jb250YWluZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICdtYXliZScpOworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKScsICdtYXliZScpOwor
ICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBh
d2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnY2FucGxheScpLCB3
YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2Vycm9yJyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJhdWRpby9tcDMiKScpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICdtYXliZScp
OworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKScs
ICcnKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAg
ICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9y
JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IiknKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgiYXVkaW8vbXAzIiknLCAn
Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIp
JywgJ21heWJlJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQi
Jyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8s
ICdjYW5wbGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAg
IGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI1Y2MzYmQ2Y2UwODdj
MjAyMGVjOWY4ZjFmY2IwNWUxOWQwMjMyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTggQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcyhudWxsKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBw
b3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAo
TWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0g
J3RydWUnKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0Nv
ZGVjSURzKCJhdmMxIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1
ZGlvQ29kZWNJRHMoImFhYyAiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhQ29kZWNUeXBlcygiYXZjMSxtcDRhLjQwIikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNU
eXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikgPT0gJ3RydWUnKSBPSworRVhQ
RUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9bXA0
diIpID09ICdmYWxzZScpIE9LCitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9
IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpKQor
VEVTVChzb3VyY2VCdWZmZXIuY2hhbmdlVHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpKSBU
SFJPV1MoIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQu
IikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cygidnAwOSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzKCJvcHVzIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoInZwMDksb3B1cyIpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBv
cnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICdmYWxzZScpIE9LCitURVNUKG1lZGlh
U291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpKSBUSFJPV1Mo
Ik5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIikgT0sK
K0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
YTdhNTA0YTVmMjIxOTVkZDM4ZjdkODllZGI2NmFlMDk4ODU0ZjY5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNv
ZGVjcy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+bWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVyczwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+
CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7Cisg
ICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1Jl
cXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKwor
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzKG51bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3Vw
cG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4
cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1w
NHYiKScsIHRydWUpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAg
cnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxt
cDRhLjQwIiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1
cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1t
cDR2IiknLCBmYWxzZSk7CisKKyAgICAgICAgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2Uo
KTsKKyAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gbWVkaWFTb3VyY2U7CisgICAgICAgIGF3YWl0
IHdhaXRGb3IobWVkaWFTb3VyY2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgcnVuKCdzb3Vy
Y2VCdWZmZXIgPSBtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21wNDsgY29kZWNz
PWF2YzEiKScpOworICAgICAgICB0ZXN0RXhjZXB0aW9uKCdzb3VyY2VCdWZmZXIuY2hhbmdlVHlw
ZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9w
ZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiInKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IiknKTsKKyAgICAgICAg
cnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1
cyIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoInZwMDksb3B1cyIpJyk7CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsIGZhbHNlKTsK
KworICAgICAgICB0ZXN0RXhjZXB0aW9uKCdtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZp
ZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICciTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRp
b24gaXMgbm90IHN1cHBvcnRlZC4iJyk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOwor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5l
cnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZTk2NjlmYjhiZDI5ODE3OWNlZWRhYjJjN2Fm
NGIzYmIwOTMxZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1z
b3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4IEBACitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKG51bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlk
ZW8vbXA0IikgPT0gJ3RydWUnKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2Uu
aXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIikpCitF
WFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAnZmFs
c2UnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjM0OWEyOWE2NzkzMTZkNmY3NmJjMWIxZjIzY2RhNzQ1YTVlZDkzMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWxsb3dlZC1j
b250YWluZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcs
IGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVsbCknKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpJywgdHJ1ZSk7CisK
KyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAg
ICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygi
dmlkZW8vbXA0IiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVT
dXBwb3J0ZWQoInZpZGVvL21wNCIpJywgdHJ1ZSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vd2VibSIpJyk7CisgICAgICAg
IHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKScs
IGZhbHNlKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwppbmRleCBhM2I2Y2I3YzMxNzJmMDExNzMyZGQ5OTlh
YWY3YjQ0MzY1YzZkYjVlLi4zYzA2N2UwZjlkNzUzMDE1YzlhMzYyOTQ0ZTc1YTM2NmRlZTc4NDgy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKQEAgLTIxNywxNiArMjE3LDMyIEBAIGZ1bmN0aW9u
IHdhaXRGb3JFdmVudFdpdGhUaW1lb3V0KGVsZW1lbnQsIHR5cGUsIHRpbWUsIG1lc3NhZ2UpIHsK
ICAgICB9KTsKIH0KIAotZnVuY3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBzaWxlbnQpIHsK
K2Z1bmN0aW9uIHdhaXRGb3IoZWxlbWVudCwgdHlwZSwgc2lsZW50LCBzdWNjZXNzKSB7CiAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgICBlbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIodHlwZSwgZXZlbnQgPT4gewotICAgICAgICAgICAgaWYgKCFzaWxlbnQpCisgICAg
ICAgICAgICBpZiAoc2lsZW50KSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAo
c3VjY2VzcyAhPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIGxvZ1Jlc3VsdChzdWNjZXNz
LCBgRVZFTlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoYEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAgICAK
ICAgICAgICAgICAgIHJlc29sdmUoZXZlbnQpOwogICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7
CiAgICAgfSk7CiB9CiAKK2Z1bmN0aW9uIHdhaXRGb3JBbmRTdWNjZWVkKGVsZW1lbnQsIHR5cGUp
IHsKKyAgICByZXR1cm4gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBmYWxzZSwgdHJ1ZSk7Cit9CisK
K2Z1bmN0aW9uIHdhaXRGb3JBbmRGYWlsKGVsZW1lbnQsIHR5cGUpIHsKKyAgICByZXR1cm4gd2Fp
dEZvcihlbGVtZW50LCB0eXBlLCBmYWxzZSwgdHJ1ZSk7Cit9CisKIGZ1bmN0aW9uIHdhaXRGb3JF
dmVudE9uY2UoZXZlbnROYW1lLCBmdW5jLCBlbmRpdCkKIHsKICAgICB3YWl0Rm9yRXZlbnQoZXZl
bnROYW1lLCBmdW5jLCBlbmRpdCwgdHJ1ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451713</attachid>
            <date>2022-02-11 09:42:58 -0800</date>
            <delta_ts>2022-02-11 18:06:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236245-20220211094257.patch</filename>
            <type>text/plain</type>
            <size>88442</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZkOWYyZmY4ZTVmM2E2OWU0Y2NhNjc3
MjRmZWY3MDA2MjAwYzAwNzMuLjM5NWJjYzg4OGJjYzFkNWI3YWVkNDkxMGM3NzY1MTYyYmU3ZDgz
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNv
bnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0wNiAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtXVEZdIE1ha2UgQml0bWFwIGNvbnN0ZXhwciBm
cmllbmRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZlMGQ4MWQ2NDFlNzI4NTA2ZTNmMDYwZTVhMDYzMmZhN2Mx
OTRkMTEuLjI2YTY5MTYzZjM3ZDc3Yzg4YTY4ZWI0NmUyY2Q5NTgyZGI2MmE4N2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMDIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNvbnRh
aW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZXN0czogbWVkaWEvbWVkaWEtYWxs
b3dlZC1jb2RlY3MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250
YWluZXJzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtYWxsb3dlZC1jb2RlY3MuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbAorCisgICAgICAgIEFkZCBzZXR0
aW5ncyBhdCB0aGUgV2ViQ29yZSBsZXZlbCB0byBvcHRpb25hbGx5IGRlY2xhcmUgYSBsaXN0IG9m
IGNvbnRhaW5lciB0eXBlcywKKyAgICAgICAgdmlkZW8gY29kZWNzLCBhdWRpbyBjb2RlY3MsIGFu
ZCBjYXB0aW9uIGZvcm1hdHMgdG8gYWxsb3cgd2hlbiBsb2FkaW5nIG1lZGlhIHRocm91Z2gKKyAg
ICAgICAgSFRNTE1lZGlhRWxlbWVudCBhbmQgTWVkaWFTb3VyY2UuCisKKyAgICAgICAgVGhlcmUg
YXJlIHNvbWUgY2FzZXMgd2hlcmUgdGhlIGNvZGVjIElELCB0eXBpY2FsbHkgYSBmb3VyLWNoYXJh
Y3Rlci1jb2RlIGVtYmVkZGVkCisgICAgICAgIGluIHRoZSBjb250YWluZXIgaXRzZWxmLCBkb2Vz
IG5vdCBtYXRjaCB0aGUgUkZDNDI4MSBjb2RlYyBzdHJpbmcuIE5vdGFibHksIHRoaXMgaXMgdGhl
IGNhc2UKKyAgICAgICAgd2l0aCAibXA0YS40MCIgYW5kICdhYWMgJy4gU28gdGhlIHNldHRpbmdz
IG11c3QgaW5jbHVkZSBib3RoIHRoZSBjb2RlYyBJRCBhbmQgdGhlIGNvZGVjCisgICAgICAgIHR5
cGUgaW4gc3RyaW5nIGZvcm0uCisKKyAgICAgICAgUXVlcnkgdGhlc2UgbGlzdHMgaW4gSFRNTE1l
ZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoKSBhbmQgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRl
ZCgpCisgICAgICAgIGFuZCByZWplY3QgQ29udGVudFR5cGVzIHdoaWNoIGRvIG5vdCBjb25mb3Jt
IHRvIHRoZSBhbGxvd2VkIHR5cGVzLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIE1l
ZGlhU291cmNlOjpjaGFuZ2VUeXBlKCkgdG8gZGlzYWxsb3cgc3dpdGNoaW5nIHRvIGFuIHVuc3Vw
cG9ydGVkCisgICAgICAgIENvbnRlbnRUeXBlLgorICAgICAgICAKKyAgICAgICAgSWYgdGhlc2Ug
bGlzdHMgYXJlIHNldCwgcGFzcyB0aGVtIGludG8gQVZVUkxBc3NldCBhcyBjcmVhdGlvbiBvcHRp
b25zLgorCisgICAgICAgIFdoZW4gYSBuZXcgQVZBc3NldFRyYWNrIGlzIGxvYWRlZCwgcXVlcnkg
dGhlc2UgbGlzdHMgYW5kIGlmIHRoZSB0cmFjaydzIHR5cGUgZG9lcyBub3QKKyAgICAgICAgY29u
Zm9ybSB0byB0aGUgYWxsb3dlZCB0eXBlcywgc3ludGhlc2l6ZSBhbiBlcnJvciBhbmQgYmxvY2sg
ZnVydGhlciBsb2FkaW5nLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVk
KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OmNoYW5nZVR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0
aW9uU2VnbWVudCk6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjphbGxvd2VkTWVkaWFDb2RlY1R5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY1R5cGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzQmFzZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6
YWxsb3dlZE1lZGlhVmlkZW9Db2RlY1R5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzQmFzZTo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6YWxsb3dlZE1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9D
b250ZW50VHlwZVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udGVu
dFR5cGVzVG9Db2RlY3MpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGVudFR5cGVNZWV0c0NvbnRh
aW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXZWJDb3JlOjpGb3VyQ0M6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpGb3VyQ0M6OmRlY29kZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bnVsbE9wdGlvbmFs
U3RyaW5nVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRpb25hbEZvdXJDQ1ZlY3Rv
cik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6bmV4dEJlc3RNZWRpYUVuZ2luZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6YWxs
b3dlZE1lZGlhQXVkaW9Db2RlY1R5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjphbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Omxv
YWRpbmdNZXRhZGF0YSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZBc3NldFRyYWNrVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGVudFR5cGVzVG9Db2RlY3MpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphbGxUcmFj
a3NBcmVQbGF5YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja0lzUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YXNzZXRTdGF0dXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmFzc2V0VHJhY2tN
ZXRhZGF0YUtleU5hbWVzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxs
b3dlZE1lZGlhVmlkZW9Db2RlY1R5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0
dGluZ3M6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMjItMDItMDcgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBEb2N1bWVudFRpbWVsaW5lOjpydW5uaW5n
QW5pbWF0aW9uc0ZvclJlbmRlcmVyQXJlQWxsQWNjZWxlcmF0ZWQoKSB0byBTdHlsZWFibGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nCmluZGV4IGIyMDUyYzk4MjZlNDhhYjFjZjFlOThiMmM1ZDQyODk2MzI2MmY0
MWEuLjE1MGViYWNhYTY2YTY5OTE4OGFjMjMzODZiYTIzNTYxM2ZlNTc2NGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBj
b250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsubW06CisKIDIwMjItMDItMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVc2UgcHJpdmF0ZSByZWxheSBmb3IgYWxsIHN1YnJlc291cmNl
cyBpZiB0aGUgbWFpbiBkb2N1bWVudCBtYWluIHJlc291cmNlIHdhcyBsb2FkZWQgdXNpbmcgcHJp
dmF0ZSByZWxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBmNzZhYTg1MDQ2ZjFmYjI1YTM1NGQwMTJmYzc4ZThkZTQ1
NmFhNzE5Li5lOWMxY2QzMDViZTZmZjI2ZDMwZWQ5Nzk1MjhjNGVlMWVjOWU3ZjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWlu
ZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBzdXBwb3J0c1R5cGVBbmRDb2RlY3MoKSBjYWxscywgd2hp
Y2gKKyAgICAgICAgaXMgcHJvYmxlbWF0aWMgd2hlbiB0aG9zZSByZXN1bHRzIGNhbiBjaGFuZ2Ug
ZHVlIHRvIGEgY2hhbmdlIGluIHNldHRpbmdzLiBTbyBlbmZvcmNlCisgICAgICAgIHRoZSBhbGxv
d2VkIGNvZGVjIGFuZCBjb250YWluZXJzIHNldHRpbmdzIGF0IHRoZSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIgbGV2ZWwuIEFsc28sCisgICAgICAgIHBhc3MgdGhvc2Ugc2V0dGluZ3MgYWNyb3Nz
IHRoZSBHUFUgcHJvY2VzcyBib3VuZGFyeSB2aWEgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZp
Z3VyYXRpb24uCisKKyAgICAgICAgRHJpdmUtYnkgZml4OiByZWZhY3RvciBSZW1vdGVNZWRpYVBs
YXllclByb3h5Q29uZmlndXJhdGlvbjo6ZGVjb2RlKCkgc28gYXMgbm90IHRvIHJlcXVpcmUKKyAg
ICAgICAgcmUtZGVjbGFyaW5nIHRoZSB0eXBlcyBvZiBldmVyeSBpdmFyLCBhbmQgZ3JlYXRseSBz
aW1wbGlmeSB0aGUgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZGVjb2RlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0ZVJl
bW90ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5j
ZXMpOgorCiAyMDIyLTAyLTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXVtXUF0gRW5hYmxlIHNhbmRib3ggc3RhdGUgcnVsZXMgZm9yIE1hY2gg
bWVzc2FnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQ
cmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzLnlhbWwKaW5kZXggZTc5YzdkOTJkMTI4YTg2NjhmMzRjMzI0MTg1MzkxNDYzMzFmMmVj
ZS4uNGFhNjdhMzEyOTgwNGRhOWZmOGU2YTQ0OTQ1OTZjNDY2MWZmOWUxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwKQEAgLTEz
MjYsNiArMTMyNiwxNCBAQCBNYXhQYXJzZUR1cmF0aW9uOgogICAgIFdlYkNvcmU6CiAgICAgICBk
ZWZhdWx0OiAtMQogCitNZWRpYUF1ZGlvQ29kZWNJRHNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9k
ZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6IFsg
V2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6ICci
YWFjICx6YWFjLHFhYWMsY2FhYywubXAzIicKKwogTWVkaWFDYXBhYmlsaXRpZXNFbmFibGVkOgog
ICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZToKQEAgLTEzMzYsNiArMTM0NCwzMCBAQCBNZWRp
YUNhcGFiaWxpdGllc0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNl
CiAKK01lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGU6Cisg
IHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdlYktp
dCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnImM2MDgs
d3Z0dCInCisKK01lZGlhQ29kZWNUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0
eXBlOiBTdHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQg
XQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJtcDRhLjQw
LGF2YzEiJworCitNZWRpYUNvbnRhaW5lclR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGU6
CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdl
YktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnInZp
ZGVvL21wNCxhdWRpby9tcDQsdmlkZW8veC1tNHYsYXVkaW8veC1tNGEsYXVkaW8vbXAzLGFwcGxp
Y2F0aW9uL3gtbXBlZ1VSTCx2bmQuYXBwbGUubXBlZ1VSTCInCisKIE1lZGlhQ29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OgogICB0eXBlOiBTdHJpbmcKICAgd2ViY29yZUV4Y2x1
ZGVGcm9tSW50ZXJuYWxTZXR0aW5nczogdHJ1ZQpAQCAtMTQ1NSw2ICsxNDg3LDE0IEBAIE1lZGlh
VXNlckdlc3R1cmVJbmhlcml0c0Zyb21Eb2N1bWVudDoKICAgICBXZWJDb3JlOgogICAgICAgZGVm
YXVsdDogZmFsc2UKIAorTWVkaWFWaWRlb0NvZGVjSURzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1v
ZGU6CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBb
IFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAn
ImF2YzEsemF2YyxxYXZjLGNhdmMiJworCiBNZW51SXRlbUVsZW1lbnRFbmFibGVkOgogICB0eXBl
OiBib29sCiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4
IDU5NWU0MjU0MjdlOGViYWM5ZjVhYjZhZjEwYTU3M2MwNTQ1YmI0YWIuLjkxMjc0N2Y0MDZjMjk1
OTQ5OTczYjViYjEzNDlkYmNhNjc0MWMxMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAKICNp
bmNsdWRlICJBdWRpb1RyYWNrTGlzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCisjaW5j
bHVkZSAiQ29udGVudFR5cGVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCkBAIC05MDks
NiArOTEwLDE3IEBAIGJvb2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgcGFyYW1ldGVycy5pc01l
ZGlhU291cmNlID0gdHJ1ZTsKICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCA9IFdURk1vdmUoY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0KTsKIAorICAgIGlmIChjb250ZXh0LmlzRG9jdW1lbnQoKSkgeworICAgICAgICBhdXRvJiBz
ZXR0aW5ncyA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5zZXR0aW5ncygpOworICAgICAg
ICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMo
Y29udGVudFR5cGUsIHNldHRpbmdzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCksIHNldHRp
bmdzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHNldHRp
bmdzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7CisgICAgICAgIHBhcmFtZXRlcnMuYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHNldHRpbmdzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJ
RHMoKTsKKyAgICAgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gc2V0
dGluZ3MuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHNldHRpbmdzLmFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcygpOworICAgIH0KKwogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydGVkID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShwYXJhbWV0ZXJzKTsKIAogICAg
IGlmIChjb2RlY3MuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDJiM2NkZTM2MDgyNDcxYzExYzg3ZmNm
NjFjYzgxY2MzNjBjMzlkOTAuLmUwNjkyNzBkZjZiNmQxZTdiZmJjM2UyMDkzMjc2NzZiMmQ4YTM5
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNl
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJj
ZUJ1ZmZlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJBdWRpb1RyYWNrTGlzdC5o
IgogI2luY2x1ZGUgIkF1ZGlvVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSAiQnVmZmVyU291cmNl
LmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50Lmgi
CkBAIC0zNTUsNiArMzU2LDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNvdXJjZUJ1ZmZlcjo6Y2hh
bmdlVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgLy8gdGhlIHR5cGVzIHNwZWNpZmllZCAo
Y3VycmVudGx5IG9yIHByZXZpb3VzbHkpIG9mIFNvdXJjZUJ1ZmZlciBvYmplY3RzIGluIHRoZSBz
b3VyY2VCdWZmZXJzIGF0dHJpYnV0ZSBvZgogICAgIC8vIHRoZSBwYXJlbnQgbWVkaWEgc291cmNl
LCB0aGVuIHRocm93IGEgTm90U3VwcG9ydGVkRXJyb3IgZXhjZXB0aW9uIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KICAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZSh0eXBlKTsKKworICAgIGF1dG8m
IHNldHRpbmdzID0gZG9jdW1lbnQoKS5zZXR0aW5ncygpOworICAgIGlmICghY29udGVudFR5cGVN
ZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb250ZW50VHlwZSwgc2V0dGlu
Z3MuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcygpKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
IH07CisKICAgICBpZiAoIW1fcHJpdmF0ZS0+Y2FuU3dpdGNoVG9UeXBlKGNvbnRlbnRUeXBlKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiAKQEAgLTc4
Niw2ICs3OTIsMjUgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRS
ZWNlaXZlSW5pdGlhbGl6YXRpb25TZWdtZW50KEluaXRpYWxpemEKICAgICAgICAgLy8gNS4xIElm
IHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50IGNvbnRhaW5zIHRyYWNrcyB3aXRoIGNvZGVjcyB0
aGUgdXNlciBhZ2VudCBkb2VzIG5vdCBzdXBwb3J0LAogICAgICAgICAvLyB0aGVuIHJ1biB0aGUg
YXBwZW5kIGVycm9yIGFsZ29yaXRobSB3aXRoIHRoZSBkZWNvZGUgZXJyb3IgcGFyYW1ldGVyIHNl
dCB0byB0cnVlIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICAgICAgLy8gTk9URTogVGhpcyBj
aGVjayBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIFNvdXJjZUJ1ZmZlclByaXZhdGUuCisg
ICAgICAgIGlmIChhdXRvJiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gZG9jdW1lbnQoKS5z
ZXR0aW5ncygpLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSkgeworICAgICAgICAgICAgZm9y
IChhdXRvJiBhdWRpb1RyYWNrSW5mbyA6IHNlZ21lbnQuYXVkaW9UcmFja3MpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoYXVkaW9UcmFja0luZm8uZGVzY3JpcHRpb24gJiYgYWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcy0+Y29udGFpbnMoRm91ckNDOjpmcm9tU3RyaW5nKGF1ZGlvVHJhY2tJbmZvLmRl
c2NyaXB0aW9uLT5jb2RlYygpKSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgICAgIGFwcGVuZEVycm9yKHRydWUpOworICAgICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBk
b2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpKSB7CisgICAg
ICAgICAgICBmb3IgKGF1dG8mIHZpZGVvVHJhY2tJbmZvIDogc2VnbWVudC52aWRlb1RyYWNrcykg
eworICAgICAgICAgICAgICAgIGlmICh2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbiAmJiBhbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzLT5jb250YWlucyhGb3VyQ0M6OmZyb21TdHJpbmcodmlkZW9U
cmFja0luZm8uZGVzY3JpcHRpb24tPmNvZGVjKCkpKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgYXBwZW5kRXJyb3IodHJ1ZSk7CisgICAgICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KIAogICAgICAgICAvLyA1LjIgRm9yIGVhY2ggYXVkaW8gdHJhY2sg
aW4gdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQsIHJ1biBmb2xsb3dpbmcgc3RlcHM6CiAgICAg
ICAgIGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJhY2tzKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRM
aW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKaW5kZXggYTk3YTg3NjFlOTY0ODEwODE3MjFiZWM1MjdjMDEwYmU0NTNmZDM5Ny4uOTc3MjE1
OGZhOWE1NDZiNDY3NTc5MjdhMDMxYzI4ZDEwYmRhNDIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaApAQCAtMTI3LDYgKzEy
NywxNCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwg
QVZNZWRpYVR5cGVBdWRpbywgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZNZWRpYVR5cGVBdWRpbyBQ
QUw6OmdldF9BVkZvdW5kYXRpb25fQVZNZWRpYVR5cGVBdWRpbygpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZNZWRpYVR5cGVNZXRhZGF0YSwgTlNT
dHJpbmcgKikKICNkZWZpbmUgQVZNZWRpYVR5cGVNZXRhZGF0YSBQQUw6OmdldF9BVkZvdW5kYXRp
b25fQVZNZWRpYVR5cGVNZXRhZGF0YSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9S
X0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29y
aWVzS2V5LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVn
b3JpZXNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0
ZWdvcmllc0tleSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUws
IEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSBQ
QUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tl
eSgpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEFWRm91bmRh
dGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleSwgTlNTdHJpbmcgKikK
KyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleSBQQUw6OmdldF9B
VkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleSgpCitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZV
UkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5LCBOU1N0cmluZyAqKQorI2RlZmluZSBB
VlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9u
X0FWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSgpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEluaGVyaXRVUklRdWVy
eUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSwgTlNTdHJpbmcgKikKICNkZWZpbmUgQVZV
UkxBc3NldEluaGVyaXRVUklRdWVyeUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSBQQUw6
OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEluaGVyaXRVUklRdWVyeUNvbXBvbmVudEZyb21S
ZWZlcmVuY2luZ1VSSUtleSgpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFW
Rm91bmRhdGlvbiwgQVZBc3NldEltYWdlR2VuZXJhdG9yQXBlcnR1cmVNb2RlQ2xlYW5BcGVydHVy
ZSwgTlNTdHJpbmcgKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGJkNmViYmNiOTkxM2RhOGMxMmE4Yjk2YWEyYmUx
MjhmMDgxOTM3N2QuLjZkYjkyNWJhZjNlNTJlMmQyZGMxZGE4Nzg1OWJmZWY4OTU0ODAzMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExp
bmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0
TGluay5tbQpAQCAtMTgyLDYgKzE4MiwxMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTYW1wbGVCdWZmZXJBdWRpbwogU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWU3RyZWFtRGF0YVBhcnNlckNvbnRlbnRLZXlSZXF1ZXN0UHJvdG9jb2xWZXJzaW9uc0tleSwg
TlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb25Db250ZW50UHJvdGVj
dGlvblNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZE5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVlN0cmVhbWluZ0tleURlbGl2ZXJ5Q29udGVudEtleVR5cGUsIE5TU3Ry
aW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZVR5cGVD
YXRlZ29yaWVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQp
CitTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZVZpZGVvQ29kZWNUeXBlc0tleSwgTlNT
dHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQ2Fw
dGlvbkZvcm1hdHNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENh
Y2hlS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRJbmhlcml0VVJJ
UXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklLZXksIE5TU3RyaW5nICosIFBBTF9FWFBP
UlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRyYWNrc0tleSwgTlNTdHJpbmcg
KiwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYmRjM2Q2YWYzNzY1MDBiYWQ4ZWQ5ZTgy
MTRkM2M0ZmVjZTYyMjhlZS4uNjAyMWRlZDgxNDA3MWU0YzJkNzhiOGFjNzgzNWFiNWFlZDQyMjM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKQEAgLTIwMDMsNiArMjAwMyw3IEBAIHBsYXRmb3JtL2dyYXBoaWNz
L0NvbG9yU2VyaWFsaXphdGlvbi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuY3Bw
CiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvclV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNz
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBl
VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2Uu
Y3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9EZXN0aW5hdGlvbkNvbG9yU3BhY2UuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjFmOGE1MTA0YjZiMjk1
NmYyYmYxZDI2YzUxZDg3MzNlZDI1OGNkOS4uMDE5NWUwZTA2ODA3YzE3ZTdkOWFlNzc4MmZkMDU5
MTFhY2UyYTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNDU2Miw2ICs0NTYyLDcgQEAKIAkJQ0RBQjZEMkUxN0M4MTRFRTAw
QzYwQjM0IC8qIEpTTWVkaWFDb250cm9sc0hvc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUI2RDJDMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlh
Q29udHJvbHNIb3N0LmggKi87IH07CiAJCUNEQUI2RDMxMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2Vy
QWdlbnRTY3JpcHRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREFCNkQyRjE3QzkyNTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5oICovOyB9
OwogCQlDREFDMDY4MzI0QzZBOTVBMDAyRjcyN0YgLyogVlA5VXRpbGl0aWVzQ29jb2EuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENkZFNUI3MjRCQ0U2
NDUwMDlGQ0RBNCAvKiBWUDlVdGlsaXRpZXNDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNEQUQxQTVBMjdBRkMyN0MwMDY5OTI4NSAvKiBD
b250ZW50VHlwZVV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0
aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0RCNjM1NDkyM0Y2MDIzQTAwQzBGOURFIC8qIFdlYkFWUGxheWVyQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBMjlBMkMxQ0JGNzNG
QzAwOTAxQ0NGIC8qIFdlYkFWUGxheWVyQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNEQjcwNDVBMUY3NDY1QTEwMDM5MjNERiAv
KiBDRE1GYWlyUGxheVN0cmVhbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RCNzA0NTgxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3Ry
ZWFtaW5nLmggKi87IH07CiAJCUNEQjcwNDVCMUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxh
eVN0cmVhbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDREI3MDQ1OTFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3Bw
ICovOyB9OwpAQCAtMTYxNTYsNiArMTYxNTcsOCBAQAogCQlDREFCNkQyQzE3QzgxNEVFMDBDNjBC
MzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU01lZGlhQ29udHJvbHNIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEQUI2RDJGMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2VyQWdlbnRTY3JpcHRzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVzZXJBZ2VudFNjcmlwdHMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U2NyaXB0cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQlDREFCNkQzMDE3QzkyNTk1MDBDNjBCMzQgLyogVXNlckFnZW50
U2NyaXB0c0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVXNl
ckFnZW50U2NyaXB0c0RhdGEuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2Vy
QWdlbnRTY3JpcHRzRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCUNEQUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb250ZW50VHlwZVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDREFEMUE1ODI3QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRp
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFFOEMwNzE3NDZCOTU3MDA1MzJENzggLyogUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEQUU4QzA4MTc0NkI5NTcwMDUzMkQ3OCAvKiBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
QjcwNDU4MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxheVN0cmVhbWluZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDRE1GYWlyUGxheVN0cmVhbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjg4NDUsNiArMjg4NDgsOCBAQAogCQkJCUMyRjRFNzg5MUU0NUFFREYwMDZENzEwNSAv
KiBDb21wbGV4VGV4dENvbnRyb2xsZXIuaCAqLywKIAkJCQkxQzg0QkU0MTI2RDM5MzlGMDAyRDYx
RkMgLyogQ29tcG9zZWRDaGFyYWN0ZXJDbHVzdGVyVGV4dEl0ZXJhdG9yLmggKi8sCiAJCQkJNzJC
QUMzQTcyM0UxNzMyODAwOEQ3NDFDIC8qIENvbmNyZXRlSW1hZ2VCdWZmZXIuaCAqLywKKwkJCQlD
REFEMUE1ODI3QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwICovLAor
CQkJCUNEQUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oICov
LAogCQkJCTJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFn
ZS5jcHAgKi8sCiAJCQkJMkQyRkMwNTUxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFkZUdlbmVy
YXRlZEltYWdlLmggKi8sCiAJCQkJQThDQjQxMDIwRTg1QjhBNTAwMzJDNEYwIC8qIERhc2hBcnJh
eS5oICovLApAQCAtMzM4NzQsNiArMzM4NzksNyBAQAogCQkJCUNFNzk5Rjk4MUM2QTQ2QkMwMDk3
QjUxOCAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRTc5OUZBQzFDNkE1MDY2MDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291
cmNlTGlzdERpcmVjdGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMDE1Q0EwRjRCNUM3MTAw
NEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREFEMUE1QTI3QUZD
MjdDMDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3NjI3QjhFMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8qIENvbnRleHRN
ZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL2NhcHRpb25zLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYXB0aW9ucy5jc3MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDNlODc2OWQ1NDA3OGRkNWIxNmYxYTkyNWRhMjU1Yjg4MTc5NWJiZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYXB0aW9ucy5jc3MKQEAgLTAsMCArMSwy
OCBAQAordmlkZW86OmN1ZSgqKSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAw
LCAwLjgpOworfQorCit2aWRlbzo6Y3VlKDpmdXR1cmUpID4gKiB7CisgICAgY29sb3I6IGdyYXk7
Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stZGlzcGxheSB7CisgICAgZm9u
dDogMjJweCBzYW5zLXNlcmlmOyAvKiBLZWVwIGluIHN5bmMgd2l0aCBgREVGQVVMVENBUFRJT05G
T05UU0laRWAuICovCit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFp
bmVyIGIgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRp
YS10ZXh0LXRyYWNrLWNvbnRhaW5lciB1IHsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGlu
ZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIgaSB7Cisg
ICAgZm9udC1zdHlsZTogaXRhbGljOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRy
YWNrLXJlZ2lvbiB7CisgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpOworICAgIGNv
bG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKaW5kZXggZTVmYTJjYzdjMTJjOTYyZGY0NzhhZGViM2JlMjg4MWM3OGI5
NmYwOC4uNzI1YzUyMGEyZWIxNmE3MzJhZGJkZmQwZGE4ZTEwOWU3Y2U0NTVjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMDg5LDYgKzEwODksMTIgQEAg
U3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpIGNvbnN0CiAgICAgQ29udGVudFR5cGUgY29udGVudFR5cGUobWltZVR5cGUpOwogICAgIHBh
cmFtZXRlcnMudHlwZSA9IGNvbnRlbnRUeXBlOwogICAgIHBhcmFtZXRlcnMuY29udGVudFR5cGVz
UmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJk
d2FyZVN1cHBvcnQoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
ID0gYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMgPSBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7CisgICAgcGFyYW1ldGVy
cy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygp
OworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcyA9IGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworCiAgICAgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBzdXBwb3J0ID0gTWVkaWFQbGF5ZXI6OnN1cHBvcnRzVHlwZShw
YXJhbWV0ZXJzKTsKICAgICBTdHJpbmcgY2FuUGxheTsKIApAQCAtNzQwNyw2ICs3NDEzLDMxIEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3Vw
cG9ydCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFDb250YWluZXJU
eXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2Vk
TWVkaWFDb250YWluZXJUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVk
aWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKK30K
KworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIEhUTUxNZWRpYUVsZW1lbnQ6
OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVu
dCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworfQorCitjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5z
ZXR0aW5ncygpLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworfQorCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hhbmdlZCgpCiB7
CiAgICAgaWYgKCFtX3RleHRUcmFja3MgfHwgbV9idWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkVGFz
a0NhbmNlbGxhdGlvbkdyb3VwLmhhc1BlbmRpbmdUYXNrKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IGI1ZmUxMzg1M2M2OTQyNzgzN2VmM2Y5MWQyYmQyNjFjMTkz
ZGM0YmIuLjg5ZTZhNjI2OGJmNmQ2MWM1ZTM3M2YyOWE4NDk2YjFkNjc3M2JhZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC03NzAsNiArNzcwLDEyIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZERpc2FibGVTbGVlcCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHNob3VsZERpc2FibGVTbGVlcCgpID09IFNsZWVwVHlwZTo6RGlzcGxheTsgfQog
ICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZp
bmFsOwogICAgIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4mIG1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3Qg
ZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsOwor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRp
b0NvZGVjSURzKCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0IGZpbmFsOwor
CiAgICAgdm9pZCBtZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJhbmdlc0NoYW5nZWQoKSBmaW5hbDsK
IAogI2lmIFVTRShHU1RSRUFNRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKaW5k
ZXggN2Y1NGQ4NzY4Y2MyZmEzNjRlNTQ0MWNlOGQ0MGRhODU2MDc5YzZmYi4uY2U3MzJiMTJhOWM1
NTJhOWI0MmZlNmJkMWNkYWU3YzBhOTNlNzEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5nc0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NC
YXNlLmNwcApAQCAtMTk5LDcgKzE5OSw4MSBAQCB2b2lkIFNldHRpbmdzQmFzZTo6c2V0TWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoY29uc3QgVmVjdG9yPENvbgogICAg
IG1fbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBjb250ZW50VHlw
ZXM7CiB9CiAKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAg
ICAgICBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gc3RkOjpudWxsb3B0OworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4gbmV3VHlwZXM7CisgICAgZm9y
IChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgnLCcpKQorICAgICAgICBuZXdU
eXBlcy5hcHBlbmQodHlwZS50b1N0cmluZygpKTsKKworICAgIG1fYWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNl
dEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAo
dHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gc3Rk
OjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4g
bmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgn
LCcpKQorICAgICAgICBuZXdUeXBlcy5hcHBlbmQodHlwZS50b1N0cmluZygpKTsKKworICAgIG1f
YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNl
dHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5
cGVzKQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMgPSBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBWZWN0b3I8Rm91ckNDPiBuZXdUeXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmlu
Z1ZpZXcodHlwZXMpLnNwbGl0KCcsJykpIHsKKyAgICAgICAgaWYgKGF1dG8gZm91ckNDID0gRm91
ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQorICAgICAgICAgICAgbmV3VHlwZXMuYXBwZW5kKFdURk1v
dmUoKmZvdXJDQykpOworICAgIH0KKworICAgIG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9
IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1l
ZGlhQXVkaW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICh0eXBlcy5p
c051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8Rm91ckNDPiBuZXdU
eXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykp
IHsKKyAgICAgICAgaWYgKGF1dG8gZm91ckNDID0gRm91ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQor
ICAgICAgICAgICAgbmV3VHlwZXMuYXBwZW5kKFdURk1vdmUoKmZvdXJDQykpOworICAgIH0KIAor
ICAgIG1fYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQor
Cit2b2lkIFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKGNv
bnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAg
IG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gc3RkOjpudWxsb3B0OworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZvdXJDQz4gbmV3VHlwZXM7CisgICAgZm9y
IChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgnLCcpKSB7CisgICAgICAgIGlm
IChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmluZyh0eXBlKSkKKyAgICAgICAgICAgIG5l
d1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsKKyAgICB9CisKKyAgICBtX2FsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQogCiAvLyBNQVJL
IC0gb25DaGFuZ2UgaGFuZGxlcnMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5nc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKaW5kZXgg
NDBkZGI4YTdmN2FmODQ1ZDRiNjVlNjMwZmI3YWIyZTY1NGJhMWM5Mi4uZTM2MTBhMjVmYjMzOWUw
M2FjYzYzYmUxNGYwMDYzMjgwOGMwY2Q4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5nc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5o
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRm9udExvYWRUaW1pbmdPdmVycmlkZS5oIgog
I2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCiAjaW5jbHVkZSAiRm9yY2VkQWNjZXNzaWJp
bGl0eVZhbHVlLmgiCisjaW5jbHVkZSAiRm91ckNDLmgiCiAjaW5jbHVkZSAiRnJhbWVGbGF0dGVu
aW5nLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlclNjcmlwdGluZ0ZsYWdQb2xpY3kuaCIKICNpbmNs
dWRlICJNZWRpYVBsYXllckVudW1zLmgiCkBAIC0xMDgsNiArMTA5LDI2IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdh
cmVTdXBwb3J0KGNvbnN0IFN0cmluZyYpOwogICAgIGNvbnN0IFZlY3RvcjxDb250ZW50VHlwZT4m
IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsgfQogCisgICAg
dm9pZCBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhzdGQ6Om9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBXVEZNb3Zl
KHR5cGVzKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QgeyByZXR1cm4gbV9h
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsgfQorCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFD
b2RlY1R5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYgdHlwZXMpIHsgbV9hbGxv
d2VkTWVkaWFDb2RlY1R5cGVzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoY29uc3QgU3RyaW5nJik7CisgICAgY29u
c3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRNZWRpYUNvZGVjVHlwZXM7IH0KKworICAgIHZvaWQg
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+
PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IFdURk1vdmUodHlwZXMp
OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
KGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+
JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzOyB9CisKKyAgICB2b2lkIHNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mJiB0eXBlcykgeyBtX2FsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmKTsKKyAgICBjb25z
dCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lE
cygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsgfQorCisgICAg
dm9pZCBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0
b3I8Rm91ckNDPj4mJiB0eXBlcykgeyBtX2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9
IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVk
aWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRp
b25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOyB9CisKIHByb3Rl
Y3RlZDoKICAgICBleHBsaWNpdCBTZXR0aW5nc0Jhc2UoUGFnZSopOwogICAgIHZpcnR1YWwgflNl
dHRpbmdzQmFzZSgpOwpAQCAtMTUwLDYgKzE3MSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgVGltZXIg
bV9zZXRJbWFnZUxvYWRpbmdTZXR0aW5nc1RpbWVyOwogCiAgICAgVmVjdG9yPENvbnRlbnRUeXBl
PiBtX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7Cisg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVz
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5H
KQogICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgZmxvYXQgYm9vc3RlZE9uZUxpbmVUZXh0TXVs
dGlwbGllckNvZWZmaWNpZW50ID0gMi4yMzEyNWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTRkNzU1MjgxNjE3YjBhYzg4Yjc0MGZkYzBlNzYzOWU1YjVmZmM4MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0
aWVzLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworI2luY2x1ZGUgIkZvdXJDQy5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CisK
K2Jvb2wgY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhj
b25zdCBDb250ZW50VHlwZSYgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5n
Pj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcykKK3sKKyAgICBpZiAoYWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMgJiYgIWFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLT5jb250YWlu
cyh0eXBlLmNvbnRhaW5lclR5cGUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
ICghYWxsb3dlZE1lZGlhQ29kZWNUeXBlcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBy
ZXR1cm4gYWxsT2YodHlwZS5jb2RlY3MoKSwgWyZdIChhdXRvJiBjb2RlYykgeworICAgICAgICBy
ZXR1cm4gYW55T2YoKmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMsIFsmXSAoYXV0byYgYWxsb3dlZENv
ZGVjKSB7CisgICAgICAgICAgICByZXR1cm4gY29kZWMuc3RhcnRzV2l0aChhbGxvd2VkQ29kZWMp
OworICAgICAgICB9KTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTljNGQyYjlhNGU5YmVhMmYyY2M2YWM3ZjMwZDM0YjRiODE4NWE2ZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVz
LmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSAiQ29udGVudFR5cGUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBGb3VyQ0M7CisKK1dFQkNPUkVfRVhQT1JUIGJvb2wgY29udGVu
dFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBDb250ZW50
VHlwZSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcywgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvdXJDQy5oCmluZGV4IDI0ZTI1NWRmNDRmYjFmNzg3MTRjNThlOTk5OTEwMTI2ZDQ2OWMwYWIu
LmIzN2QwNTBlOWMwYzM2NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCkBAIC0zNyw2ICszNywxOCBAQCBzdHJ1Y3Qg
Rm91ckNDIHsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGb3VyQ0M+IGZyb21TdHJpbmcoU3Ry
aW5nVmlldyk7CiAKICAgICB1aW50MzJfdCB2YWx1ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIGVuY29kZXIgPDwgdmFsdWU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNs
YXNzIERlY29kZXI+CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBGb3VyQ0MmIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi52YWx1ZSk7CisgICAgfQogfTsKIAog
Y29uc3RleHByIGJvb2wgb3BlcmF0b3I9PShGb3VyQ0MsIEZvdXJDQyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggNTFhOWIzYTM1
NGYxMTliZTI5Zjc0MTFhOTM0NTc4NDk5YTZkYTc2ZC4uNTVmOTdjMWFhOTBmYWZkMDdkM2ViOTNk
MTY1MDJmMGNiNmE4ZThkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVu
dFR5cGUuaCIKICNpbmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJGb3VyQ0MuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtMTc2LDYgKzE3NywxOCBA
QCBzdGF0aWMgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbnVsbENvbnRlbnRU
eXBlVmVjdG9yKCkKICAgICByZXR1cm4gdmVjdG9yOwogfQogCitzdGF0aWMgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIG51bGxPcHRpb25hbFN0cmluZ1ZlY3RvcigpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+PiB2
ZWN0b3I7CisgICAgcmV0dXJuIHZlY3RvcjsKK30KKworc3RhdGljIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPEZvdXJDQz4+JiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKQoreworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+Pj4gdmVjdG9y
OworICAgIHJldHVybiB2ZWN0b3I7Cit9CisKIGNsYXNzIE51bGxNZWRpYVBsYXllckNsaWVudCA6
IHB1YmxpYyBNZWRpYVBsYXllckNsaWVudCB7CiBwcml2YXRlOgogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRApAQCAtMTk3LDYgKzIxMCwxMiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShMRUdBQ1lf
RU5DUllQVEVEX01FRElBKQogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNo
ZWRLZXlGb3JLZXlJZChjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9CiAjZW5kaWYKKworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBh
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRp
b25hbFN0cmluZ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3Ry
aW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxs
T3B0aW9uYWxTdHJpbmdWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbnVsbE9wdGlvbmFsRm91ckNDVmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CiB9Owog
CiBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBNZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdApAQCAtNTI5LDYgKzU0OCwx
MSBAQCBjb25zdCBNZWRpYVBsYXllckZhY3RvcnkqIE1lZGlhUGxheWVyOjpuZXh0QmVzdE1lZGlh
RW5naW5lKGNvbnN0IE1lZGlhUGxheWVyRmFjdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgcGFyYW1ldGVycy5pc01lZGlhU3RyZWFtID0gISFtX21lZGlhU3RyZWFtOwogI2VuZGlmCisg
ICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0g
YWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJz
LmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7
CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKIAogICAgIGlmIChtX2FjdGl2ZUVuZ2luZUlkZW50
aWZpZXIpIHsKICAgICAgICAgaWYgKGN1cnJlbnQpCkBAIC0xNjU3LDYgKzE2ODEsMzEgQEAgYm9v
bCBNZWRpYVBsYXllcjo6c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAogICAgIHJl
dHVybiBjbGllbnQoKS5tZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCk7CiB9
CiAKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBNZWRpYVBsYXllcjo6YWxs
b3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5h
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxTdHJpbmc+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25z
dAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7Cit9CisK
K2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRpYVBsYXllcjo6YWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
Rm91ckNDPj4mIE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworfQor
Citjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgp
LmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVy
OjphcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmUoKQogewogICAgIG1fcHJpdmF0ZS0+YXBwbGlj
YXRpb25XaWxsUmVzaWduQWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCBlYmJhZDE2YTY1YWI1M2VhZmZjZmEyNjI3NmI4MmM5
ZjZhN2Q2NWViLi4yNWMyNDgyZmY3NjY0NWM4ZWNmODE1ODRmNGFiYTI1N2Y3OTUwYjFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2ll
LmgiCisjaW5jbHVkZSAiRm91ckNDLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAj
aW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIKQEAg
LTk3LDYgKzk4LDExIEBAIHN0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAg
ICBib29sIGlzTWVkaWFTb3VyY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNNZWRpYVN0cmVhbSB7
IGZhbHNlIH07CiAgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBjb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4g
YWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+
PiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8Rm91ckNDPj4gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dApAQCAtMTA2LDM3ICsxMTIsMjYgQEAgc3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnMgewogICAgICAgICBlbmNvZGVyIDw8IGlzTWVkaWFTb3VyY2U7CiAgICAgICAgIGVuY29kZXIg
PDwgaXNNZWRpYVN0cmVhbTsKICAgICAgICAgZW5jb2RlciA8PCBjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAg
ICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgICAgICBlbmNv
ZGVyIDw8IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFz
cyBEZWNvZGVyPgotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhRW5naW5lU3VwcG9ydFBh
cmFtZXRlcnM+IGRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxDb250ZW50VHlwZT4gdHlwZTsKLSAg
ICAgICAgZGVjb2RlciA+PiB0eXBlOwotICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiB1cmw7Ci0g
ICAgICAgIGRlY29kZXIgPj4gdXJsOwotICAgICAgICBpZiAoIXVybCkKLSAgICAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpc01lZGlh
U291cmNlOwotICAgICAgICBkZWNvZGVyID4+IGlzTWVkaWFTb3VyY2U7Ci0gICAgICAgIGlmICgh
aXNNZWRpYVNvdXJjZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAg
ICAgc3RkOjpvcHRpb25hbDxib29sPiBpc01lZGlhU3RyZWFtOwotICAgICAgICBkZWNvZGVyID4+
IGlzTWVkaWFTdHJlYW07Ci0gICAgICAgIGlmICghaXNNZWRpYVN0cmVhbSkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29u
dGVudFR5cGU+PiB0eXBlc1JlcXVpcmluZ0hhcmR3YXJlOwotICAgICAgICBkZWNvZGVyID4+IHR5
cGVzUmVxdWlyaW5nSGFyZHdhcmU7Ci0gICAgICAgIGlmICghdHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIHt7
IFdURk1vdmUoKnR5cGUpLCBXVEZNb3ZlKCp1cmwpLCAqaXNNZWRpYVNvdXJjZSwgKmlzTWVkaWFT
dHJlYW0sICp0eXBlc1JlcXVpcmluZ0hhcmR3YXJlIH19OworICAgICAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy50eXBlKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy51cmwpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmlzTWVkaWFTb3VyY2UpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmlzTWVkaWFTdHJlYW0pCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAgICYmIGRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAg
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlw
ZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk7CiAgICAgfQogfTsK
IApAQCAtMjc1LDYgKzI3MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8
Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3
YXJlU3VwcG9ydCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
Y29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFD
YXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXNDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhUGxheWVyU2Vla2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogCkBAIC02MzQsNiArNjM1
LDEyIEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxk
Q2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0OworICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKCkgY29uc3Q7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0OworICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoKSBjb25zdDsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNv
bnN0IExvZ2dlciYgbWVkaWFQbGF5ZXJMb2dnZXIoKTsKICAgICBjb25zdCB2b2lkKiBtZWRpYVBs
YXllckxvZ0lkZW50aWZpZXIoKSB7IHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5oCmluZGV4IDYyNjdiODMzMjEyOTliMTNlYTdlZDJhNDA1ZTRjYmI4NWU0NDg4
M2IuLmY0YjM1ZDc2OWQ3Mjc5N2EyZmFkNDVlYjc4MmJkZDI1YzkyNmNkYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTMy
OSw2ICszMjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXROZWVkc1JlbmRlcmluZ01vZGVD
aGFuZ2VkKCk7CiAgICAgdm9pZCByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogCisgICAgYm9vbCBs
b2FkaW5nTWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdNZXRhZGF0YTsgfQorCiBw
cml2YXRlOgogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
CmluZGV4IGFhY2Q3MzdiOTYzNThjMGY1M2NlMzc3YTU5NjU0MDU2YTljYjIwY2MuLmY0Yjc0YzEx
YTJmZDIyNTkwYTkyMTZhNGQ5MTQzNTE5YTBlMjA3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
QEAgLTM1MCw2ICszNTAsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFt
ZU1ldGFkYXRhPiB2aWRlb0ZyYW1lTWV0YWRhdGEoKSBmaW5hbCB7IHJldHVybiBzdGQ6OmV4Y2hh
bmdlKG1fdmlkZW9GcmFtZU1ldGFkYXRhLCB7IH0pOyB9CiAgICAgdm9pZCBjaGVja05ld1ZpZGVv
RnJhbWVNZXRhZGF0YSgpOwogCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBhbGxUcmFja3NBcmVQ
bGF5YWJsZSgpIGNvbnN0OworICAgIGJvb2wgdHJhY2tJc1BsYXlhYmxlKEFWQXNzZXRUcmFjayop
IGNvbnN0OworCiAgICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRh
aW5QdHI8QVZQbGF5ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4g
bV9hdlBsYXllckl0ZW07CkBAIC00NDcsNyArNDUwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
Y2FjaGVkQ2FuUGxheUZhc3RGb3J3YXJkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FjaGVkQ2Fu
UGxheUZhc3RSZXZlcnNlIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRBc3Nl
dElzTG9hZGVkIHsgZmFsc2UgfTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRUcmFja3NBcmVM
b2FkZWQgeyBmYWxzZSB9OwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxib29sPiBtX2NhY2hl
ZEFzc2V0SXNQbGF5YWJsZTsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNo
ZWRUcmFja3NBcmVQbGF5YWJsZTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9zaG91bGRPYnNlcnZlVGltZUNvbnRyb2xTdGF0dXMgeyBmYWxzZSB9OwogICAgIG11dGFi
bGUgc3RkOjpvcHRpb25hbDxib29sPiBtX3RyYWNrc0FyZVBsYXlhYmxlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggN2FiODkxMWYwNGU4ZjdlZjI0NTEwOGI3NTcwNzk0NTY3ZTRlYzNlZi4u
MThmY2ZhMmY3YjQ3NTYyZDE2ZmQ5MGFiNTFiZmMwMTQyNmU0MTc2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0zOCwxMCArMzgsMTIgQEAKICNpbXBvcnQgIkNETVNlc3Npb25BVkZvdW5k
YXRpb25PYmpDLmgiCiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29sb3JTcGFj
ZUNHLmgiCisjaW1wb3J0ICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29va2ll
LmgiCiAjaW1wb3J0ICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNpbXBvcnQgIkV4dGVu
c2lvbnNHTC5oIgogI2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCisjaW1wb3J0ICJGb3VyQ0Mu
aCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNl
c3Npb25WVC5oIgogI2ltcG9ydCAiSW5iYW5kQ2hhcHRlclRyYWNrUHJpdmF0ZUFWRk9iakMuaCIK
QEAgLTY2LDYgKzY4LDcgQEAKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU291
cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24u
aCIKKyNpbXBvcnQgIlVUSVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJP
YmpDLmgiCiAjaW1wb3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldl
YkNvcmVBVkZSZXNvdXJjZUxvYWRlci5oIgpAQCAtOTQ4LDYgKzk1MSwzOCBAQCB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3Qg
VVJMJiB1cmwsIFJldAogICAgICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6
QVZVUkxBc3NldFVzZXNOb1BlcnNpc3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgYXV0byBh
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcygpOworICAgIGlmIChhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyAmJiBQQUw6OmNh
bkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSgp
KSB7CisgICAgICAgIGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdF0pOworICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDooTlNTdHJpbmcgKilVVElG
cm9tTUlNRVR5cGUodHlwZSldOworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5n
ZXQoKSBmb3JLZXk6QVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5XTsKKyAgICB9
CisKKyAgICBhdXRvIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBwbGF5ZXIoKS0+YWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIGlmIChhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
ICYmIFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29k
ZWNUeXBlc0tleSgpKSB7CisgICAgICAgIGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOworICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlw
ZS52YWx1ZSldOworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JL
ZXk6QVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleV07CisgICAgfQorCisgICAg
YXV0byBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMoKTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyAmJiBQQUw6
OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNL
ZXkoKSkgeworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUp
XTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJM
QXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXldOworICAgIH0KKworICAgIGF1dG8gYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcygpOworICAgIGlmIChhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMg
JiYgUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZv
cm1hdHNLZXkoKSkgeworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxl
QXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAo
dHlwZS52YWx1ZSldOworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBm
b3JLZXk6QVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5XTsKKyAgICB9CisKICAg
ICBpZiAod2lsbFVzZVdlYk1Gb3JtYXRSZWFkZXIpCiAgICAgICAgIHJlZ2lzdGVyRm9ybWF0UmVh
ZGVySWZOZWNlc3NhcnkoKTsKIApAQCAtMTc4OSw2ICsxODI0LDc2IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0QXNzZXQoUmV0YWluUHRyPGlkPiYmIGFzc2V0
KQogICAgIHByb2Nlc3NDaGFwdGVyVHJhY2tzKCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Ym9vbD4g
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJhY2tzQXJlUGxheWFibGUo
KSBjb25zdAoreworICAgIGlmIChtX2F2UGxheWVySXRlbSkgeworICAgICAgICBmb3IgKEFWUGxh
eWVySXRlbVRyYWNrICp0cmFjayBpbiBbbV9hdlBsYXllckl0ZW0gdHJhY2tzXSkgeworICAgICAg
ICAgICAgaWYgKCF0cmFja0lzUGxheWFibGUodHJhY2suYXNzZXRUcmFjaykpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgaWYgKCFtX2F2QXNzZXQgfHwgW21fYXZBc3NldCBzdGF0dXNPZlZhbHVlRm9y
S2V5OkAidHJhY2tzIiBlcnJvcjpOVUxMXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgZm9yIChBVkFzc2V0VHJhY2sgKmFzc2V0
VHJhY2sgOiBbbV9hdkFzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgaWYgKCF0cmFja0lzUGxheWFi
bGUoYXNzZXRUcmFjaykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnRyYWNrSXNQbGF5YWJsZShBVkFzc2V0VHJhY2sqIHRyYWNrKSBjb25zdAoreworICAgIGlmIChw
bGF5ZXIoKS0+c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSAmJiAhYXNzZXRUcmFja01lZXRz
SGFyZHdhcmVEZWNvZGVSZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRlbnRU
eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgYXV0byBkZXNjcmlwdGlvbiA9IHJldGFpblB0cigoX19icmlkZ2UgQ01Gb3JtYXREZXNj
cmlwdGlvblJlZil0cmFjay5mb3JtYXREZXNjcmlwdGlvbnMuZmlyc3RPYmplY3QpOworICAgIGlm
ICghZGVzY3JpcHRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gbWVkaWFU
eXBlID0gUEFMOjpDTUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGRlc2NyaXB0aW9uLmdl
dCgpKTsKKyAgICBhdXRvIGNvZGVjVHlwZSA9IEZvdXJDQyB7IFBBTDo6Q01Gb3JtYXREZXNjcmlw
dGlvbkdldE1lZGlhU3ViVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkgfTsKKyAgICBzd2l0Y2ggKFBB
TDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkpIHsK
KyAgICBjYXNlIGtDTU1lZGlhVHlwZV9WaWRlbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsK
KyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xP
RyhMT0dJREVOVElGSUVSLCAiVmlkZW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5
cGUsICInIG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOwor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9BdWRpbzogeworICAgICAgICBhdXRvJiBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoKTsKKyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgJiYgIWFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAg
IEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAiQXVkaW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICci
LCBjb2RlY1R5cGUsICInIG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9j
a2luZyIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9UZXh0OgorICAgIGNhc2Ug
a0NNTWVkaWFUeXBlX0Nsb3NlZENhcHRpb246CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfU3VidGl0
bGU6IHsKKyAgICAgICAgYXV0byYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gcGxh
eWVyKCktPmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworICAgICAgICBpZiAoYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzICYmICFhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJ
REVOVElGSUVSLCAiVGV4dCB0cmFjayB3aXRoIGNvZGVjIHR5cGUgJyIsIGNvZGVjVHlwZSwgIicg
bm90IGNvbnRhaW5lZCBpbiBhbGxvd2VkIGNvZGVjIGxpc3Q7IGJsb2NraW5nIik7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIGNhc2Uga0NNTWVkaWFUeXBlX011eGVkOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX1Rp
bWVDb2RlOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX01ldGFkYXRhOgorICAgICAgICAvLyBOby1v
cAorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBFUlJPUl9MT0coTE9HSURFTlRJ
RklFUiwgIlRyYWNrIHdpdGggdW51ZXhwZWN0ZWQgbWVkaWEgdHlwZSAnIiwgRm91ckNDKG1lZGlh
VHlwZSksICInIG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBpZ25vcmluZyIp
OworICAgIHJldHVybiB0cnVlOworfQorCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246
OkFzc2V0U3RhdHVzIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3Rh
dHVzKCkgY29uc3QKIHsKICAgICBpZiAoIW1fYXZBc3NldCkKQEAgLTE4MTQsMjMgKzE5MTksMjEg
QEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjoKICAgICAgICAgbV9jYWNoZWRBc3NldElzTG9hZGVk
ID0gdHJ1ZTsKICAgICB9CiAKLSAgICBpZiAoIXBsYXllcigpLT5zaG91bGRDaGVja0hhcmR3YXJl
U3VwcG9ydCgpKQotICAgICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gdHJ1ZTsKKyAgICAvLyBt
X2xvYWRpbmdNZXRhZGF0YSB3aWxsIGJlIGZhbHNlIHVudGlsIGFsbCB0cmFja3MnIHByb3BlcnRp
ZXMgaGF2ZSBmaW5pc2hlZCBsb2FkaW5nLgorICAgIC8vIFNlZTogYmVnaW5Mb2FkaW5nTWV0YWRh
dGEoKS4KKyAgICBpZiAobG9hZGluZ01ldGFkYXRhKCkpCisgICAgICAgIHJldHVybiBNZWRpYVBs
YXllckFWQXNzZXRTdGF0dXNMb2FkaW5nOwogCi0gICAgaWYgKCFtX3RyYWNrc0FyZVBsYXlhYmxl
KSB7Ci0gICAgICAgIG1fdHJhY2tzQXJlUGxheWFibGUgPSB0cnVlOwotICAgICAgICBmb3IgKEFW
QXNzZXRUcmFjayAqdHJhY2sgaW4gW21fYXZBc3NldCB0cmFja3NdKSB7Ci0gICAgICAgICAgICBp
ZiAoIWFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHRyYWNrLCBwbGF5
ZXIoKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSkpIHsKLSAg
ICAgICAgICAgICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBpZiAoIW1fY2FjaGVkVHJh
Y2tzQXJlUGxheWFibGUpIHsKKyAgICAgICAgbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSA9IGFs
bFRyYWNrc0FyZVBsYXlhYmxlKCk7CisgICAgICAgIGlmICghbV9jYWNoZWRUcmFja3NBcmVQbGF5
YWJsZSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkaW5n
OwogICAgIH0KIAogICAgIGlmICghbV9jYWNoZWRBc3NldElzUGxheWFibGUpCiAgICAgICAgIG1f
Y2FjaGVkQXNzZXRJc1BsYXlhYmxlID0gW1ttX2F2QXNzZXQgdmFsdWVGb3JLZXk6QCJwbGF5YWJs
ZSJdIGJvb2xWYWx1ZV07CiAKLSAgICBpZiAoKm1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlICYmIG1f
dHJhY2tzQXJlUGxheWFibGUudmFsdWUoKSkKKyAgICBpZiAoKm1fY2FjaGVkQXNzZXRJc1BsYXlh
YmxlICYmICptX2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxlKQogICAgICAgICByZXR1cm4gTWVkaWFQ
bGF5ZXJBVkFzc2V0U3RhdHVzUGxheWFibGU7CiAKICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFz
c2V0U3RhdHVzTG9hZGVkOwpAQCAtMTkzNSw2ICsyMDM4LDkgQEAgTWVkaWFQbGF5ZXI6OlN1cHBv
cnRzVHlwZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVB
bmRDb2QKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3Vw
cG9ydGVkOwogI2VuZGlmCiAKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRD
b2RlY1R5cGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpKQor
ICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7
CisKICAgICBhdXRvIHN1cHBvcnRlZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24o
KS5jYW5EZWNvZGVUeXBlKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CiAgICAgaWYgKHN1cHBvcnRl
ZCAhPSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkKICAgICAgICAgcmV0
dXJuIHN1cHBvcnRlZDsKQEAgLTM3NTIsNyArMzg1OCw3IEBAIE5TQXJyYXkqIGl0ZW1LVk9Qcm9w
ZXJ0aWVzKCkKIAogTlNBcnJheSogYXNzZXRUcmFja01ldGFkYXRhS2V5TmFtZXMoKQogewotICAg
IHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6
QCJ0b3RhbFNhbXBsZURhdGFMZW5ndGgiLCBAIm1lZGlhVHlwZSIsIEAiZW5hYmxlZCIsIEAicHJl
ZmVycmVkVHJhbnNmb3JtIiwgQCJuYXR1cmFsU2l6ZSIsIG5pbF07CisgICAgc3RhdGljIE5TQXJy
YXkqIGtleXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAInRvdGFsU2FtcGxl
RGF0YUxlbmd0aCIsIEAibWVkaWFUeXBlIiwgQCJlbmFibGVkIiwgQCJwcmVmZXJyZWRUcmFuc2Zv
cm0iLCBAIm5hdHVyYWxTaXplIiwgQCJmb3JtYXREZXNjcmlwdGlvbnMiLCBuaWxdOwogICAgIHJl
dHVybiBrZXlzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcAppbmRleCA1ZGE5MWVlMGVhYjRmZGZmOTIxZmM2Nzg3YWEyMzQ0Y2QxY2Y0ZjE4Li4xNDJm
YWYwNmVkYTRmMTlkZDc0ZDYwODQxZDdiZTQ1OGMyODcwODFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTU4OCw2ICs1ODgsNDggQEAgRXhjZXB0
aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVmYXVsdEF1ZGlvQ29udGV4dFNhbXBs
ZVJhdGUoZmxvYXQgc2FtcGwKICAgICByZXR1cm4geyB9OwogfQogCitFeGNlcHRpb25Pcjx2b2lk
PiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhjb25zdCBT
dHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitF
eGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNldHRp
bmdzKCkuc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyh0eXBlcyk7CisgICAgcmV0dXJuIHsgfTsK
K30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9w
YWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHModHlwZXMpOworICAg
IHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBp
ZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJv
ciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
KHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5h
bFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5n
JiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXModHlwZXMpOworICAgIHJldHVybiB7IH07Cit9CisKKwor
CiAvLyBJZiB5b3UgYWRkIHRvIHRoaXMgY2xhc3MsIG1ha2Ugc3VyZSB5b3UgYXJlIG5vdCBkdXBs
aWNhdGluZyBmdW5jdGlvbmFsaXR5IGluIHRoZSBnZW5lcmF0ZWQKIC8vIGJhc2UgY2xhc3MgSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCBhbmQgdGhhdCB5b3UgdXBkYXRlIHRoZSBCYWNrdXAgY2xh
c3MgZm9yIHRlc3QgcmVwcm9kdWNhYmlsaXR5LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGYxYTdlMjIxMTIwZTcxYTk2OTkxYjMyMzNhMzg1NDMwMzE4
OWQ1YjAuLmZiOTRjZTdkZGJlZjNiYzU1YmIzNzYzMWFlZGUxNmMzZTE1MmU3OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMjIsNiArMTIyLDEyIEBA
IHB1YmxpYzoKICAgICAvLyBBdWRpb0NvbnRleHQKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRE
ZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCk7CiAKKyAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYp
OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoY29u
c3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcyhjb25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5nJik7CisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGJiNmI4ZjUyMTEyZGQ5OTRjYzZiNzc4MzIz
MTE5OGU1OTI4YmZjMWUuLmJjNDAxOTUwYTk0NzI4Njk3OGMwMDhhZmViNjFmNDkwZjhhZGNhMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtOTUs
NCArOTUsMTAgQEAgZW51bSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5IHsgIkNvbnRlbnQi
LCAiU3lzdGVtIiB9OwogCiAgICAgLy8gQXVkaW9Db250ZXh0CiAgICAgdW5kZWZpbmVkIHNldERl
ZmF1bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZsb2F0IHNhbXBsZVJhdGUpOworCisgICAgdW5k
ZWZpbmVkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKERPTVN0cmluZz8gdHlwZXMpOwor
ICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKERPTVN0cmluZz8gdHlwZXMp
OworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKERPTVN0cmluZz8g
dHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKERPTVN0
cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMoRE9NU3RyaW5nPyB0eXBlcyk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggMWZiZTFmOTMz
ZDA5NTAwNmY0MmZkOWRjZmM2ZjJhNDQyYTc2NDA5My4uOTMxNmI2NmFiMzU5NjZlNWI2NDVkZDFj
N2NlMGU4MTJmMjA2YTYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC03Niw2ICs3Niw4IEBAIGNsYXNz
IEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ7CiAj
ZW5kaWYKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOworCitzdHJ1Y3QgRm91ckNDOwogfQogCiAj
aWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTI5Myw2ICsyOTUsMTIgQEAgcHJpdmF0ZToKICAgICBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJT
aG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogCisgICAgY29uc3Qgc3Rk
OjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzOyB9OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9u
LmFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7IH07CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0
b3I8V2ViQ29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsg
fTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiYgYWxs
b3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJh
dGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOyB9OworICAgIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlw
ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzOyB9OworCiAgICAgdm9pZCBzdGFydFVwZGF0ZUNhY2hlZFN0YXRlTWVz
c2FnZVRpbWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShib29sID0gZmFsc2UpOwog
ICAgIHZvaWQgc2VuZENhY2hlZFN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbi5oCmluZGV4IDRhY2I0MGUyYzA5ZWM3NWNlOWVlYmI3MzFlMWRkMWM5YzYzMjE1MGYu
LjRmZDY2MWI3ZDA2NzBkYzUwZDFjNzhhZGI1ZjhiYWYyOTYyZWUxM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZW50VHlwZS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRm91ckNDLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVRleHRUcmFj
ay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MCw2ICs0MSwxMiBAQCBzdHJ1Y3QgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gewogICAgIFN0cmluZyBzb3VyY2VBcHBsaWNhdGlv
bklkZW50aWZpZXI7CiAgICAgU3RyaW5nIG5ldHdvcmtJbnRlcmZhY2VOYW1lOwogICAgIFZlY3Rv
cjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dl
ZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3Vy
Q0M+PiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzOworCiAgICAgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3Rp
Y3M7CiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICBWZWN0b3I8V2ViQ29yZTo6UGxhdGZv
cm1UZXh0VHJhY2tEYXRhPiBvdXRPZkJhbmRUcmFja0RhdGE7CkBAIC01OCw2ICs2NSwxMSBAQCBz
dHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gewogICAgICAgICBlbmNv
ZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKICAgICAgICAgZW5jb2RlciA8PCBu
ZXR3b3JrSW50ZXJmYWNlTmFtZTsKICAgICAgICAgZW5jb2RlciA8PCBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDb2RlY1R5
cGVzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7CisgICAg
ICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsKKyAgICAgICAgZW5jb2Rl
ciA8PCBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CiAgICAgICAgIGVuY29kZXIgPDwg
cHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykK
ICAgICAgICAgZW5jb2RlciA8PCBvdXRPZkJhbmRUcmFja0RhdGE7CkBAIC03MCw4NiArODIsMjcg
QEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHsKICAgICB9CiAK
ICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxS
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbj4gZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJlbW90ZU1lZGlh
UGxheWVyUHJveHlDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHsKLSAgICAgICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IHJlZmVycmVyOwotICAgICAgICBkZWNvZGVyID4+IHJlZmVy
cmVyOwotICAgICAgICBpZiAoIXJlZmVycmVyKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gdXNlckFnZW50OwotICAgICAg
ICBkZWNvZGVyID4+IHVzZXJBZ2VudDsKLSAgICAgICAgaWYgKCF1c2VyQWdlbnQpCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5n
PiBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gc291cmNl
QXBwbGljYXRpb25JZGVudGlmaWVyOwotICAgICAgICBpZiAoIXNvdXJjZUFwcGxpY2F0aW9uSWRl
bnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3Rk
OjpvcHRpb25hbDxTdHJpbmc+IG5ldHdvcmtJbnRlcmZhY2VOYW1lOwotICAgICAgICBkZWNvZGVy
ID4+IG5ldHdvcmtJbnRlcmZhY2VOYW1lOwotICAgICAgICBpZiAoIW5ldHdvcmtJbnRlcmZhY2VO
YW1lKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4+IG1lZGlhQ29udGVudFR5cGVzUmVx
dWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAgICBkZWNvZGVyID4+IG1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAgICBpZiAoIW1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBwcmVmZXJyZWRB
dWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgZGVjb2RlciA+PiBwcmVmZXJyZWRBdWRpb0No
YXJhY3RlcmlzdGljczsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGlj
cykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSNpZiBFTkFCTEUoQVZGX0NB
UFRJT05TKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpQbGF0Zm9ybVRl
eHRUcmFja0RhdGE+PiBvdXRPZkJhbmRUcmFja0RhdGE7Ci0gICAgICAgIGRlY29kZXIgPj4gb3V0
T2ZCYW5kVHJhY2tEYXRhOwotICAgICAgICBpZiAoIW91dE9mQmFuZFRyYWNrRGF0YSkKLSAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKLQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZG9jdW1lbnRTZWN1cml0eU9yaWdpbjsK
LSAgICAgICAgZGVjb2RlciA+PiBkb2N1bWVudFNlY3VyaXR5T3JpZ2luOwotICAgICAgICBpZiAo
IWRvY3VtZW50U2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGxvZ0lkZW50aWZpZXI7Ci0gICAg
ICAgIGRlY29kZXIgPj4gbG9nSWRlbnRpZmllcjsKLSAgICAgICAgaWYgKCFsb2dJZGVudGlmaWVy
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPGJvb2w+IHNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsKLSAgICAgICAgZGVjb2RlciA+PiBz
aG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Ci0gICAgICAgIGlmICghc2hvdWxkVXNlUGVyc2lzdGVu
dENhY2hlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGlzVmlkZW87Ci0gICAgICAgIGRlY29kZXIgPj4gaXNWaWRlbzsKLSAg
ICAgICAgaWYgKCFpc1ZpZGVvKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQ7Ci0g
ICAgICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZDsKLSAgICAgICAgaWYg
KCFyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICByZXR1cm4ge3sKLSAgICAgICAgICAgIFdURk1vdmUoKnJlZmVycmVy
KSwKLSAgICAgICAgICAgIFdURk1vdmUoKnVzZXJBZ2VudCksCi0gICAgICAgICAgICBXVEZNb3Zl
KCpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpLAotICAgICAgICAgICAgV1RGTW92ZSgqbmV0
d29ya0ludGVyZmFjZU5hbWUpLAotICAgICAgICAgICAgV1RGTW92ZSgqbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpLAotICAgICAgICAgICAgV1RGTW92ZSgqcHJlZmVy
cmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpLAorICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUo
Y29uZmlndXJhdGlvbi5yZWZlcnJlcikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNv
bmZpZ3VyYXRpb24udXNlckFnZW50KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29u
ZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpCisgICAgICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm5ldHdvcmtJbnRlcmZhY2VOYW1lKQorICAgICAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5tZWRpYUNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNv
bmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAgICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpCisgICAg
ICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShj
b25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcykKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJp
c3RpY3MpCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICAgICAgICAgIFdURk1vdmUoKm91
dE9mQmFuZFRyYWNrRGF0YSksCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1
cmF0aW9uLm91dE9mQmFuZFRyYWNrRGF0YSkKICNlbmRpZgotICAgICAgICAgICAgV1RGTW92ZSgq
ZG9jdW1lbnRTZWN1cml0eU9yaWdpbiksCi0gICAgICAgICAgICAqbG9nSWRlbnRpZmllciwKLSAg
ICAgICAgICAgICpzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUsCi0gICAgICAgICAgICAqaXNWaWRl
bywKLSAgICAgICAgICAgICpyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkLAotICAgICAgICB9fTsK
KyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uZG9jdW1lbnRTZWN1
cml0eU9yaWdpbikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24u
bG9nSWRlbnRpZmllcikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRp
b24uc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uZmlndXJhdGlvbi5pc1ZpZGVvKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUo
Y29uZmlndXJhdGlvbi5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKTsKICAgICB9CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5kZXggNThmYzFlNGVlMjU1ZWQ1ODMwYzk5NmRm
ZTY4YmYyYWJkMzUzZWFmOC4uN2M5ZDQ1NjlhNGU1MGIwNzEzYTc3YThiNGFjMjQwZmFlNDZkZGQx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29udGVudFR5cGVVdGlsaXRpZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtMTY2LDYgKzE2NywxMiBAQCBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNyZWF0
ZVJlbQogICAgIGF1dG8gZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IHBsYXllci0+ZG9jdW1lbnRT
ZWN1cml0eU9yaWdpbigpOwogICAgIHByb3h5Q29uZmlndXJhdGlvbi5kb2N1bWVudFNlY3VyaXR5
T3JpZ2luID0gZG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKIAorICAgIHByb3h5Q29uZmlndXJhdGlv
bi5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29kZWNUeXBl
cyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworICAgIHByb3h5Q29uZmlndXJh
dGlvbi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gcGxheWVyLT5hbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICBwcm94eUNv
bmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gcGxheWVyLT5hbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKwogICAgIGF1dG8gaWRlbnRpZmllciA9IE1l
ZGlhUGxheWVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAgICBncHVQcm9jZXNzQ29ubmVjdGlv
bigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWRlbnRpZmllciwgcmVtb3RlRW5naW5lSWRlbnRpZmll
ciwgcHJveHlDb25maWd1cmF0aW9uKSwgMCk7CiAKQEAgLTIwMiw2ICsyMDksMTAgQEAgTWVkaWFQ
bGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlw
ZUFuZENvZGVjcyhNZWRpYVAKICAgICBpZiAocGFyYW1ldGVycy5pc01lZGlhU3RyZWFtKQogICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CiAj
ZW5kaWYKKworICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJl
cXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXMsIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcykpCisgICAgICAgIHJl
dHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKKwogICAgIHJl
dHVybiB0eXBlQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllcikuc3VwcG9ydHNUeXBlQW5kQ29k
ZWNzKHBhcmFtZXRlcnMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IGI4ZjhkZTY3ZDEyYTYzZjgyM2ExMDUxMjlmMDk3MTI5NWU5OWQy
YjkuLjQ1NWNhZTc1ZGFhNDliNTAzY2I0OGVmN2M1NzRkOTBkMmYxNzIzZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MTE2LDYgKzQxMTYs
MTIgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKICAgICAgICAgc2V0dGluZ3Muc2V0TWF0aE1MRW5hYmxlZChmYWxzZSk7
CiAjZW5kaWYKICAgICAgICAgc2V0dGluZ3Muc2V0UGRmSlNWaWV3ZXJFbmFibGVkKHRydWUpOwor
CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHN0b3JlLmdl
dFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYUNvbnRhaW5lclR5cGVz
QWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjptZWRpYUNvZGVjVHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZUtleSgp
KSk7CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoc3RvcmUu
Z2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhVmlkZW9Db2RlY0lE
c0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6bWVkaWFBdWRpb0NvZGVjSURzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1v
ZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlh
Q2FwdGlvbkZvcm1hdFR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOwogICAg
IH0KIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNTU4ZWVmMmQz
ZTA0NDBlMzU5ZWZmMjU0OTg1ZDRkM2RmMTE4NDU4Li5iNjY5MDg3OWIyZTg0MTVmYjUzNjhhNmQ5
YWYxN2FjZWVhOWQyYjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDItMDcgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJl
c3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFs
IG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1l
ZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbDogQWRkZWQuCisgICAgICAgICogbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
bWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93
ZWQtY29kZWNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRp
YS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRt
bDogQWRkZWQuCisKIDIwMjItMDItMDcgIEFyY2FkeSBHb2xkbWludHMtT3Jsb3YgIDxhZ29sZG1p
bnRzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gUmVtb3ZlIGZhaWx1cmUgZXhwZWN0aW9u
cyBmb3IgbmV3bHkgcGFzc2luZyB0ZXN0cy4gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNTBkNTM5YTJmOTA2M2FhMmM1Y2EwOTM3NDg3NGY3MWU0ZGJlYmUyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3Mt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhudWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhudWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhudWxsKSkKK0VYUEVDVEVEICh2aWRlby5jYW5Q
bGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICdwcm9iYWJseScpIE9LCitFWFBF
Q1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAncHJv
YmFibHknKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGNh
bnBsYXkpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoImF2YzEiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlw
ZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAo
dmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAnJykgT0sKK1JV
Tih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChjYW5wbGF5KSBPSworUlVO
KGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5Iikp
CitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9w
dXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygi
dnAwOSxvcHVzIikpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29k
ZWNzPWF2YzEiKSA9PSAnJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8v
bXA0OyBjb2RlY3M9bXA0diIpID09ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rl
c3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxvcHVzIikpCitSVU4odmlkZW8uc3Jj
ID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3IpIE9LCitSVU4oaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKSkKK1JVTihpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1wNGEuNDAi
KSkKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChlcnJvcikgT0sK
K0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93
ZWQtY29kZWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgxYzdiYzUwMTkyZjRiYjg5YzgwZWFkY2YzNjdkMWQ0YWJiMGU4YmIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVj
cy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8dGl0bGU+bWVkaWEtYWxsb3dlZC1jb2RlY3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3Jj
PSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50
ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2aWRl
byA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhu
dWxsKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b2RlY1R5cGVzKG51bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5
cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICdwcm9iYWJseScpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAn
cHJvYmFibHknKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIn
KTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywg
J2NhbnBsYXknKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2lu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIiknKTsK
KyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcygiYWFjICIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsbXA0YS40MCIpJyk7CisgICAgICAgIHRlc3RFeHBlY3Rl
ZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICdwcm9iYWJs
eScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7
IGNvZGVjcz1tcDR2IiknLCAnJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQv
dGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2Nl
ZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOwor
CisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygi
dnAwOSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoIm9wdXMiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG9wdXMiKScpOworICAgICAgICB0ZXN0
RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCAn
Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsg
Y29kZWNzPW1wNHYiKScsICcnKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90
ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2Vl
ZCh2aWRlbywgJ2Vycm9yJyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisK
KyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAg
ICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJh
dmMxIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEcygib3B1cyIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdz
LnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsb3B1cyIpJyk7CisgICAgICAgIHJ1bign
dmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2Uu
cmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2
aWRlbywgJ2NhbnBsYXknKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOworICAgICAgICBy
dW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1w
NGEuNDAiKScpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0Iicp
OworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAn
ZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICBl
bmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42OThiMDVjODkzMzMwNGEyMDE5YzNlNDBhMTc0NDBlZTc4MDhhZWNjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51bGwpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJhdWRpby9tcDMiKSA9PSAnbWF5YmUnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlU
eXBlKCJ2aWRlby9tcDQiKSA9PSAnbWF5YmUnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50
L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygiYXVkaW8vbXAzIikpCitFWFBFQ1RFRCAodmlkZW8u
Y2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09ICdtYXliZScpIE9LCitFWFBFQ1RFRCAodmlkZW8u
Y2FuUGxheVR5cGUoInZpZGVvL21wNCIpID09ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250
ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IikpCitFWFBFQ1RFRCAodmlk
ZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09ICcnKSBPSworRVhQRUNURUQgKHZpZGVvLmNh
blBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9PSAnbWF5YmUnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJj
b250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mMmZmMmQ5OTZjMzU1M2ExMzRlYTNiNjM3NTYxNDAxNGMwN2E0YmU3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAg
LTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRs
ZT5tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRl
by10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxz
Jyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51bGwpJyk7CisgICAgICAgIHRl
c3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7Cisg
ICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21h
eWJlJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7Cisg
ICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5w
bGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVv
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpJyk7
CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywg
J21heWJlJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVv
L21wNCIpJywgJycpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0
IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVv
LCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAg
ICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9t
cDQiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9t
cDMiKScsICcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlk
ZW8vbXA0IiknLCAnbWF5YmUnKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90
ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2Vl
ZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZvckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisK
KyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2Vk
LWNvZGVjcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWEtc291cmNlLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjVjYzNi
ZDZjZTA4N2MyMDIwZWM5ZjhmMWZjYjA1ZTE5ZDAyMzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlz
VHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICd0cnVlJykgT0sKK0VY
UEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1w
NHYiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoImF2YzEiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKSkKK0VYUEVDVEVEIChNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScp
IE9LCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNv
ZGVjcz1tcDR2IikgPT0gJ2ZhbHNlJykgT0sKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNl
QnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1h
dmMxIikpCitURVNUKHNvdXJjZUJ1ZmZlci5jaGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1t
cDR2IikpIFRIUk9XUygiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4iKSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNU
eXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikgPT0gJ2ZhbHNlJykgT0sKK1RF
U1QobWVkaWFTb3VyY2UuYWRkU291cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikp
IFRIUk9XUygiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl
ZC4iKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlhN2E1MDRhNWYyMjE5NWRkMzhmN2Q4OWVkYjY2YWUwOTg4NTRmNjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFs
bG93ZWQtY29kZWNzLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzPC90
aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50
ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWls
VGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRl
bycpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5p
c1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsIHRydWUpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBj
b2RlY3M9bXA0diIpJywgdHJ1ZSk7CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpJyk7CisgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOwor
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KCJhdmMxLG1wNGEuNDAiKScpOworCisgICAgICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2Uu
aXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsg
Y29kZWNzPW1wNHYiKScsIGZhbHNlKTsKKworICAgICAgICBtZWRpYVNvdXJjZSA9IG5ldyBNZWRp
YVNvdXJjZSgpOworICAgICAgICB2aWRlby5zcmNPYmplY3QgPSBtZWRpYVNvdXJjZTsKKyAgICAg
ICAgYXdhaXQgd2FpdEZvcihtZWRpYVNvdXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBy
dW4oJ3NvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0
OyBjb2RlY3M9YXZjMSIpJyk7CisgICAgICAgIHRlc3RFeGNlcHRpb24oJ3NvdXJjZUJ1ZmZlci5j
aGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAnIk5vdFN1cHBvcnRlZEVycm9y
OiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIicpOworCisgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScpOwor
ICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVj
SURzKCJvcHVzIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQo
J01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywg
ZmFsc2UpOworCisgICAgICAgIHRlc3RFeGNlcHRpb24oJ21lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhl
IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiInKTsKKworICAgICAgICBlbmRUZXN0KCk7Cisg
ICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQt
Y29udGFpbmVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFlOTY2OWZiOGJkMjk4MTc5Y2Vl
ZGFiMmM3YWY0YjNiYjA5MzFkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMobnVsbCkpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9y
dGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKSkKK0VYUEVDVEVEIChNZWRp
YVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpID09ICd0cnVlJykgT0sKK1JVTihp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoInZpZGVvL3dl
Ym0iKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIp
ID09ICdmYWxzZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRh
aW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzQ5YTI5YTY3OTMxNmQ2Zjc2YmMxYjFmMjNjZGE3NDVh
NWVkOTMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApAQCAtMCwwICsxLDMwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1h
bGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgYXN5bmMgZXZlbnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0
ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0
cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzKCJ2aWRlby9tcDQiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIiknKTsK
KyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVv
L21wNCIpJywgZmFsc2UpOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMg
Yi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCmluZGV4IGEzYjZjYjdjMzE3MmYwMTE3
MzJkZDk5OWFhZjdiNDQzNjVjNmRiNWUuLjNjMDY3ZTBmOWQ3NTMwMTVjOWEzNjI5NDRlNzVhMzY2
ZGVlNzg0ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdGVzdC5qcwpAQCAtMjE3LDE2ICsyMTcsMzIgQEAg
ZnVuY3Rpb24gd2FpdEZvckV2ZW50V2l0aFRpbWVvdXQoZWxlbWVudCwgdHlwZSwgdGltZSwgbWVz
c2FnZSkgewogICAgIH0pOwogfQogCi1mdW5jdGlvbiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIHNp
bGVudCkgeworZnVuY3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBzaWxlbnQsIHN1Y2Nlc3Mp
IHsKICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgIGVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBldmVudCA9PiB7Ci0gICAgICAgICAgICBpZiAoIXNpbGVu
dCkKKyAgICAgICAgICAgIGlmIChzaWxlbnQpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGV2
ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmIChzdWNjZXNzICE9PSB1bmRlZmluZWQpCisgICAgICAgICAgICAgICAgbG9nUmVzdWx0
KHN1Y2Nlc3MsIGBFVkVOVCgke2V2ZW50LnR5cGV9KWApOworICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShgRVZFTlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7CiAgICAgICAgIH0sIHsgb25jZTog
dHJ1ZSB9KTsKICAgICB9KTsKIH0KIAorZnVuY3Rpb24gd2FpdEZvckFuZFN1Y2NlZWQoZWxlbWVu
dCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVl
KTsKK30KKworZnVuY3Rpb24gd2FpdEZvckFuZEZhaWwoZWxlbWVudCwgdHlwZSkgeworICAgIHJl
dHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVlKTsKK30KKwogZnVuY3Rpb24g
d2FpdEZvckV2ZW50T25jZShldmVudE5hbWUsIGZ1bmMsIGVuZGl0KQogewogICAgIHdhaXRGb3JF
dmVudChldmVudE5hbWUsIGZ1bmMsIGVuZGl0LCB0cnVlKQo=
</data>
<flag name="commit-queue"
          id="478559"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451764</attachid>
            <date>2022-02-11 18:04:35 -0800</date>
            <delta_ts>2022-02-11 18:26:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236245-20220211180434.patch</filename>
            <type>text/plain</type>
            <size>90753</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2MzUwZWZiYjIxYWFiM2U4MTc1OGZj
NzFlYWQzNTIwMjBjNGY4OWMuLmRmODRkYTQ5MmY5MDI2OTQyZTk4MzZiOTI1Yjg0NTYzZTQ3ZjNh
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNv
bnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0xMSAgRG9uIE9sbXN0ZWFkICA8ZG9u
Lm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gQ2hlY2sgZm9yIE1BUF9BTElH
TkVEIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZDYxNjk2ZDBlYjVlZjY2NmI4ZmVmZGQwM2MxM2Uz
YTE5N2M2ZWYyLi4yOTgwYTJmYmNjMmM3MzFhOTllNGEzOTFiOWZjYzY0MTdhZTlhZTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBj
b250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21lZGlh
LWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLWFsbG93ZWQt
Y29udGFpbmVycy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKKworICAgICAgICBBZGQg
c2V0dGluZ3MgYXQgdGhlIFdlYkNvcmUgbGV2ZWwgdG8gb3B0aW9uYWxseSBkZWNsYXJlIGEgbGlz
dCBvZiBjb250YWluZXIgdHlwZXMsCisgICAgICAgIHZpZGVvIGNvZGVjcywgYXVkaW8gY29kZWNz
LCBhbmQgY2FwdGlvbiBmb3JtYXRzIHRvIGFsbG93IHdoZW4gbG9hZGluZyBtZWRpYSB0aHJvdWdo
CisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYW5kIE1lZGlhU291cmNlLgorCisgICAgICAgIFRo
ZXJlIGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoZSBjb2RlYyBJRCwgdHlwaWNhbGx5IGEgZm91ci1j
aGFyYWN0ZXItY29kZSBlbWJlZGRlZAorICAgICAgICBpbiB0aGUgY29udGFpbmVyIGl0c2VsZiwg
ZG9lcyBub3QgbWF0Y2ggdGhlIFJGQzQyODEgY29kZWMgc3RyaW5nLiBOb3RhYmx5LCB0aGlzIGlz
IHRoZSBjYXNlCisgICAgICAgIHdpdGggIm1wNGEuNDAiIGFuZCAnYWFjICcuIFNvIHRoZSBzZXR0
aW5ncyBtdXN0IGluY2x1ZGUgYm90aCB0aGUgY29kZWMgSUQgYW5kIHRoZSBjb2RlYworICAgICAg
ICB0eXBlIGluIHN0cmluZyBmb3JtLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIEhU
TUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCkgYW5kIE1lZGlhU291cmNlOjppc1R5cGVTdXBw
b3J0ZWQoKQorICAgICAgICBhbmQgcmVqZWN0IENvbnRlbnRUeXBlcyB3aGljaCBkbyBub3QgY29u
Zm9ybSB0byB0aGUgYWxsb3dlZCB0eXBlcy4KKworICAgICAgICBRdWVyeSB0aGVzZSBsaXN0cyBp
biBNZWRpYVNvdXJjZTo6Y2hhbmdlVHlwZSgpIHRvIGRpc2FsbG93IHN3aXRjaGluZyB0byBhbiB1
bnN1cHBvcnRlZAorICAgICAgICBDb250ZW50VHlwZS4KKyAgICAgICAgCisgICAgICAgIElmIHRo
ZXNlIGxpc3RzIGFyZSBzZXQsIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgYXMgY3JlYXRpb24g
b3B0aW9ucy4KKworICAgICAgICBXaGVuIGEgbmV3IEFWQXNzZXRUcmFjayBpcyBsb2FkZWQsIHF1
ZXJ5IHRoZXNlIGxpc3RzIGFuZCBpZiB0aGUgdHJhY2sncyB0eXBlIGRvZXMgbm90CisgICAgICAg
IGNvbmZvcm0gdG8gdGhlIGFsbG93ZWQgdHlwZXMsIHN5bnRoZXNpemUgYW4gZXJyb3IgYW5kIGJs
b2NrIGZ1cnRoZXIgbG9hZGluZy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBv
cnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5
cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjphbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jh
c2U6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRlbnRUeXBlc1RvQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUeXBlTWVldHND
b250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRp
b25hbFN0cmluZ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpudWxsT3B0aW9uYWxGb3VyQ0NW
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5leHRCZXN0TWVkaWFFbmdp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVk
aWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Ojpsb2FkaW5nTWV0YWRhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRlbnRUeXBlc1RvQ29kZWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxs
VHJhY2tzQXJlUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tJc1BsYXlhYmxlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjphc3NldFRy
YWNrTWV0YWRhdGFLZXlOYW1lcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDIyLTAyLTExICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIGdyYW1tYXIgY2hlY2tp
bmcgb24gTWFjIENhdGFseXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMGE3ODdlMDU4NDA2NjFi
NDhiZjY3MGY2OTkzZjZmNGU4ZWFlMmJmMi4uMzZhOWRjODdjZjdiMjE1Mzk5YTA5MGU2YTkzMjI0
NWUzYzBmMDlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDIt
MDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRp
bmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRp
dmUgUG9ydGFsIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKwogMjAyMi0wMi0xMCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFN1cHBvcnQgYm90
aCB2ZXJzaW9ucyBvZiBTY3JlZW5DYXB0dXJlS2l0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmYTc0ODc4OTA0
ZGI0MDU4Zjc2YmZkZmNkMjk3ODFjYWM2ODVmMDA1Li5kYjhjNjU3ZDA0ZGU4ODk5OTQ3YjU2ZGYz
M2JmYTlhYjg1OTgyZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTA3ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0
byByZXN0cmljdCBtZWRpYSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBv
cnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBzdXBwb3J0c1R5
cGVBbmRDb2RlY3MoKSBjYWxscywgd2hpY2gKKyAgICAgICAgaXMgcHJvYmxlbWF0aWMgd2hlbiB0
aG9zZSByZXN1bHRzIGNhbiBjaGFuZ2UgZHVlIHRvIGEgY2hhbmdlIGluIHNldHRpbmdzLiBTbyBl
bmZvcmNlCisgICAgICAgIHRoZSBhbGxvd2VkIGNvZGVjIGFuZCBjb250YWluZXJzIHNldHRpbmdz
IGF0IHRoZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgbGV2ZWwuIEFsc28sCisgICAgICAgIHBh
c3MgdGhvc2Ugc2V0dGluZ3MgYWNyb3NzIHRoZSBHUFUgcHJvY2VzcyBib3VuZGFyeSB2aWEgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgRHJpdmUtYnkgZml4
OiByZWZhY3RvciBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZGVjb2RlKCkg
c28gYXMgbm90IHRvIHJlcXVpcmUKKyAgICAgICAgcmUtZGVjbGFyaW5nIHRoZSB0eXBlcyBvZiBl
dmVyeSBpdmFyLCBhbmQgZ3JlYXRseSBzaW1wbGlmeSB0aGUgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9u
Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDIyLTAyLTExICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIGdyYW1tYXIgY2hl
Y2tpbmcgb24gTWFjIENhdGFseXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBlNzljN2Q5MmQxMjhhODY2OGYzNGMzMjQx
ODUzOTE0NjMzMWYyZWNlLi40YWE2N2EzMTI5ODA0ZGE5ZmY4ZTZhNDQ5NDU5NmM0NjYxZmY5ZTE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXMueWFtbApAQCAtMTMyNiw2ICsxMzI2LDE0IEBAIE1heFBhcnNlRHVyYXRpb246CiAgICAgV2Vi
Q29yZToKICAgICAgIGRlZmF1bHQ6IC0xCiAKK01lZGlhQXVkaW9Db2RlY0lEc0FsbG93ZWRJbkNh
cHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUK
KyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAg
ICAgZGVmYXVsdDogJyJhYWMgLHphYWMscWFhYyxjYWFjLC5tcDMiJworCiBNZWRpYUNhcGFiaWxp
dGllc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOgpAQCAtMTMzNiw2ICsx
MzQ0LDMwIEBAIE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAg
ZGVmYXVsdDogZmFsc2UKIAorTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXNBbGxvd2VkSW5DYXB0aXZl
UG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4
cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRl
ZmF1bHQ6ICciYzYwOCx3dnR0IicKKworTWVkaWFDb2RlY1R5cGVzQWxsb3dlZEluQ2FwdGl2ZVBv
cnRhbE1vZGU6CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBv
c2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiAnIm1wNGEuNDAsYXZjMSInCisKK01lZGlhQ29udGFpbmVyVHlwZXNBbGxvd2VkSW5DYXB0
aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisg
IGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAg
IGRlZmF1bHQ6ICcidmlkZW8vbXA0LGF1ZGlvL21wNCx2aWRlby94LW00dixhdWRpby94LW00YSxh
dWRpby9tcDMsYXBwbGljYXRpb24veC1tcGVnVVJMLHZuZC5hcHBsZS5tcGVnVVJMIicKKwogTWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6CiAgIHR5cGU6IFN0cmluZwog
ICB3ZWJjb3JlRXhjbHVkZUZyb21JbnRlcm5hbFNldHRpbmdzOiB0cnVlCkBAIC0xNDU1LDYgKzE0
ODcsMTQgQEAgTWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50OgogICAgIFdlYkNv
cmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVZpZGVvQ29kZWNJRHNBbGxvd2VkSW5D
YXB0aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25l
CisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAg
ICAgIGRlZmF1bHQ6ICciYXZjMSx6YXZjLHFhdmMsY2F2YyInCisKIE1lbnVJdGVtRWxlbWVudEVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAKaW5kZXggNTk1ZTQyNTQyN2U4ZWJhYzlmNWFiNmFmMTBhNTczYzA1NDViYjRhYi4u
OTEyNzQ3ZjQwNmMyOTU5NDk5NzNiNWJiMTM0OWRiY2E2NzQxYzEzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiQ29udGVu
dFR5cGUuaCIKKyNpbmNsdWRlICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKQEAgLTkwOSw2ICs5MTAsMTcgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9y
dGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAgICBw
YXJhbWV0ZXJzLmlzTWVkaWFTb3VyY2UgPSB0cnVlOwogICAgIHBhcmFtZXRlcnMuY29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gV1RGTW92ZShjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpOwogCisgICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpKSB7Cisg
ICAgICAgIGF1dG8mIHNldHRpbmdzID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnNldHRp
bmdzKCk7CisgICAgICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlw
ZVJlcXVpcmVtZW50cyhjb250ZW50VHlwZSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzID0gc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICAgICAg
cGFyYW1ldGVycy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gc2V0dGluZ3MuYWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNJRHMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgICAg
IHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gc2V0dGluZ3MuYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7CisgICAgfQorCiAgICAgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKHBhcmFt
ZXRlcnMpOwogCiAgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMmIzY2RlMzYw
ODI0NzFjMTFjODdmY2Y2MWNjODFjYzM2MGMzOWQ5MC4uZTA2OTI3MGRmNmI2ZDFlN2JmYmMzZTIw
OTMyNzY3NmIyZDhhMzk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkF1
ZGlvVHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKQEAgLTM1NSw2ICszNTYsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU291
cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAvLyB0aGUgdHlw
ZXMgc3BlY2lmaWVkIChjdXJyZW50bHkgb3IgcHJldmlvdXNseSkgb2YgU291cmNlQnVmZmVyIG9i
amVjdHMgaW4gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mCiAgICAgLy8gdGhlIHBhcmVu
dCBtZWRpYSBzb3VyY2UsIHRoZW4gdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKHR5cGUp
OworCisgICAgYXV0byYgc2V0dGluZ3MgPSBkb2N1bWVudCgpLnNldHRpbmdzKCk7CisgICAgaWYg
KCFjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKGNvbnRl
bnRUeXBlLCBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpLCBzZXR0aW5ncy5h
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IgfTsKKwogICAgIGlmICghbV9wcml2YXRlLT5jYW5Td2l0Y2hUb1R5cGUo
Y29udGVudFR5cGUpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IgfTsKIApAQCAtNzg2LDYgKzc5MiwyNSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoSW5pdGlhbGl6YQogICAg
ICAgICAvLyA1LjEgSWYgdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgY29udGFpbnMgdHJhY2tz
IHdpdGggY29kZWNzIHRoZSB1c2VyIGFnZW50IGRvZXMgbm90IHN1cHBvcnQsCiAgICAgICAgIC8v
IHRoZW4gcnVuIHRoZSBhcHBlbmQgZXJyb3IgYWxnb3JpdGhtIHdpdGggdGhlIGRlY29kZSBlcnJv
ciBwYXJhbWV0ZXIgc2V0IHRvIHRydWUgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgICAgICAv
LyBOT1RFOiBUaGlzIGNoZWNrIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgU291cmNlQnVm
ZmVyUHJpdmF0ZS4KKyAgICAgICAgaWYgKGF1dG8mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMg
PSBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpKSB7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNr
cykgeworICAgICAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbiAmJiBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzLT5jb250YWlucyhGb3VyQ0M6OmZyb21TdHJpbmcoYXVk
aW9UcmFja0luZm8uZGVzY3JpcHRpb24tPmNvZGVjKCkpKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgYXBwZW5kRXJyb3IodHJ1ZSk7CisgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byYgYWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50
LnZpZGVvVHJhY2tzKSB7CisgICAgICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tJbmZvLmRlc2Ny
aXB0aW9uICYmIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMtPmNvbnRhaW5zKEZvdXJDQzo6ZnJv
bVN0cmluZyh2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbi0+Y29kZWMoKSkpKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhcHBlbmRFcnJvcih0cnVlKTsK
KyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIC8vIDUuMiBGb3IgZWFj
aCBhdWRpbyB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2lu
ZyBzdGVwczoKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5mbyA6IHNlZ21lbnQuYXVk
aW9UcmFja3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaAppbmRleCBhOTdhODc2MWU5NjQ4MTA4MTcyMWJlYzUyN2MwMTBiZTQ1
M2ZkMzk3Li45NzcyMTU4ZmE5YTU0NmI0Njc1NzkyN2EwMzFjMjhkMTBiZGE0MjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5o
CkBAIC0xMjcsNiArMTI3LDE0IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVk1l
ZGlhVHlwZUF1ZGlvIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk1lZGlhVHlwZUF1ZGlvKCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlw
ZU1ldGFkYXRhLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVk1lZGlhVHlwZU1ldGFkYXRhIFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVk1lZGlhVHlwZU1ldGFkYXRhKCkKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dh
YmxlVHlwZUNhdGVnb3JpZXNLZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxv
d2FibGVUeXBlQ2F0ZWdvcmllc0tleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFs
bG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9G
T1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2Rl
Y1R5cGVzS2V5LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9D
b2RlY1R5cGVzS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQXVk
aW9Db2RlY1R5cGVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5
LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVz
S2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5
cGVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXksIE5TU3RyaW5n
ICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSBQQUw6Omdl
dF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5KCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5LCBOU1N0cmluZyAq
KQogI2RlZmluZSBBVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5j
aW5nVVJJS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5
Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1v
ZGVDbGVhbkFwZXJ0dXJlLCBOU1N0cmluZyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggYmQ2ZWJiY2I5OTEzZGE4
YzEyYThiOTZhYTJiZTEyOGYwODE5Mzc3ZC4uNmRiOTI1YmFmM2U1MmUyZDJkYzFkYTg3ODU5YmZl
Zjg5NTQ4MDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xODIsNiArMTgyLDEwIEBAIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1
ZmZlckF1ZGlvCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2Nv
bFZlcnNpb25zS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lv
bkNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtaW5nS2V5RGVsaXZlcnlDb250ZW50
S2V5VHlwZSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSwgTlNTdHJpbmcg
KiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2Rl
Y1R5cGVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0Q2FjaGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxB
c3NldEluaGVyaXRVUklRdWVyeUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSwgTlNTdHJp
bmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tz
S2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2MTQyZDI0M2Ri
Mjg4MGM1MWVmZWY1OGEwNGM5YjBiYTc1M2Y2MDQxLi4yMDE5MDU2MmMxMzM2MTY4MzI1YTM0OThl
NWIzMWQ0MDgyZGI2N2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAwMyw2ICsyMDAzLDcgQEAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JTcGFjZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rlc3RpbmF0aW9uQ29sb3JTcGFj
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
OGQ3MzY4NWUwYmI0ZjRhNzU0ZWRlNDkxNzZhMzJiODBlMmQyZGJiLi43ODlkNzZlZmVmMzU3MzYw
ZjBhOWQ0ZGVkMmNiOTkwNmQxY2RkYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTY2LDYgKzQ1NjYsNyBAQAogCQlDREFC
NkQyRTE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMkMxN0M4MTRFRTAwQzYw
QjM0IC8qIEpTTWVkaWFDb250cm9sc0hvc3QuaCAqLzsgfTsKIAkJQ0RBQjZEMzExN0M5MjU5NTAw
QzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQUI2RDJGMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2VyQWdlbnRT
Y3JpcHRzLmggKi87IH07CiAJCUNEQUMwNjgzMjRDNkE5NUEwMDJGNzI3RiAvKiBWUDlVdGlsaXRp
ZXNDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q2RkU1QjcyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RBRDFBNUEyN0FGQzI3
QzAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFEMUE1NzI3QUZCRjM5MDA2OTkyODUgLyogQ29u
dGVudFR5cGVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDREI2MzU0OTIzRjYwMjNBMDBDMEY5REUgLyogV2ViQVZQbGF5ZXJDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REEyOUEyQzFDQkY3M0ZDMDA5MDFDQ0YgLyogV2ViQVZQbGF5ZXJDb250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RCNzA0NUExRjc0
NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREI3MDQ1ODFGNzQ2NUExMDAzOTIzREYgLyog
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaCAqLzsgfTsKIAkJQ0RCNzA0NUIxRjc0NjVBMTAwMzkyM0RG
IC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQjcwNDU5MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxh
eVN0cmVhbWluZy5jcHAgKi87IH07CkBAIC0xNjE2NSw2ICsxNjE2Niw4IEBACiAJCUNEQUI2RDJD
MTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFDb250cm9sc0hvc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RBQjZEMkYxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlw
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNlckFnZW50U2NyaXB0cy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTY3JpcHRzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUNEQUI2RDMwMTdDOTI1OTUwMEM2MEIz
NCAvKiBVc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1VzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBl
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRUeXBlVXRpbGl0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQUQxQTU4MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250
ZW50VHlwZVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50VHlwZVV0aWxp
dGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUU4QzA3MTc0NkI5NTcw
MDUzMkQ3OCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBRThDMDgxNzQ2Qjk1NzAwNTMyRDc4IC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RCNzA0NTgxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFt
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETUZhaXJQbGF5U3RyZWFtaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODg1Nyw2ICsyODg2MCw4IEBACiAJCQkJQzJGNEU3ODkxRTQ1
QUVERjAwNkQ3MTA1IC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oICovLAogCQkJCTFDODRCRTQx
MjZEMzkzOUYwMDJENjFGQyAvKiBDb21wb3NlZENoYXJhY3RlckNsdXN0ZXJUZXh0SXRlcmF0b3Iu
aCAqLywKIAkJCQk3MkJBQzNBNzIzRTE3MzI4MDA4RDc0MUMgLyogQ29uY3JldGVJbWFnZUJ1ZmZl
ci5oICovLAorCQkJCUNEQUQxQTU4MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxp
dGllcy5jcHAgKi8sCisJCQkJQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBl
VXRpbGl0aWVzLmggKi8sCiAJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKIAkJCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyog
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlBOENCNDEwMjBFODVCOEE1MDAzMkM0
RjAgLyogRGFzaEFycmF5LmggKi8sCkBAIC0zMzg4OCw2ICszMzg5Myw3IEBACiAJCQkJQ0U3OTlG
OTgxQzZBNDZCQzAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUNFNzk5RkFDMUM2QTUwNjYwMDk3QjUxOCAvKiBDb250ZW50U2Vj
dXJpdHlQb2xpY3lTb3VyY2VMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQw
MTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEQUQxQTVBMjdBRkMyN0MwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc2MjdCOEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAy
N0EgLyogQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY1MEIwQzJFREEw
MDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2Nh
cHRpb25zLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2U4NzY5ZDU0MDc4ZGQ1YjE2ZjFhOTI1ZGEyNTViODgx
Nzk1YmJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhcHRpb25zLmNz
cwpAQCAtMCwwICsxLDI4IEBACit2aWRlbzo6Y3VlKCopIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2JhKDAsIDAsIDAsIDAuOCk7Cit9CisKK3ZpZGVvOjpjdWUoOmZ1dHVyZSkgPiAqIHsKKyAg
ICBjb2xvcjogZ3JheTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNw
bGF5IHsKKyAgICBmb250OiAyMnB4IHNhbnMtc2VyaWY7IC8qIEtlZXAgaW4gc3luYyB3aXRoIGBE
RUZBVUxUQ0FQVElPTkZPTlRTSVpFYC4gKi8KK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4
dC10cmFjay1jb250YWluZXIgYiB7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHUgeworICAgIHRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNv
bnRhaW5lciBpIHsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKK3ZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uIHsKKyAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAs
IDAuOCk7CisgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlNWZhMmNjN2MxMmM5NjJkZjQ3OGFk
ZWIzYmUyODgxYzc4Yjk2ZjA4Li43MjVjNTIwYTJlYjE2YTczMmFkYmRmZDBkYThlMTA5ZTdjZTQ1
NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEwODks
NiArMTA4OSwxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKICAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZShtaW1l
VHlwZSk7CiAgICAgcGFyYW1ldGVycy50eXBlID0gY29udGVudFR5cGU7CiAgICAgcGFyYW1ldGVy
cy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMgPSBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAgIHBhcmFt
ZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsK
KyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
ID0gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7
CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnQgPSBNZWRpYVBsYXllcjo6
c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOwogICAgIFN0cmluZyBjYW5QbGF5OwogCkBAIC03NDA3
LDYgKzc0MTMsMzEgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNob3VsZENo
ZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0
aW5ncygpLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFDb2Rl
Y1R5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91
ckNDPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25z
dAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRN
TE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7
Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVkaWFFbGVt
ZW50OjphbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdAoreworICAgIHJldHVy
biBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7
Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5n
ZXNDaGFuZ2VkKCkKIHsKICAgICBpZiAoIW1fdGV4dFRyYWNrcyB8fCBtX2J1ZmZlcmVkVGltZVJh
bmdlc0NoYW5nZWRUYXNrQ2FuY2VsbGF0aW9uR3JvdXAuaGFzUGVuZGluZ1Rhc2soKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYjVmZTEzODUzYzY5NDI3ODM3ZWYz
ZjkxZDJiZDI2MWMxOTNkYzRiYi4uODllNmE2MjY4YmY2ZDYxYzVlMzczZjI5YTg0OTZiMWQ2Nzcz
YmFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTc3MCw2ICs3
NzAsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkRGlzYWJsZVNsZWVw
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2hvdWxkRGlzYWJsZVNsZWVwKCkgPT0gU2xlZXBUeXBl
OjpEaXNwbGF5OyB9CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKKyAgICBj
b25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJp
bmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkg
Y29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hh
bmdlZCgpIGZpbmFsOwogCiAjaWYgVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NCYXNlLmNwcAppbmRleCA3ZjU0ZDg3NjhjYzJmYTM2NGU1NDQxY2U4ZDQwZGE4NTYwNzljNmZi
Li5iZDNlNGJhYmIwZTFjNDA4ZmQxZjM0ZTg1ZWU5MmU5Njc4NTY2ODRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5nc0Jhc2UuY3BwCkBAIC0xOTksNyArMTk5LDk4IEBAIHZvaWQgU2V0dGluZ3NC
YXNlOjpzZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChjb25zdCBW
ZWN0b3I8Q29uCiAgICAgbV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCA9IGNvbnRlbnRUeXBlczsKIH0KIAordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlz
TnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBuZXdU
eXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykp
CisgICAgICAgIG5ld1R5cGVzLmFwcGVuZCh0eXBlLnRvU3RyaW5nKCkpOworCisgICAgbV9hbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNl
dHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVz
KQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMgPSBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBW
ZWN0b3I8U3RyaW5nPiBuZXdUeXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXco
dHlwZXMpLnNwbGl0KCcsJykpCisgICAgICAgIG5ld1R5cGVzLmFwcGVuZCh0eXBlLnRvU3RyaW5n
KCkpOwogCisgICAgbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7
Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKGNv
bnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAg
IG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFZlY3RvcjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0
byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0
byBmb3VyQ0MgPSBGb3VyQ0M6OmZyb21TdHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBl
cy5hcHBlbmQoV1RGTW92ZSgqZm91ckNDKSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzID0gV1RGTW92ZShuZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNl
OjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7Cisg
ICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3Rv
cjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBl
cykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0MgPSBGb3VyQ0M6OmZyb21T
dHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQoV1RGTW92ZSgqZm91ckND
KSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gV1RGTW92ZShu
ZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxs
KCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8Rm91ckNDPiBuZXdU
eXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykp
IHsKKyAgICAgICAgaWYgKGF1dG8gZm91ckNDID0gRm91ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQor
ICAgICAgICAgICAgbmV3VHlwZXMuYXBwZW5kKFdURk1vdmUoKmZvdXJDQykpOworICAgIH0KKwor
ICAgIG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7
Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKK3sKKyAg
ICBtX21pbmltdW1ET01UaW1lckludGVydmFsID0gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50
ZXJ2YWwoKQorCisgICAgc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RkOjpudWxsb3B0
KTsKKyAgICBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0ZDo6bnVsbG9wdCk7CisgICAgc2V0
QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhzdGQ6Om51bGxvcHQpOworICAgIHNldEFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoc3RkOjpudWxsb3B0KTsKKyAgICBzZXRBbGxvd2VkTWVkaWFDYXB0
aW9uRm9ybWF0VHlwZXMoc3RkOjpudWxsb3B0KTsKKworI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCisgICAgbV9vbmVMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmljaWVudCA9IGRlZmF1bHRPbmVM
aW5lVGV4dE11bHRpcGxpZXJDb2VmZmljaWVudDsKKyAgICBtX211bHRpTGluZVRleHRNdWx0aXBs
aWVyQ29lZmZpY2llbnQgPSBkZWZhdWx0TXVsdGlMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmljaWVu
dDsKKyAgICBtX21heFRleHRBdXRvc2l6aW5nU2NhbGVJbmNyZWFzZSA9IGRlZmF1bHRNYXhUZXh0
QXV0b3NpemluZ1NjYWxlSW5jcmVhc2U7CisjZW5kaWYKK30KIAogLy8gTUFSSyAtIG9uQ2hhbmdl
IGhhbmRsZXJzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCmluZGV4IDQwZGRiOGE3Zjdh
Zjg0NWQ0YjY1ZTYzMGZiN2FiMmU2NTRiYTFjOTIuLjFiMzliMTM2OWMwOTZjODMzNjUyZDg5MTVl
M2RhNWQ4YjcxOTZmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKICNpbmNsdWRlICJG
b250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1ZS5o
IgorI2luY2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkZyYW1lRmxhdHRlbmluZy5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgiCiAjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJFbnVtcy5oIgpAQCAtMTA4LDYgKzEwOSwyOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChj
b25zdCBTdHJpbmcmKTsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7IH0KIAorICAgIHZvaWQgc2V0QWxs
b3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiB0
eXBlcykgeyBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RGTW92ZSh0eXBlcyk7IH0K
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKGNv
bnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBh
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRB
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOyB9CisKKyAgICB2b2lkIHNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mJiB0eXBlcykg
eyBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJp
bmcmKTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y0lEczsgfQorCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVj
SURzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRp
b25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCB7
IHJldHVybiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7IH0KKworICAgIHZvaWQgc2V0QWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+
JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBXVEZNb3ZlKHR5
cGVzKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCB7IHJldHVy
biBtX2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsgfQorCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBTZXR0aW5nc0Jhc2UoUGFnZSopOwogICAgIHZpcnR1YWwgflNldHRpbmdzQmFzZSgpOwpA
QCAtMTUwLDYgKzE3MywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgVGltZXIgbV9zZXRJbWFnZUxvYWRp
bmdTZXR0aW5nc1RpbWVyOwogCiAgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBtX21lZGlhQ29udGVu
dFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+IG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25h
bDxWZWN0b3I8U3RyaW5nPj4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXM7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgZmxvYXQgYm9vc3RlZE9uZUxpbmVUZXh0TXVsdGlwbGllckNvZWZmaWNp
ZW50ID0gMi4yMzEyNWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRkNzU1MjgxNjE3
YjBhYzg4Yjc0MGZkYzBlNzYzOWU1YjVmZmM4MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNv
bnRlbnRUeXBlVXRpbGl0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2luY2x1ZGUg
IkZvdXJDQy5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CisKK2Jvb2wgY29udGVudFR5
cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBDb250ZW50VHlw
ZSYgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxs
b3dlZE1lZGlhQ29kZWNUeXBlcykKK3sKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMgJiYgIWFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLT5jb250YWlucyh0eXBlLmNvbnRhaW5l
clR5cGUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghYWxsb3dlZE1lZGlh
Q29kZWNUeXBlcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gYWxsT2YodHlw
ZS5jb2RlY3MoKSwgWyZdIChhdXRvJiBjb2RlYykgeworICAgICAgICByZXR1cm4gYW55T2YoKmFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMsIFsmXSAoYXV0byYgYWxsb3dlZENvZGVjKSB7CisgICAgICAg
ICAgICByZXR1cm4gY29kZWMuc3RhcnRzV2l0aChhbGxvd2VkQ29kZWMpOworICAgICAgICB9KTsK
KyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTljNGQyYjlhNGU5YmVh
MmYyY2M2YWM3ZjMwZDM0YjRiODE4NWE2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKQEAgLTAsMCArMSwz
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29udGVudFR5cGUu
aCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBGb3VyQ0M7CisKK1dFQkNPUkVfRVhQT1JUIGJvb2wgY29udGVudFR5cGVNZWV0c0NvbnRh
aW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcywg
Y29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVjVHlw
ZXMpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCmluZGV4
IDI0ZTI1NWRmNDRmYjFmNzg3MTRjNThlOTk5OTEwMTI2ZDQ2OWMwYWIuLmIzN2QwNTBlOWMwYzM2
NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvdXJDQy5oCkBAIC0zNyw2ICszNywxOCBAQCBzdHJ1Y3QgRm91ckNDIHsKICAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxGb3VyQ0M+IGZyb21TdHJpbmcoU3RyaW5nVmlldyk7CiAKICAg
ICB1aW50MzJfdCB2YWx1ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cisg
ICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVu
Y29kZXIgPDwgdmFsdWU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Cisg
ICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBGb3VyQ0MmIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gZGVjb2Rlci5k
ZWNvZGUoY29uZmlndXJhdGlvbi52YWx1ZSk7CisgICAgfQogfTsKIAogY29uc3RleHByIGJvb2wg
b3BlcmF0b3I9PShGb3VyQ0MsIEZvdXJDQyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZWMxOGJhM2U4ZWNiYjg1YTllYmQ4MWMz
ZWM5MDBkNDE5NzNlY2VlMi4uMGFiYzMyMjM4ZDY0MWFjYTQ1ZjczOTc3NTdlNGU1ZTE1MWJhN2Ri
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNpbmNs
dWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJGb3VyQ0MuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVk
ZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtMTc2LDYgKzE3NywxOCBAQCBzdGF0aWMgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbnVsbENvbnRlbnRUeXBlVmVjdG9yKCkKICAg
ICByZXR1cm4gdmVjdG9yOwogfQogCitzdGF0aWMgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4mIG51bGxPcHRpb25hbFN0cmluZ1ZlY3RvcigpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+PiB2ZWN0b3I7CisgICAgcmV0
dXJuIHZlY3RvcjsKK30KKworc3RhdGljIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJD
Qz4+JiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+Pj4gdmVjdG9yOworICAgIHJldHVybiB2
ZWN0b3I7Cit9CisKIGNsYXNzIE51bGxNZWRpYVBsYXllckNsaWVudCA6IHB1YmxpYyBNZWRpYVBs
YXllckNsaWVudCB7CiBwcml2YXRlOgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAtMTk3
LDYgKzIxMCwxMiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElB
KQogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNoZWRLZXlGb3JLZXlJZChj
b25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKKwor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25hbFN0cmluZ1ZlY3Rv
cigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9uYWxTdHJpbmdW
ZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxv
d2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbE9wdGlvbmFs
Rm91ckNDVmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+
PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxP
cHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8
Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CiB9OwogCiBjb25zdCBWZWN0b3I8
Q29udGVudFR5cGU+JiBNZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdApAQCAtNTI5LDYgKzU0OCwxMSBAQCBjb25zdCBNZWRp
YVBsYXllckZhY3RvcnkqIE1lZGlhUGxheWVyOjpuZXh0QmVzdE1lZGlhRW5naW5lKGNvbnN0IE1l
ZGlhUGxheWVyRmFjdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgcGFyYW1ldGVycy5p
c01lZGlhU3RyZWFtID0gISFtX21lZGlhU3RyZWFtOwogI2VuZGlmCisgICAgcGFyYW1ldGVycy5h
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7
CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IGFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUF1
ZGlvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgcGFyYW1ldGVy
cy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxvd2VkTWVkaWFDYXB0aW9uRm9y
bWF0VHlwZXMoKTsKIAogICAgIGlmIChtX2FjdGl2ZUVuZ2luZUlkZW50aWZpZXIpIHsKICAgICAg
ICAgaWYgKGN1cnJlbnQpCkBAIC0xNjU3LDYgKzE2ODEsMzEgQEAgYm9vbCBNZWRpYVBsYXllcjo6
c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAogICAgIHJldHVybiBjbGllbnQoKS5t
ZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCk7CiB9CiAKK2NvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYg
TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdAoreworICAgIHJldHVy
biBjbGllbnQoKS5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIE1lZGlh
UGxheWVyOjphbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
Y2xpZW50KCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworfQorCitjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRpYUNh
cHRpb25Gb3JtYXRUeXBlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjphcHBsaWNhdGlvbldp
bGxSZXNpZ25BY3RpdmUoKQogewogICAgIG1fcHJpdmF0ZS0+YXBwbGljYXRpb25XaWxsUmVzaWdu
QWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAppbmRleCAwNzFjYzFlNmU1ZTAzZmYxNDc1YTBmNDk1MmNiNWI4ZDBhZTEwZDZiLi41ZjBk
YWE4NjZmMmM4MjMzYWM4YzE5NGE2MTMzZDk3M2YzNDQ2ZmU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCisjaW5jbHVkZSAi
Rm91ckNDLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAjaW5jbHVkZSAiTGF5b3V0
UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIKQEAgLTk3LDYgKzk4LDExIEBA
IHN0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAgICBib29sIGlzTWVkaWFT
b3VyY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNNZWRpYVN0cmVhbSB7IGZhbHNlIH07CiAgICAg
VmVjdG9yPENvbnRlbnRUeXBlPiBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7
CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBhbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IGFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAtMTA2LDM3ICsx
MTIsMjYgQEAgc3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgewogICAgICAgICBl
bmNvZGVyIDw8IGlzTWVkaWFTb3VyY2U7CiAgICAgICAgIGVuY29kZXIgPDwgaXNNZWRpYVN0cmVh
bTsKICAgICAgICAgZW5jb2RlciA8PCBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQ7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAg
ICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICAgICAgZW5jb2RlciA8
PCBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgotICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM+IGRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIHsKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxDb250ZW50VHlwZT4gdHlwZTsKLSAgICAgICAgZGVjb2RlciA+
PiB0eXBlOwotICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiB1cmw7Ci0gICAgICAgIGRlY29kZXIg
Pj4gdXJsOwotICAgICAgICBpZiAoIXVybCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpc01lZGlhU291cmNlOwotICAgICAg
ICBkZWNvZGVyID4+IGlzTWVkaWFTb3VyY2U7Ci0gICAgICAgIGlmICghaXNNZWRpYVNvdXJjZSkK
LSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25h
bDxib29sPiBpc01lZGlhU3RyZWFtOwotICAgICAgICBkZWNvZGVyID4+IGlzTWVkaWFTdHJlYW07
Ci0gICAgICAgIGlmICghaXNNZWRpYVN0cmVhbSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29udGVudFR5cGU+PiB0eXBl
c1JlcXVpcmluZ0hhcmR3YXJlOwotICAgICAgICBkZWNvZGVyID4+IHR5cGVzUmVxdWlyaW5nSGFy
ZHdhcmU7Ci0gICAgICAgIGlmICghdHlwZXNSZXF1aXJpbmdIYXJkd2FyZSkKLSAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIHt7IFdURk1vdmUoKnR5cGUp
LCBXVEZNb3ZlKCp1cmwpLCAqaXNNZWRpYVNvdXJjZSwgKmlzTWVkaWFTdHJlYW0sICp0eXBlc1Jl
cXVpcmluZ0hhcmR3YXJlIH19OworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy50eXBlKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51cmwp
CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzTWVkaWFTb3VyY2Up
CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzTWVkaWFTdHJlYW0p
CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvbnRlbnRUeXBlc1Jl
cXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAgICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMp
CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUF1
ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk7CiAgICAgfQogfTsKIApAQCAtMjc1LDYgKzI3
MCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpvcHRp
b25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxs
b3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlw
ZXMoKSBjb25zdCA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJCdWZmZXJlZFRp
bWVSYW5nZXNDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyU2Vla2Fi
bGVUaW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogCkBAIC02MzQsNiArNjM1LDEyIEBAIHB1YmxpYzoK
ICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQ2hlY2tIYXJkd2FyZVN1
cHBvcnQoKSBjb25zdDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+
JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0OworICAgIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3Q7Cisg
ICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+
PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0OworICAgIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBj
b25zdDsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbWVk
aWFQbGF5ZXJMb2dnZXIoKTsKICAgICBjb25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50aWZp
ZXIoKSB7IHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmlu
ZGV4IDYyNjdiODMzMjEyOTliMTNlYTdlZDJhNDA1ZTRjYmI4NWU0NDg4M2IuLmY0YjM1ZDc2OWQ3
Mjc5N2EyZmFkNDVlYjc4MmJkZDI1YzkyNmNkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTMyOSw2ICszMjksOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXROZWVkc1JlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiAgICAg
dm9pZCByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogCisgICAgYm9vbCBsb2FkaW5nTWV0YWRhdGEo
KSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdNZXRhZGF0YTsgfQorCiBwcml2YXRlOgogICAgIE1l
ZGlhUGxheWVyKiBtX3BsYXllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGNkYWExYjA5
OGMzYTU0YjFhNmM2MWE0NWRkZGJkZjJjNjkzZDYyYWIuLjM4Mzc3MmM1MDQ0OTI5YjllNTE1Nzg0
MTZkZWY2NGY4Nzg4MDIzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTM1MCw2ICszNTAs
OSBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2aWRl
b0ZyYW1lTWV0YWRhdGEoKSBmaW5hbCB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fdmlkZW9GcmFt
ZU1ldGFkYXRhLCB7IH0pOyB9CiAgICAgdm9pZCBjaGVja05ld1ZpZGVvRnJhbWVNZXRhZGF0YSgp
OwogCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBhbGxUcmFja3NBcmVQbGF5YWJsZSgpIGNvbnN0
OworICAgIGJvb2wgdHJhY2tJc1BsYXlhYmxlKEFWQXNzZXRUcmFjayopIGNvbnN0OworCiAgICAg
UmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXI+
IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0ZW07
CkBAIC00NDcsNyArNDUwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZh
c3RGb3J3YXJkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZhc3RSZXZlcnNl
IHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRBc3NldElzTG9hZGVkIHsgZmFs
c2UgfTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRUcmFja3NBcmVMb2FkZWQgeyBmYWxzZSB9
OwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxib29sPiBtX2NhY2hlZEFzc2V0SXNQbGF5YWJs
ZTsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRUcmFja3NBcmVQbGF5
YWJsZTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRPYnNl
cnZlVGltZUNvbnRyb2xTdGF0dXMgeyBmYWxzZSB9OwogICAgIG11dGFibGUgc3RkOjpvcHRpb25h
bDxib29sPiBtX3RyYWNrc0FyZVBsYXlhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
YTA4ZGEwZjRmMTBlNGMzZTRhOWE3MWVlOGY1MzI1ZmE2NmUwOTFmZi4uYTZjMDU5ZGMxMDZhNjIy
NWIyMTEyY2I4ZWU1MjAzYTdiNThmZDEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0z
OCwxMCArMzgsMTIgQEAKICNpbXBvcnQgIkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgiCiAj
aW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29sb3JTcGFjZUNHLmgiCisjaW1wb3J0
ICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29va2llLmgiCiAjaW1wb3J0ICJE
ZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNpbXBvcnQgIkV4dGVuc2lvbnNHTC5oIgogI2lt
cG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCisjaW1wb3J0ICJGb3VyQ0MuaCIKICNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgogI2lt
cG9ydCAiSW5iYW5kQ2hhcHRlclRyYWNrUHJpdmF0ZUFWRk9iakMuaCIKQEAgLTY2LDYgKzY4LDcg
QEAKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2Vy
V2ViTS5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgIlVU
SVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgiCiAjaW1wb3J0
ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZSZXNvdXJj
ZUxvYWRlci5oIgpAQCAtOTQ4LDYgKzk1MSwzOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJldAog
ICAgICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVzZXNO
b1BlcnNpc3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgYXV0byBhbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAg
IGlmIChhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyAmJiBQQUw6OmNhbkxvYWRfQVZGb3VuZGF0
aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSgpKSB7CisgICAgICAgIGF1
dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOworICAg
ICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcykKKyAgICAg
ICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDooTlNTdHJpbmcgKilVVElGcm9tTUlNRVR5cGUodHlw
ZSldOworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6QVZV
UkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5XTsKKyAgICB9CisKKyAgICBhdXRvIGFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcygpOworICAgIGlmIChhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzICYmIFBBTDo6Y2FuTG9h
ZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSgpKSB7
CisgICAgICAgIGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF0pOworICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2VkTWVkaWFBdWRpb0NvZGVj
SURzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlwZS52YWx1ZSldOworICAg
ICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6QVZVUkxBc3NldEFs
bG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleV07CisgICAgfQorCisgICAgYXV0byBhbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsK
KyAgICBpZiAoYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyAmJiBQQUw6OmNhbkxvYWRfQVZGb3Vu
ZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXkoKSkgeworICAgICAg
ICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsK
KyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcykKKyAg
ICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAgICAgICAgW29w
dGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2FibGVW
aWRlb0NvZGVjVHlwZXNLZXldOworICAgIH0KKworICAgIGF1dG8gYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygp
OworICAgIGlmIChhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgJiYgUEFMOjpjYW5Mb2Fk
X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkoKSkgewor
ICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlwZS52YWx1ZSldOwor
ICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6QVZVUkxBc3Nl
dEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5XTsKKyAgICB9CisKICAgICBpZiAod2lsbFVzZVdl
Yk1Gb3JtYXRSZWFkZXIpCiAgICAgICAgIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3Nhcnko
KTsKIApAQCAtMTc4Myw2ICsxODE4LDc2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0QXNzZXQoUmV0YWluUHRyPGlkPiYmIGFzc2V0KQogICAgIHByb2Nlc3ND
aGFwdGVyVHJhY2tzKCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Ym9vbD4gTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJhY2tzQXJlUGxheWFibGUoKSBjb25zdAoreworICAg
IGlmIChtX2F2UGxheWVySXRlbSkgeworICAgICAgICBmb3IgKEFWUGxheWVySXRlbVRyYWNrICp0
cmFjayBpbiBbbV9hdlBsYXllckl0ZW0gdHJhY2tzXSkgeworICAgICAgICAgICAgaWYgKCF0cmFj
a0lzUGxheWFibGUodHJhY2suYXNzZXRUcmFjaykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYg
KCFtX2F2QXNzZXQgfHwgW21fYXZBc3NldCBzdGF0dXNPZlZhbHVlRm9yS2V5OkAidHJhY2tzIiBl
cnJvcjpOVUxMXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgZm9yIChBVkFzc2V0VHJhY2sgKmFzc2V0VHJhY2sgOiBbbV9hdkFz
c2V0IHRyYWNrc10pIHsKKyAgICAgICAgaWYgKCF0cmFja0lzUGxheWFibGUoYXNzZXRUcmFjaykp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQor
Citib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrSXNQbGF5YWJs
ZShBVkFzc2V0VHJhY2sqIHRyYWNrKSBjb25zdAoreworICAgIGlmIChwbGF5ZXIoKS0+c2hvdWxk
Q2hlY2tIYXJkd2FyZVN1cHBvcnQoKSAmJiAhYXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNvZGVS
ZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hh
cmR3YXJlU3VwcG9ydCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBkZXNj
cmlwdGlvbiA9IHJldGFpblB0cigoX19icmlkZ2UgQ01Gb3JtYXREZXNjcmlwdGlvblJlZil0cmFj
ay5mb3JtYXREZXNjcmlwdGlvbnMuZmlyc3RPYmplY3QpOworICAgIGlmICghZGVzY3JpcHRpb24p
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpDTUZv
cm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGRlc2NyaXB0aW9uLmdldCgpKTsKKyAgICBhdXRv
IGNvZGVjVHlwZSA9IEZvdXJDQyB7IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlhU3Vi
VHlwZShkZXNjcmlwdGlvbi5nZXQoKSkgfTsKKyAgICBzd2l0Y2ggKFBBTDo6Q01Gb3JtYXREZXNj
cmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkpIHsKKyAgICBjYXNlIGtDTU1l
ZGlhVHlwZV9WaWRlbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
ID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICAgICAgaWYgKGFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMtPmNv
bnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVS
LCAiVmlkZW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5vdCBjb250
YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBj
YXNlIGtDTU1lZGlhVHlwZV9BdWRpbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFBdWRp
b0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICAg
ICAgaWYgKGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJ
REVOVElGSUVSLCAiQXVkaW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICIn
IG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9UZXh0OgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX0Ns
b3NlZENhcHRpb246CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfU3VidGl0bGU6IHsKKyAgICAgICAg
YXV0byYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworICAgICAgICBpZiAoYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzICYmICFhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMtPmNvbnRhaW5z
KGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAiVGV4
dCB0cmFjayB3aXRoIGNvZGVjIHR5cGUgJyIsIGNvZGVjVHlwZSwgIicgbm90IGNvbnRhaW5lZCBp
biBhbGxvd2VkIGNvZGVjIGxpc3Q7IGJsb2NraW5nIik7CisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2Uga0NN
TWVkaWFUeXBlX011eGVkOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX1RpbWVDb2RlOgorICAgIGNh
c2Uga0NNTWVkaWFUeXBlX01ldGFkYXRhOgorICAgICAgICAvLyBOby1vcAorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIlRyYWNrIHdp
dGggdW51ZXhwZWN0ZWQgbWVkaWEgdHlwZSAnIiwgRm91ckNDKG1lZGlhVHlwZSksICInIG5vdCBj
b250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBpZ25vcmluZyIpOworICAgIHJldHVybiB0
cnVlOworfQorCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3RhdHVzIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fYXZBc3NldCkKQEAgLTE4MDgsMjMgKzE5MTMsMjEgQEAgTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjoKICAgICAgICAgbV9jYWNoZWRBc3NldElzTG9hZGVkID0gdHJ1ZTsKICAgICB9
CiAKLSAgICBpZiAoIXBsYXllcigpLT5zaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpKQotICAg
ICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gdHJ1ZTsKKyAgICAvLyBtX2xvYWRpbmdNZXRhZGF0
YSB3aWxsIGJlIGZhbHNlIHVudGlsIGFsbCB0cmFja3MnIHByb3BlcnRpZXMgaGF2ZSBmaW5pc2hl
ZCBsb2FkaW5nLgorICAgIC8vIFNlZTogYmVnaW5Mb2FkaW5nTWV0YWRhdGEoKS4KKyAgICBpZiAo
bG9hZGluZ01ldGFkYXRhKCkpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0
dXNMb2FkaW5nOwogCi0gICAgaWYgKCFtX3RyYWNrc0FyZVBsYXlhYmxlKSB7Ci0gICAgICAgIG1f
dHJhY2tzQXJlUGxheWFibGUgPSB0cnVlOwotICAgICAgICBmb3IgKEFWQXNzZXRUcmFjayAqdHJh
Y2sgaW4gW21fYXZBc3NldCB0cmFja3NdKSB7Ci0gICAgICAgICAgICBpZiAoIWFzc2V0VHJhY2tN
ZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHRyYWNrLCBwbGF5ZXIoKS0+bWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSkpIHsKLSAgICAgICAgICAgICAgICBt
X3RyYWNrc0FyZVBsYXlhYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBpZiAoIW1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUp
IHsKKyAgICAgICAgbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSA9IGFsbFRyYWNrc0FyZVBsYXlh
YmxlKCk7CisgICAgICAgIGlmICghbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSkKKyAgICAgICAg
ICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkaW5nOwogICAgIH0KIAogICAg
IGlmICghbV9jYWNoZWRBc3NldElzUGxheWFibGUpCiAgICAgICAgIG1fY2FjaGVkQXNzZXRJc1Bs
YXlhYmxlID0gW1ttX2F2QXNzZXQgdmFsdWVGb3JLZXk6QCJwbGF5YWJsZSJdIGJvb2xWYWx1ZV07
CiAKLSAgICBpZiAoKm1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlICYmIG1fdHJhY2tzQXJlUGxheWFi
bGUudmFsdWUoKSkKKyAgICBpZiAoKm1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlICYmICptX2NhY2hl
ZFRyYWNrc0FyZVBsYXlhYmxlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3Rh
dHVzUGxheWFibGU7CiAKICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGVk
OwpAQCAtMTkyOSw2ICsyMDMyLDkgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2QKICAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2VuZGlm
CiAKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJl
bWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpKQorICAgICAgICByZXR1cm4g
TWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKICAgICBhdXRvIHN1
cHBvcnRlZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVUeXBl
KHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CiAgICAgaWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkKICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZDsK
QEAgLTM3MzQsNyArMzg0MCw3IEBAIE5TQXJyYXkqIGl0ZW1LVk9Qcm9wZXJ0aWVzKCkKIAogTlNB
cnJheSogYXNzZXRUcmFja01ldGFkYXRhS2V5TmFtZXMoKQogewotICAgIHN0YXRpYyBOU0FycmF5
KiBrZXlzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6QCJ0b3RhbFNhbXBsZURh
dGFMZW5ndGgiLCBAIm1lZGlhVHlwZSIsIEAiZW5hYmxlZCIsIEAicHJlZmVycmVkVHJhbnNmb3Jt
IiwgQCJuYXR1cmFsU2l6ZSIsIG5pbF07CisgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBbW05T
QXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAInRvdGFsU2FtcGxlRGF0YUxlbmd0aCIsIEAi
bWVkaWFUeXBlIiwgQCJlbmFibGVkIiwgQCJwcmVmZXJyZWRUcmFuc2Zvcm0iLCBAIm5hdHVyYWxT
aXplIiwgQCJmb3JtYXREZXNjcmlwdGlvbnMiLCBuaWxdOwogICAgIHJldHVybiBrZXlzOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA1ZGE5
MWVlMGVhYjRmZGZmOTIxZmM2Nzg3YWEyMzQ0Y2QxY2Y0ZjE4Li5kOTMyMGUxOWVkMGY4MDdjNjQx
MzYzZTZlNDA2NmYyOTgyYTEyNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAKQEAgLTE5Myw2ICsxOTMsOCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6
OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogICAgIG1fYmFja3VwLnJlc3RvcmVUbyhzZXR0aW5n
cygpKTsKICAgICBtX2JhY2t1cCA9IEJhY2t1cCB7IHNldHRpbmdzKCkgfTsKIAorICAgIG1fcGFn
ZS0+c2V0dGluZ3MoKS5yZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisKICAgICBJbnRlcm5hbFNl
dHRpbmdzR2VuZXJhdGVkOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CiB9CiAKQEAgLTU4OCw2
ICs1OTAsNDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVmYXVs
dEF1ZGlvQ29udGV4dFNhbXBsZVJhdGUoZmxvYXQgc2FtcGwKICAgICByZXR1cm4geyB9OwogfQog
CitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9wYWdl
LT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHR5cGVzKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRB
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsK
KyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyh0eXBlcyk7
CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5n
czo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQorewor
ICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yIH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHModHlwZXMpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IElu
dGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5n
JiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRp
b25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0
dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXModHlwZXMpOworICAgIHJl
dHVybiB7IH07Cit9CisKKworCiAvLyBJZiB5b3UgYWRkIHRvIHRoaXMgY2xhc3MsIG1ha2Ugc3Vy
ZSB5b3UgYXJlIG5vdCBkdXBsaWNhdGluZyBmdW5jdGlvbmFsaXR5IGluIHRoZSBnZW5lcmF0ZWQK
IC8vIGJhc2UgY2xhc3MgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCBhbmQgdGhhdCB5b3UgdXBk
YXRlIHRoZSBCYWNrdXAgY2xhc3MgZm9yIHRlc3QgcmVwcm9kdWNhYmlsaXR5LgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGYxYTdlMjIxMTIwZTcxYTk2
OTkxYjMyMzNhMzg1NDMwMzE4OWQ1YjAuLmZiOTRjZTdkZGJlZjNiYzU1YmIzNzYzMWFlZGUxNmMz
ZTE1MmU3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBA
IC0xMjIsNiArMTIyLDEyIEBAIHB1YmxpYzoKICAgICAvLyBBdWRpb0NvbnRleHQKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXREZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCk7CiAK
KyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhjb25z
dCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5nJik7
CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGJiNmI4ZjUy
MTEyZGQ5OTRjYzZiNzc4MzIzMTE5OGU1OTI4YmZjMWUuLmJjNDAxOTUwYTk0NzI4Njk3OGMwMDhh
ZmViNjFmNDkwZjhhZGNhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbApAQCAtOTUsNCArOTUsMTAgQEAgZW51bSBVc2VySW50ZXJmYWNlRGlyZWN0aW9u
UG9saWN5IHsgIkNvbnRlbnQiLCAiU3lzdGVtIiB9OwogCiAgICAgLy8gQXVkaW9Db250ZXh0CiAg
ICAgdW5kZWZpbmVkIHNldERlZmF1bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZsb2F0IHNhbXBs
ZVJhdGUpOworCisgICAgdW5kZWZpbmVkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKERP
TVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFWaWRlb0Nv
ZGVjSURzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoRE9NU3RyaW5nPyB0eXBlcyk7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmgKaW5kZXggMWZiZTFmOTMzZDA5NTAwNmY0MmZkOWRjZmM2ZjJhNDQyYTc2NDA5My4uOTMxNmI2
NmFiMzU5NjZlNWI2NDVkZDFjN2NlMGU4MTJmMjA2YTYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC03
Niw2ICs3Niw4IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ7CiAjZW5kaWYKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOworCitzdHJ1
Y3QgRm91ckNDOwogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTI5Myw2ICsyOTUsMTIg
QEAgcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBtZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFs
OwogCisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOyB9OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7IH07CisgICAgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOyB9OworICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2VkTWVk
aWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRp
b24uYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOyB9OworCiAgICAgdm9pZCBzdGFydFVw
ZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0
ZShib29sID0gZmFsc2UpOwogICAgIHZvaWQgc2VuZENhY2hlZFN0YXRlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCmluZGV4IDRhY2I0MGUyYzA5ZWM3NWNlOWVlYmI3
MzFlMWRkMWM5YzYzMjE1MGYuLjRmZDY2MWI3ZDA2NzBkYzUwZDFjNzhhZGI1ZjhiYWYyOTYyZWUx
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCkBAIC0yOCw2ICsy
OCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9Db250
ZW50VHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm91ckNDLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybVRleHRUcmFjay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MCw2ICs0MSwxMiBA
QCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gewogICAgIFN0cmlu
ZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7CiAgICAgU3RyaW5nIG5ldHdvcmtJbnRlcmZh
Y2VOYW1lOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbWVkaWFDb250ZW50VHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3Ry
aW5nPj4gYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0
b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgIHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOworCiAgICAgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICBWZWN0
b3I8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2tEYXRhPiBvdXRPZkJhbmRUcmFja0RhdGE7CkBA
IC01OCw2ICs2NSwxMSBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24gewogICAgICAgICBlbmNvZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKICAg
ICAgICAgZW5jb2RlciA8PCBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKICAgICAgICAgZW5jb2RlciA8
PCBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICAgICAgZW5j
b2RlciA8PCBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsKKyAgICAgICAgZW5jb2RlciA8PCBh
bGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lE
czsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7CiAg
ICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYgRU5B
QkxFKEFWRl9DQVBUSU9OUykKICAgICAgICAgZW5jb2RlciA8PCBvdXRPZkJhbmRUcmFja0RhdGE7
CkBAIC03MCw4NiArODIsMjcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbj4gZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9u
KQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHJlZmVycmVyOwotICAgICAg
ICBkZWNvZGVyID4+IHJlZmVycmVyOwotICAgICAgICBpZiAoIXJlZmVycmVyKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
dXNlckFnZW50OwotICAgICAgICBkZWNvZGVyID4+IHVzZXJBZ2VudDsKLSAgICAgICAgaWYgKCF1
c2VyQWdlbnQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7Ci0gICAgICAg
IGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwotICAgICAgICBpZiAoIXNv
dXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5ldHdvcmtJbnRlcmZhY2VOYW1l
OwotICAgICAgICBkZWNvZGVyID4+IG5ldHdvcmtJbnRlcmZhY2VOYW1lOwotICAgICAgICBpZiAo
IW5ldHdvcmtJbnRlcmZhY2VOYW1lKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4+IG1l
ZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAgICBkZWNvZGVy
ID4+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAgICBp
ZiAoIW1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxT
dHJpbmc+PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgZGVjb2RlciA+
PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRB
dWRpb0NoYXJhY3RlcmlzdGljcykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFja0RhdGE+PiBvdXRPZkJhbmRUcmFja0RhdGE7Ci0gICAg
ICAgIGRlY29kZXIgPj4gb3V0T2ZCYW5kVHJhY2tEYXRhOwotICAgICAgICBpZiAoIW91dE9mQmFu
ZFRyYWNrRGF0YSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZG9jdW1l
bnRTZWN1cml0eU9yaWdpbjsKLSAgICAgICAgZGVjb2RlciA+PiBkb2N1bWVudFNlY3VyaXR5T3Jp
Z2luOwotICAgICAgICBpZiAoIWRvY3VtZW50U2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IGxv
Z0lkZW50aWZpZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gbG9nSWRlbnRpZmllcjsKLSAgICAgICAg
aWYgKCFsb2dJZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsKLSAg
ICAgICAgZGVjb2RlciA+PiBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Ci0gICAgICAgIGlmICgh
c2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzVmlkZW87Ci0gICAgICAgIGRlY29k
ZXIgPj4gaXNWaWRlbzsKLSAgICAgICAgaWYgKCFpc1ZpZGVvKQotICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlbmRlcmluZ0Nh
bkJlQWNjZWxlcmF0ZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nQ2FuQmVBY2NlbGVy
YXRlZDsKLSAgICAgICAgaWYgKCFyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKQotICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICByZXR1cm4ge3sKLSAgICAgICAgICAg
IFdURk1vdmUoKnJlZmVycmVyKSwKLSAgICAgICAgICAgIFdURk1vdmUoKnVzZXJBZ2VudCksCi0g
ICAgICAgICAgICBXVEZNb3ZlKCpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpLAotICAgICAg
ICAgICAgV1RGTW92ZSgqbmV0d29ya0ludGVyZmFjZU5hbWUpLAotICAgICAgICAgICAgV1RGTW92
ZSgqbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpLAotICAgICAgICAg
ICAgV1RGTW92ZSgqcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpLAorICAgICAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5yZWZlcnJlcikKKyAgICAgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udXNlckFnZW50KQorICAgICAgICAgICAgJiYg
ZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIp
CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm5ldHdvcmtJbnRl
cmZhY2VOYW1lKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5t
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMp
CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRp
YUNvZGVjVHlwZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9u
LmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29k
ZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRU
eXBlcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucHJlZmVy
cmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICAg
ICAgICAgIFdURk1vdmUoKm91dE9mQmFuZFRyYWNrRGF0YSksCisgICAgICAgICAgICAmJiBkZWNv
ZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm91dE9mQmFuZFRyYWNrRGF0YSkKICNlbmRpZgotICAg
ICAgICAgICAgV1RGTW92ZSgqZG9jdW1lbnRTZWN1cml0eU9yaWdpbiksCi0gICAgICAgICAgICAq
bG9nSWRlbnRpZmllciwKLSAgICAgICAgICAgICpzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUsCi0g
ICAgICAgICAgICAqaXNWaWRlbywKLSAgICAgICAgICAgICpyZW5kZXJpbmdDYW5CZUFjY2VsZXJh
dGVkLAotICAgICAgICB9fTsKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3Vy
YXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVj
b2RlKGNvbmZpZ3VyYXRpb24ubG9nSWRlbnRpZmllcikKKyAgICAgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQorICAgICAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5pc1ZpZGVvKQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5yZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVk
KTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5kZXggNThmYzFl
NGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOC4uN2M5ZDQ1NjlhNGU1MGIwNzEzYTc3
YThiNGFjMjQwZmFlNDZkZGQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFR5cGVVdGlsaXRpZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5j
dGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMTY2LDYgKzE2NywxMiBAQCBz
dGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OmNyZWF0ZVJlbQogICAgIGF1dG8gZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9
IHBsYXllci0+ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpOwogICAgIHByb3h5Q29uZmlndXJhdGlv
bi5kb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKIAorICAg
IHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHBsYXllci0+
YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxs
b3dlZE1lZGlhQ29kZWNUeXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOwor
ICAgIHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gcGxheWVy
LT5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5
cGVzID0gcGxheWVyLT5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKwogICAgIGF1
dG8gaWRlbnRpZmllciA9IE1lZGlhUGxheWVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAgICBn
cHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWRlbnRpZmllciwgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1cmF0aW9uKSwgMCk7CiAKQEAgLTIwMiw2
ICsyMDksMTAgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVAKICAgICBpZiAocGFyYW1ldGVycy5p
c01lZGlhU3RyZWFtKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6
SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKKworICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRh
aW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRlcnMu
YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMsIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNU
eXBlcykpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1
cHBvcnRlZDsKKwogICAgIHJldHVybiB0eXBlQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllciku
c3VwcG9ydHNUeXBlQW5kQ29kZWNzKHBhcmFtZXRlcnMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc2ZDZiN2RlYzU2OTMzYjJjN2E1
NTllZWY0ZDkxMmFhYWVhYzQ4MTcuLjYzYWY5MWZkYmE1ZjIwMTAwNmM3M2M1OWYyOTZiYTIyZjNk
MzdjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC00MTE2LDYgKzQxMTYsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhj
b25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAgICAgc2V0dGluZ3Muc2V0TWF0
aE1MRW5hYmxlZChmYWxzZSk7CiAjZW5kaWYKICAgICAgICAgc2V0dGluZ3Muc2V0UGRmSlNWaWV3
ZXJFbmFibGVkKHRydWUpOworCisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRh
aW5lclR5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpt
ZWRpYUNvbnRhaW5lclR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAg
ICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0b3JlLmdldFN0cmluZ1Zh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYUNvZGVjVHlwZXNBbGxvd2VkSW5DYXB0
aXZlUG9ydGFsTW9kZUtleSgpKSk7CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
Om1lZGlhVmlkZW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAg
ICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhzdG9yZS5nZXRTdHJp
bmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFBdWRpb0NvZGVjSURzQWxsb3dl
ZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6Om1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRh
bE1vZGVLZXkoKSkpOwogICAgIH0KIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklFVykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0Njg2NzRkOTc5NWVhYjllMjdmNzhkNGU2MTkzYTQxMWFlODFhNzU2Li44ZDYxMWMz
YjA4MGJmM2VjZDMyZmY3OWIwNTZjM2MzNWYzMDlhMjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVu
IGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNv
bi4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbDogQWRkZWQu
CisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1j
b2RlY3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2Uv
bWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlh
L21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxv
d2VkLWNvbnRhaW5lcnMuaHRtbDogQWRkZWQuCisKIDIwMjItMDItMTEgIFRydWl0dCBTYXZlbGwg
IDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIGV4cGVjdGF0aW9ucyBmb3Ig
Y29tcG9zaXRpbmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRtbCBh
cyBpdCBpcyBmYWlsaW5nIG9uIEVXUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
YWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MGQ1MzlhMmY5MDYzYWEy
YzVjYTA5Mzc0ODc0ZjcxZTRkYmViZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBAQAor
UlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51bGwp
KQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKG51
bGwpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKG51
bGwpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMx
IikgPT0gJ3Byb2JhYmx5JykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8v
bXA0OyBjb2RlY3M9bXA0diIpID09ICdwcm9iYWJseScpIE9LCitSVU4odmlkZW8uc3JjID0gImNv
bnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2FucGxheSkgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpKQorUlVOKGludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIikpCitSVU4oaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsbXA0YS40MCIpKQor
RVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikgPT0g
J3Byb2JhYmx5JykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBj
b2RlY3M9bXA0diIpID09ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0
IikKK0VWRU5UKGNhbnBsYXkpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxs
b3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG9wdXMiKSkKK0VYUEVDVEVEICh2aWRlby5j
YW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICcnKSBPSworRVhQRUNURUQg
KHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJycpIE9LCitS
VU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3IpIE9LCitSVU4o
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKSkK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1
cyIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJh
dmMxLG9wdXMiKSkKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChl
cnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y0lEcygidnAwOSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRp
b0NvZGVjSURzKCJhYWMgIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUNvZGVjVHlwZXMoInZwMDksbXA0YS40MCIpKQorUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rl
c3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjN2JjNTAxOTJmNGJi
ODljODBlYWRjZjM2N2QxZDRhYmIwZThiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1hbGxvd2VkLWNvZGVj
czwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVu
dCA9PiB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgZmFp
bFRlc3QoJ1JlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlk
ZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcyhudWxsKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKG51bGwpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMobnVsbCknKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywg
J3Byb2JhYmx5Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZp
ZGVvL21wNDsgY29kZWNzPW1wNHYiKScsICdwcm9iYWJseScpOworICAgICAgICBydW4oJ3ZpZGVv
LnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2Uo
W3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnY2FucGxheScpLCB3YWl0Rm9yQW5kRmFpbCh2aWRl
bywgJ2Vycm9yJyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAgcnVuKCdp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxtcDRhLjQw
IiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0
OyBjb2RlY3M9YXZjMSIpJywgJ3Byb2JhYmx5Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsICcnKTsKKyAgICAgICAg
cnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJv
bWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZvckFu
ZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpJyk7CisgICAg
ICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoInZw
MDksb3B1cyIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZp
ZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRl
by5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgJycpOworICAgICAgICBy
dW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9t
aXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZh
aWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIiknKTsKKyAgICAg
ICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZj
MSxvcHVzIiknKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIn
KTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywg
J2Vycm9yJyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAg
dmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2lu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IiknKTsK
KyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcygiYWFjICIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoInZwMDksbXA0YS40MCIpJyk7CisgICAgICAgIHJ1bigndmlkZW8u
c3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShb
d2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywg
J2NhbnBsYXknKV0pOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29u
dGFpbmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNv
bnRhaW5lcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3MDI3Y2U4YjU3NWI5NDU1MjJlNWZi
Yzc3NTUzZGE3OTExMzY3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1JV
TihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVsbCkp
CitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09ICdtYXliZScpIE9L
CitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpID09ICdtYXliZScpIE9L
CitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2FucGxheSkgT0sK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoImF1
ZGlvL21wMyIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKSA9PSAn
bWF5YmUnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9PSAn
JykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChlcnJvcikg
T0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMo
InZpZGVvL21wNCIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKSA9
PSAnJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0IikgPT0gJ21h
eWJlJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChjYW5w
bGF5KSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxv
d2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmZmMmQ5OTZjMzU1M2ExMzRlYTNiNjM3
NTYxNDAxNGMwN2E0YmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnM8
L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQg
PT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxU
ZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVv
Jyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRh
aW5lclR5cGVzKG51bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5
cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8u
Y2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21heWJlJyk7CisgICAgICAgIHJ1bigndmlkZW8u
c3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShb
d2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRGb3JBbmRGYWlsKHZpZGVv
LCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7CisgICAgICAgIHRlc3RFeHBl
Y3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJycpOworICAgICAgICBydW4o
J3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNl
LnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwo
dmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKScpOworICAgICAgICB0ZXN0RXhwZWN0
ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICcnKTsKKyAgICAgICAgdGVzdEV4
cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0IiknLCAnbWF5YmUnKTsKKyAgICAg
ICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQg
UHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZv
ckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0p
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjVjYzNiZDZjZTA4N2MyMDIwZWM5ZjhmMWZjYjA1ZTE5
ZDAyMzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51
bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBj
b2RlY3M9YXZjMSIpID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVT
dXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKSkKK1JV
TihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIp
KQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMx
LG1wNGEuNDAiKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVv
L21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2Uu
aXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ2ZhbHNlJykgT0sK
K0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRkU291
cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikpCitURVNUKHNvdXJjZUJ1ZmZlci5j
aGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikpIFRIUk9XUygiTm90U3VwcG9ydGVk
RXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKSBPSworUlVOKGludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JV
TihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVz
IikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNv
ZGVjcz1hdmMxIikgPT0gJ2ZhbHNlJykgT0sKK1RFU1QobWVkaWFTb3VyY2UuYWRkU291cmNlQnVm
ZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikpIFRIUk9XUygiTm90U3VwcG9ydGVkRXJyb3I6
IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKSBPSworRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxv
d2VkLWNvZGVjcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhN2E1MDRhNWYyMjE5NWRkMzhm
N2Q4OWVkYjY2YWUwOTg4NTRmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKQEAgLTAsMCAr
MSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRp
YS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4v
dmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVy
bmFscycpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworCisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAg
ICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsg
Y29kZWNzPWF2YzEiKScsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgdHJ1ZSk7CisKKyAg
ICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cygiYXZjMSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKScpOworCisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7
IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJj
ZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsIGZhbHNlKTsKKwor
ICAgICAgICBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB2aWRlby5z
cmNPYmplY3QgPSBtZWRpYVNvdXJjZTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihtZWRpYVNvdXJj
ZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IG1lZGlhU291
cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJyk7CisgICAgICAg
IHRlc3RFeGNlcHRpb24oJ3NvdXJjZUJ1ZmZlci5jaGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVj
cz1tcDR2IiknLCAnIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBw
b3J0ZWQuIicpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIiknKTsKKyAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVz
IiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRl
ZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgZmFsc2UpOworCisgICAgICAgIHRlc3RFeGNl
cHRpb24oJ21lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZj
MSIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVk
LiInKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDFlOTY2OWZiOGJkMjk4MTc5Y2VlZGFiMmM3YWY0YjNiYjA5MzFkZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2Ut
YWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1JVTihpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVsbCkpCitFWFBF
Q1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1ZScp
IE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KCJ2aWRlby9tcDQiKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZp
ZGVvL21wNCIpID09ICd0cnVlJykgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoInZpZGVvL3dlYm0iKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJj
ZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpID09ICdmYWxzZScpIE9LCitFTkQgT0YgVEVT
VAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzQ5
YTI5YTY3OTMxNmQ2Zjc2YmMxYjFmMjNjZGE3NDVhNWVkOTMzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRh
aW5lcnMuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxlPgor
ICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4gewor
ICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KCdS
ZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlz
VHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKScpOworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0
IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRp
YVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpJywgZmFsc2UpOworCisgICAgICAg
IGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby10
ZXN0LmpzCmluZGV4IGEzYjZjYjdjMzE3MmYwMTE3MzJkZDk5OWFhZjdiNDQzNjVjNmRiNWUuLjNj
MDY3ZTBmOWQ3NTMwMTVjOWEzNjI5NDRlNzVhMzY2ZGVlNzg0ODIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
dGVzdC5qcwpAQCAtMjE3LDE2ICsyMTcsMzIgQEAgZnVuY3Rpb24gd2FpdEZvckV2ZW50V2l0aFRp
bWVvdXQoZWxlbWVudCwgdHlwZSwgdGltZSwgbWVzc2FnZSkgewogICAgIH0pOwogfQogCi1mdW5j
dGlvbiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIHNpbGVudCkgeworZnVuY3Rpb24gd2FpdEZvcihl
bGVtZW50LCB0eXBlLCBzaWxlbnQsIHN1Y2Nlc3MpIHsKICAgICByZXR1cm4gbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiB7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBldmVu
dCA9PiB7Ci0gICAgICAgICAgICBpZiAoIXNpbGVudCkKKyAgICAgICAgICAgIGlmIChzaWxlbnQp
IHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGV2ZW50KTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWNjZXNzICE9PSB1bmRlZmlu
ZWQpCisgICAgICAgICAgICAgICAgbG9nUmVzdWx0KHN1Y2Nlc3MsIGBFVkVOVCgke2V2ZW50LnR5
cGV9KWApOworICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShg
RVZFTlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgcmVzb2x2
ZShldmVudCk7CiAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKICAgICB9KTsKIH0KIAorZnVu
Y3Rpb24gd2FpdEZvckFuZFN1Y2NlZWQoZWxlbWVudCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0
Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVlKTsKK30KKworZnVuY3Rpb24gd2FpdEZvckFu
ZEZhaWwoZWxlbWVudCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUs
IGZhbHNlLCB0cnVlKTsKK30KKwogZnVuY3Rpb24gd2FpdEZvckV2ZW50T25jZShldmVudE5hbWUs
IGZ1bmMsIGVuZGl0KQogewogICAgIHdhaXRGb3JFdmVudChldmVudE5hbWUsIGZ1bmMsIGVuZGl0
LCB0cnVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBi
MGQyOWQ0OTliNDZlY2JiMzAwYmM5OTUzNjM2MzY3Y2JjZjZlMzcyLi5kZTI4OTUyYzBmZWQ4NGM4
ZjIxMDQ5MDc1MDE2NGQ1YmJlMTljY2RiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTg1MCwzICsxODUwLDUgQEAgd2Via2l0Lm9yZy9iLzE2MDExOSBm
YXN0L3JlcGFpbnQvc2VsZWN0aW9uLWdhcC1mbGlwcGVkLWZpeGVkLWNoaWxkLmh0bWwgWyBGYWls
dXIKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKICMgVGhlc2UgdGVzdHMgcmVx
dWlyZSBwbGF0Zm9ybSBzdXBwb3J0LgorbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbAor
bWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg4
Yzc4MTVmYmZhNmMxNWFlOTAzZWJmMDhmNDA3MmI1MzNmNzRlZTcuLmVkMmFlMzIyYTI2ZjZkMjQ5
NjQ2NThkYzg0NjhmZjJmM2Q1Y2ZlZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0yNDQwLDQgKzI0NDAsNyBAQCBmYXN0L3RleHQvZm9udC1sb29rdXAt
ZG90LXByZWZpeC1jYXNlLXNlbnNpdGl2ZS5odG1sIFsgUGFzcyBdCiBbIENhdGFsaW5hIEJpZ1N1
ciBNb250ZXJleSBdIGZhc3QvdGV4dC9sb2NhbGUtc2hhcGluZy0zLmh0bWwgWyBQYXNzIEltYWdl
T25seUZhaWx1cmUgXQogCiAjcmRhcjovLzgwMzMzMDcxCi1bIEJpZ1N1cisgXSBjb21wb3NpdGlu
Zy9pZnJhbWVzL2JvcmRlci1yYWRpdXMtY29tcG9zaXRlZC1mcmFtZS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorWyBCaWdTdXIrIF0gY29tcG9z
aXRpbmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQorCisjIHJkYXI6Ly84NDU1NjgzMSAKK1sgQ2F0YWxpbmEgXSBtZWRpYS9t
ZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbCBbIFNraXAgXQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>
<flag name="commit-queue"
          id="478603"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451766</attachid>
            <date>2022-02-11 18:14:28 -0800</date>
            <delta_ts>2022-02-12 09:05:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236245-20220211181428.patch</filename>
            <type>text/plain</type>
            <size>90754</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE2MzUwZWZiYjIxYWFiM2U4MTc1OGZj
NzFlYWQzNTIwMjBjNGY4OWMuLmRmODRkYTQ5MmY5MDI2OTQyZTk4MzZiOTI1Yjg0NTYzZTQ3ZjNh
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNv
bnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0xMSAgRG9uIE9sbXN0ZWFkICA8ZG9u
Lm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gQ2hlY2sgZm9yIE1BUF9BTElH
TkVEIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZDYxNjk2ZDBlYjVlZjY2NmI4ZmVmZGQwM2MxM2Uz
YTE5N2M2ZWYyLi4yOTgwYTJmYmNjMmM3MzFhOTllNGEzOTFiOWZjYzY0MTdhZTlhZTdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBj
b250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21lZGlh
LWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLWFsbG93ZWQt
Y29udGFpbmVycy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKKworICAgICAgICBBZGQg
c2V0dGluZ3MgYXQgdGhlIFdlYkNvcmUgbGV2ZWwgdG8gb3B0aW9uYWxseSBkZWNsYXJlIGEgbGlz
dCBvZiBjb250YWluZXIgdHlwZXMsCisgICAgICAgIHZpZGVvIGNvZGVjcywgYXVkaW8gY29kZWNz
LCBhbmQgY2FwdGlvbiBmb3JtYXRzIHRvIGFsbG93IHdoZW4gbG9hZGluZyBtZWRpYSB0aHJvdWdo
CisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYW5kIE1lZGlhU291cmNlLgorCisgICAgICAgIFRo
ZXJlIGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoZSBjb2RlYyBJRCwgdHlwaWNhbGx5IGEgZm91ci1j
aGFyYWN0ZXItY29kZSBlbWJlZGRlZAorICAgICAgICBpbiB0aGUgY29udGFpbmVyIGl0c2VsZiwg
ZG9lcyBub3QgbWF0Y2ggdGhlIFJGQzQyODEgY29kZWMgc3RyaW5nLiBOb3RhYmx5LCB0aGlzIGlz
IHRoZSBjYXNlCisgICAgICAgIHdpdGggIm1wNGEuNDAiIGFuZCAnYWFjICcuIFNvIHRoZSBzZXR0
aW5ncyBtdXN0IGluY2x1ZGUgYm90aCB0aGUgY29kZWMgSUQgYW5kIHRoZSBjb2RlYworICAgICAg
ICB0eXBlIGluIHN0cmluZyBmb3JtLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIEhU
TUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCkgYW5kIE1lZGlhU291cmNlOjppc1R5cGVTdXBw
b3J0ZWQoKQorICAgICAgICBhbmQgcmVqZWN0IENvbnRlbnRUeXBlcyB3aGljaCBkbyBub3QgY29u
Zm9ybSB0byB0aGUgYWxsb3dlZCB0eXBlcy4KKworICAgICAgICBRdWVyeSB0aGVzZSBsaXN0cyBp
biBNZWRpYVNvdXJjZTo6Y2hhbmdlVHlwZSgpIHRvIGRpc2FsbG93IHN3aXRjaGluZyB0byBhbiB1
bnN1cHBvcnRlZAorICAgICAgICBDb250ZW50VHlwZS4KKyAgICAgICAgCisgICAgICAgIElmIHRo
ZXNlIGxpc3RzIGFyZSBzZXQsIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgYXMgY3JlYXRpb24g
b3B0aW9ucy4KKworICAgICAgICBXaGVuIGEgbmV3IEFWQXNzZXRUcmFjayBpcyBsb2FkZWQsIHF1
ZXJ5IHRoZXNlIGxpc3RzIGFuZCBpZiB0aGUgdHJhY2sncyB0eXBlIGRvZXMgbm90CisgICAgICAg
IGNvbmZvcm0gdG8gdGhlIGFsbG93ZWQgdHlwZXMsIHN5bnRoZXNpemUgYW4gZXJyb3IgYW5kIGJs
b2NrIGZ1cnRoZXIgbG9hZGluZy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBv
cnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5
cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjphbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jh
c2U6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRlbnRUeXBlc1RvQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUeXBlTWVldHND
b250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRp
b25hbFN0cmluZ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpudWxsT3B0aW9uYWxGb3VyQ0NW
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5leHRCZXN0TWVkaWFFbmdp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVk
aWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Ojpsb2FkaW5nTWV0YWRhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRlbnRUeXBlc1RvQ29kZWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxs
VHJhY2tzQXJlUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tJc1BsYXlhYmxlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjphc3NldFRy
YWNrTWV0YWRhdGFLZXlOYW1lcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDIyLTAyLTExICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIGdyYW1tYXIgY2hlY2tp
bmcgb24gTWFjIENhdGFseXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggMGE3ODdlMDU4NDA2NjFi
NDhiZjY3MGY2OTkzZjZmNGU4ZWFlMmJmMi4uMzZhOWRjODdjZjdiMjE1Mzk5YTA5MGU2YTkzMjI0
NWUzYzBmMDlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDIt
MDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRp
bmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRp
dmUgUG9ydGFsIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzNjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9j
b2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbToKKwogMjAyMi0wMi0xMCAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFN1cHBvcnQgYm90
aCB2ZXJzaW9ucyBvZiBTY3JlZW5DYXB0dXJlS2l0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmYTc0ODc4OTA0
ZGI0MDU4Zjc2YmZkZmNkMjk3ODFjYWM2ODVmMDA1Li5kYjhjNjU3ZDA0ZGU4ODk5OTQ3YjU2ZGYz
M2JmYTlhYjg1OTgyZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIyLTAyLTA3ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0
byByZXN0cmljdCBtZWRpYSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBv
cnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBzdXBwb3J0c1R5
cGVBbmRDb2RlY3MoKSBjYWxscywgd2hpY2gKKyAgICAgICAgaXMgcHJvYmxlbWF0aWMgd2hlbiB0
aG9zZSByZXN1bHRzIGNhbiBjaGFuZ2UgZHVlIHRvIGEgY2hhbmdlIGluIHNldHRpbmdzLiBTbyBl
bmZvcmNlCisgICAgICAgIHRoZSBhbGxvd2VkIGNvZGVjIGFuZCBjb250YWluZXJzIHNldHRpbmdz
IGF0IHRoZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgbGV2ZWwuIEFsc28sCisgICAgICAgIHBh
c3MgdGhvc2Ugc2V0dGluZ3MgYWNyb3NzIHRoZSBHUFUgcHJvY2VzcyBib3VuZGFyeSB2aWEgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgRHJpdmUtYnkgZml4
OiByZWZhY3RvciBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZGVjb2RlKCkg
c28gYXMgbm90IHRvIHJlcXVpcmUKKyAgICAgICAgcmUtZGVjbGFyaW5nIHRoZSB0eXBlcyBvZiBl
dmVyeSBpdmFyLCBhbmQgZ3JlYXRseSBzaW1wbGlmeSB0aGUgaW1wbGVtZW50YXRpb24uCisKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9u
Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9u
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
Q29uZmlndXJhdGlvbjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbW90ZU1lZGlhUGxheWVyKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDIyLTAyLTExICBNZWdhbiBHYXJkbmVy
ICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIGdyYW1tYXIgY2hl
Y2tpbmcgb24gTWFjIENhdGFseXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCBlNzljN2Q5MmQxMjhhODY2OGYzNGMzMjQx
ODUzOTE0NjMzMWYyZWNlLi40YWE2N2EzMTI5ODA0ZGE5ZmY4ZTZhNDQ5NDU5NmM0NjYxZmY5ZTE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXMueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5j
ZXMueWFtbApAQCAtMTMyNiw2ICsxMzI2LDE0IEBAIE1heFBhcnNlRHVyYXRpb246CiAgICAgV2Vi
Q29yZToKICAgICAgIGRlZmF1bHQ6IC0xCiAKK01lZGlhQXVkaW9Db2RlY0lEc0FsbG93ZWRJbkNh
cHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUK
KyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAg
ICAgZGVmYXVsdDogJyJhYWMgLHphYWMscWFhYyxjYWFjLC5tcDMiJworCiBNZWRpYUNhcGFiaWxp
dGllc0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOgpAQCAtMTMzNiw2ICsx
MzQ0LDMwIEBAIE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZDoKICAgICBXZWJDb3JlOgogICAgICAg
ZGVmYXVsdDogZmFsc2UKIAorTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXNBbGxvd2VkSW5DYXB0aXZl
UG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4
cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRl
ZmF1bHQ6ICciYzYwOCx3dnR0IicKKworTWVkaWFDb2RlY1R5cGVzQWxsb3dlZEluQ2FwdGl2ZVBv
cnRhbE1vZGU6CisgIHR5cGU6IFN0cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBv
c2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZh
dWx0OiAnIm1wNGEuNDAsYXZjMSInCisKK01lZGlhQ29udGFpbmVyVHlwZXNBbGxvd2VkSW5DYXB0
aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisg
IGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAgICAg
IGRlZmF1bHQ6ICcidmlkZW8vbXA0LGF1ZGlvL21wNCx2aWRlby94LW00dixhdWRpby94LW00YSxh
dWRpby9tcDMsYXBwbGljYXRpb24veC1tcGVnVVJMLHZuZC5hcHBsZS5tcGVnVVJMIicKKwogTWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ6CiAgIHR5cGU6IFN0cmluZwog
ICB3ZWJjb3JlRXhjbHVkZUZyb21JbnRlcm5hbFNldHRpbmdzOiB0cnVlCkBAIC0xNDU1LDYgKzE0
ODcsMTQgQEAgTWVkaWFVc2VyR2VzdHVyZUluaGVyaXRzRnJvbURvY3VtZW50OgogICAgIFdlYkNv
cmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYVZpZGVvQ29kZWNJRHNBbGxvd2VkSW5D
YXB0aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisgIHdlYmNvcmVCaW5kaW5nOiBub25l
CisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZhbHVlOgorICAgIFdlYktpdDoKKyAg
ICAgIGRlZmF1bHQ6ICciYXZjMSx6YXZjLHFhdmMsY2F2YyInCisKIE1lbnVJdGVtRWxlbWVudEVu
YWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNv
dXJjZS5jcHAKaW5kZXggNTk1ZTQyNTQyN2U4ZWJhYzlmNWFiNmFmMTBhNTczYzA1NDViYjRhYi4u
OTEyNzQ3ZjQwNmMyOTU5NDk5NzNiNWJiMTM0OWRiY2E2NzQxYzEzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKIAogI2luY2x1ZGUgIkF1ZGlvVHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiQ29udGVu
dFR5cGUuaCIKKyNpbmNsdWRlICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVsZW1l
bnQuaCIKQEAgLTkwOSw2ICs5MTAsMTcgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9y
dGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAgICBw
YXJhbWV0ZXJzLmlzTWVkaWFTb3VyY2UgPSB0cnVlOwogICAgIHBhcmFtZXRlcnMuY29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0ID0gV1RGTW92ZShjb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQpOwogCisgICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpKSB7Cisg
ICAgICAgIGF1dG8mIHNldHRpbmdzID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnNldHRp
bmdzKCk7CisgICAgICAgIGlmICghY29udGVudFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlw
ZVJlcXVpcmVtZW50cyhjb250ZW50VHlwZSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKSwgc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzID0gc2V0dGluZ3MuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICAgICAg
cGFyYW1ldGVycy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gc2V0dGluZ3MuYWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcygpOworICAgICAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNJRHMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgICAg
IHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gc2V0dGluZ3MuYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7CisgICAgfQorCiAgICAgTWVkaWFQbGF5ZXI6
OlN1cHBvcnRzVHlwZSBzdXBwb3J0ZWQgPSBNZWRpYVBsYXllcjo6c3VwcG9ydHNUeXBlKHBhcmFt
ZXRlcnMpOwogCiAgICAgaWYgKGNvZGVjcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMmIzY2RlMzYw
ODI0NzFjMTFjODdmY2Y2MWNjODFjYzM2MGMzOWQ5MC4uZTA2OTI3MGRmNmI2ZDFlN2JmYmMzZTIw
OTMyNzY3NmIyZDhhMzk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkF1
ZGlvVHJhY2tMaXN0LmgiCiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2lu
Y2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxN
ZWRpYUVsZW1lbnQuaCIKQEAgLTM1NSw2ICszNTYsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU291
cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICAvLyB0aGUgdHlw
ZXMgc3BlY2lmaWVkIChjdXJyZW50bHkgb3IgcHJldmlvdXNseSkgb2YgU291cmNlQnVmZmVyIG9i
amVjdHMgaW4gdGhlIHNvdXJjZUJ1ZmZlcnMgYXR0cmlidXRlIG9mCiAgICAgLy8gdGhlIHBhcmVu
dCBtZWRpYSBzb3VyY2UsIHRoZW4gdGhyb3cgYSBOb3RTdXBwb3J0ZWRFcnJvciBleGNlcHRpb24g
YW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKHR5cGUp
OworCisgICAgYXV0byYgc2V0dGluZ3MgPSBkb2N1bWVudCgpLnNldHRpbmdzKCk7CisgICAgaWYg
KCFjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWlyZW1lbnRzKGNvbnRl
bnRUeXBlLCBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpLCBzZXR0aW5ncy5h
bGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IgfTsKKwogICAgIGlmICghbV9wcml2YXRlLT5jYW5Td2l0Y2hUb1R5cGUo
Y29udGVudFR5cGUpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IgfTsKIApAQCAtNzg2LDYgKzc5MiwyNSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFsaXphdGlvblNlZ21lbnQoSW5pdGlhbGl6YQogICAg
ICAgICAvLyA1LjEgSWYgdGhlIGluaXRpYWxpemF0aW9uIHNlZ21lbnQgY29udGFpbnMgdHJhY2tz
IHdpdGggY29kZWNzIHRoZSB1c2VyIGFnZW50IGRvZXMgbm90IHN1cHBvcnQsCiAgICAgICAgIC8v
IHRoZW4gcnVuIHRoZSBhcHBlbmQgZXJyb3IgYWxnb3JpdGhtIHdpdGggdGhlIGRlY29kZSBlcnJv
ciBwYXJhbWV0ZXIgc2V0IHRvIHRydWUgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgICAgICAv
LyBOT1RFOiBUaGlzIGNoZWNrIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgU291cmNlQnVm
ZmVyUHJpdmF0ZS4KKyAgICAgICAgaWYgKGF1dG8mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMg
PSBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpKSB7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5hdWRpb1RyYWNr
cykgeworICAgICAgICAgICAgICAgIGlmIChhdWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbiAmJiBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzLT5jb250YWlucyhGb3VyQ0M6OmZyb21TdHJpbmcoYXVk
aW9UcmFja0luZm8uZGVzY3JpcHRpb24tPmNvZGVjKCkpKSkKKyAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgYXBwZW5kRXJyb3IodHJ1ZSk7CisgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoYXV0byYgYWxsb3dlZE1lZGlhVmlk
ZW9Db2RlY0lEcyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzKCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgdmlkZW9UcmFja0luZm8gOiBzZWdtZW50
LnZpZGVvVHJhY2tzKSB7CisgICAgICAgICAgICAgICAgaWYgKHZpZGVvVHJhY2tJbmZvLmRlc2Ny
aXB0aW9uICYmIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMtPmNvbnRhaW5zKEZvdXJDQzo6ZnJv
bVN0cmluZyh2aWRlb1RyYWNrSW5mby5kZXNjcmlwdGlvbi0+Y29kZWMoKSkpKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhcHBlbmRFcnJvcih0cnVlKTsK
KyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIC8vIDUuMiBGb3IgZWFj
aCBhdWRpbyB0cmFjayBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCwgcnVuIGZvbGxvd2lu
ZyBzdGVwczoKICAgICAgICAgZm9yIChhdXRvJiBhdWRpb1RyYWNrSW5mbyA6IHNlZ21lbnQuYXVk
aW9UcmFja3MpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaAppbmRleCBhOTdhODc2MWU5NjQ4MTA4MTcyMWJlYzUyN2MwMTBiZTQ1
M2ZkMzk3Li45NzcyMTU4ZmE5YTU0NmI0Njc1NzkyN2EwMzFjMjhkMTBiZGE0MjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5o
CkBAIC0xMjcsNiArMTI3LDE0IEBAIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVk1l
ZGlhVHlwZUF1ZGlvIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVk1lZGlhVHlwZUF1ZGlvKCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlw
ZU1ldGFkYXRhLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVk1lZGlhVHlwZU1ldGFkYXRhIFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVk1lZGlhVHlwZU1ldGFkYXRhKCkKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dh
YmxlVHlwZUNhdGVnb3JpZXNLZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxv
d2FibGVUeXBlQ2F0ZWdvcmllc0tleSBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFs
bG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9G
T1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2Rl
Y1R5cGVzS2V5LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9D
b2RlY1R5cGVzS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQXVk
aW9Db2RlY1R5cGVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVS
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5
LCBOU1N0cmluZyAqKQorI2RlZmluZSBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVz
S2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5
cGVzS2V5KCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfSEVBREVSKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXksIE5TU3RyaW5n
ICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSBQQUw6Omdl
dF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5KCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5LCBOU1N0cmluZyAq
KQogI2RlZmluZSBBVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5j
aW5nVVJJS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0SW5oZXJpdFVSSVF1ZXJ5
Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5KCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkFzc2V0SW1hZ2VHZW5lcmF0b3JBcGVydHVyZU1v
ZGVDbGVhbkFwZXJ0dXJlLCBOU1N0cmluZyAqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KaW5kZXggYmQ2ZWJiY2I5OTEzZGE4
YzEyYThiOTZhYTJiZTEyOGYwODE5Mzc3ZC4uNmRiOTI1YmFmM2U1MmUyZDJkYzFkYTg3ODU5YmZl
Zjg5NTQ4MDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tCkBAIC0xODIsNiArMTgyLDEwIEBAIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlNhbXBsZUJ1
ZmZlckF1ZGlvCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IEFWRm91bmRhdGlvbiwgQVZTdHJlYW1EYXRhUGFyc2VyQ29udGVudEtleVJlcXVlc3RQcm90b2Nv
bFZlcnNpb25zS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5U
X0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lv
bkNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkTm90aWZpY2F0aW9uLCBO
U1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lU
SF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU3RyZWFtaW5nS2V5RGVsaXZlcnlDb250ZW50
S2V5VHlwZSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlf
RkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0
QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91
bmRhdGlvbiwgQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSwgTlNTdHJpbmcg
KiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2Rl
Y1R5cGVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0Q2FjaGVLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxB
c3NldEluaGVyaXRVUklRdWVyeUNvbXBvbmVudEZyb21SZWZlcmVuY2luZ1VSSUtleSwgTlNTdHJp
bmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQ
T1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0T3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tz
S2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA2MTQyZDI0M2Ri
Mjg4MGM1MWVmZWY1OGEwNGM5YjBiYTc1M2Y2MDQxLi4yMDE5MDU2MmMxMzM2MTY4MzI1YTM0OThl
NWIzMWQ0MDgyZGI2N2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjAwMyw2ICsyMDAzLDcgQEAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JTZXJpYWxpemF0aW9uLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3JTcGFjZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yVXRpbGl0aWVzLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rlc3RpbmF0aW9uQ29sb3JTcGFj
ZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBh
OGQ3MzY4NWUwYmI0ZjRhNzU0ZWRlNDkxNzZhMzJiODBlMmQyZGJiLi43ODlkNzZlZmVmMzU3MzYw
ZjBhOWQ0ZGVkMmNiOTkwNmQxY2RkYTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTY2LDYgKzQ1NjYsNyBAQAogCQlDREFC
NkQyRTE3QzgxNEVFMDBDNjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMkMxN0M4MTRFRTAwQzYw
QjM0IC8qIEpTTWVkaWFDb250cm9sc0hvc3QuaCAqLzsgfTsKIAkJQ0RBQjZEMzExN0M5MjU5NTAw
QzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlwdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQUI2RDJGMTdDOTI1OTUwMEM2MEIzNCAvKiBVc2VyQWdlbnRT
Y3JpcHRzLmggKi87IH07CiAJCUNEQUMwNjgzMjRDNkE5NUEwMDJGNzI3RiAvKiBWUDlVdGlsaXRp
ZXNDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q2RkU1QjcyNEJDRTY0NTAwOUZDREE0IC8qIFZQOVV0aWxpdGllc0NvY29hLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RBRDFBNUEyN0FGQzI3
QzAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFEMUE1NzI3QUZCRjM5MDA2OTkyODUgLyogQ29u
dGVudFR5cGVVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDREI2MzU0OTIzRjYwMjNBMDBDMEY5REUgLyogV2ViQVZQbGF5ZXJDb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REEyOUEyQzFDQkY3M0ZDMDA5MDFDQ0YgLyogV2ViQVZQbGF5ZXJDb250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RCNzA0NUExRjc0
NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREI3MDQ1ODFGNzQ2NUExMDAzOTIzREYgLyog
Q0RNRmFpclBsYXlTdHJlYW1pbmcuaCAqLzsgfTsKIAkJQ0RCNzA0NUIxRjc0NjVBMTAwMzkyM0RG
IC8qIENETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEQjcwNDU5MUY3NDY1QTEwMDM5MjNERiAvKiBDRE1GYWlyUGxh
eVN0cmVhbWluZy5jcHAgKi87IH07CkBAIC0xNjE2NSw2ICsxNjE2Niw4IEBACiAJCUNEQUI2RDJD
MTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFDb250cm9sc0hvc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RBQjZEMkYxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2VudFNjcmlw
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVXNlckFnZW50U2NyaXB0cy5o
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdlbnRTY3JpcHRzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUNEQUI2RDMwMTdDOTI1OTUwMEM2MEIz
NCAvKiBVc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBVc2VyQWdlbnRTY3JpcHRzRGF0YS5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1VzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBl
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRUeXBlVXRpbGl0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEQUQxQTU4MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250
ZW50VHlwZVV0aWxpdGllcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZW50VHlwZVV0aWxp
dGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQUU4QzA3MTc0NkI5NTcw
MDUzMkQ3OCAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBRThDMDgxNzQ2Qjk1NzAwNTMyRDc4IC8q
IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RCNzA0NTgxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQbGF5U3RyZWFt
aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENETUZhaXJQbGF5U3RyZWFtaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODg1Nyw2ICsyODg2MCw4IEBACiAJCQkJQzJGNEU3ODkxRTQ1
QUVERjAwNkQ3MTA1IC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oICovLAogCQkJCTFDODRCRTQx
MjZEMzkzOUYwMDJENjFGQyAvKiBDb21wb3NlZENoYXJhY3RlckNsdXN0ZXJUZXh0SXRlcmF0b3Iu
aCAqLywKIAkJCQk3MkJBQzNBNzIzRTE3MzI4MDA4RDc0MUMgLyogQ29uY3JldGVJbWFnZUJ1ZmZl
ci5oICovLAorCQkJCUNEQUQxQTU4MjdBRkJGMzkwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxp
dGllcy5jcHAgKi8sCisJCQkJQ0RBRDFBNTcyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBl
VXRpbGl0aWVzLmggKi8sCiAJCQkJMkQyRkMwNTQxNDYwQ0Q2RjAwMjYzNjMzIC8qIENyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmNwcCAqLywKIAkJCQkyRDJGQzA1NTE0NjBDRDZGMDAyNjM2MzMgLyog
Q3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlBOENCNDEwMjBFODVCOEE1MDAzMkM0
RjAgLyogRGFzaEFycmF5LmggKi8sCkBAIC0zMzg4OCw2ICszMzg5Myw3IEBACiAJCQkJQ0U3OTlG
OTgxQzZBNDZCQzAwOTdCNTE4IC8qIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUNFNzk5RkFDMUM2QTUwNjYwMDk3QjUxOCAvKiBDb250ZW50U2Vj
dXJpdHlQb2xpY3lTb3VyY2VMaXN0RGlyZWN0aXZlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQw
MTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNEQUQxQTVBMjdBRkMyN0MwMDY5OTI4NSAvKiBDb250ZW50VHlwZVV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc2MjdCOEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAy
N0EgLyogQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY1MEIwQzJFREEw
MDVBMkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL2Nh
cHRpb25zLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2U4NzY5ZDU0MDc4ZGQ1YjE2ZjFhOTI1ZGEyNTViODgx
Nzk1YmJkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL2NhcHRpb25zLmNz
cwpAQCAtMCwwICsxLDI4IEBACit2aWRlbzo6Y3VlKCopIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZ2JhKDAsIDAsIDAsIDAuOCk7Cit9CisKK3ZpZGVvOjpjdWUoOmZ1dHVyZSkgPiAqIHsKKyAg
ICBjb2xvcjogZ3JheTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1kaXNw
bGF5IHsKKyAgICBmb250OiAyMnB4IHNhbnMtc2VyaWY7IC8qIEtlZXAgaW4gc3luYyB3aXRoIGBE
RUZBVUxUQ0FQVElPTkZPTlRTSVpFYC4gKi8KK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4
dC10cmFjay1jb250YWluZXIgYiB7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK3ZpZGVv
Ojotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHUgeworICAgIHRleHQtZGVjb3Jh
dGlvbjogdW5kZXJsaW5lOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWNv
bnRhaW5lciBpIHsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKK3ZpZGVvOjotd2Via2l0
LW1lZGlhLXRleHQtdHJhY2stcmVnaW9uIHsKKyAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAs
IDAuOCk7CisgICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBlNWZhMmNjN2MxMmM5NjJkZjQ3OGFk
ZWIzYmUyODgxYzc4Yjk2ZjA4Li43MjVjNTIwYTJlYjE2YTczMmFkYmRmZDBkYThlMTA5ZTdjZTQ1
NWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEwODks
NiArMTA4OSwxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKICAgICBDb250ZW50VHlwZSBjb250ZW50VHlwZShtaW1l
VHlwZSk7CiAgICAgcGFyYW1ldGVycy50eXBlID0gY29udGVudFR5cGU7CiAgICAgcGFyYW1ldGVy
cy5jb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBtZWRpYUNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlh
Q29udGFpbmVyVHlwZXMgPSBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAgIHBhcmFt
ZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsK
KyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
ID0gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7
CisKICAgICBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnQgPSBNZWRpYVBsYXllcjo6
c3VwcG9ydHNUeXBlKHBhcmFtZXRlcnMpOwogICAgIFN0cmluZyBjYW5QbGF5OwogCkBAIC03NDA3
LDYgKzc0MTMsMzEgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclNob3VsZENo
ZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0
aW5ncygpLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBIVE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFDb2Rl
Y1R5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91
ckNDPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25z
dAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgSFRN
TE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7
Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBIVE1MTWVkaWFFbGVt
ZW50OjphbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdAoreworICAgIHJldHVy
biBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7
Cit9CisKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5n
ZXNDaGFuZ2VkKCkKIHsKICAgICBpZiAoIW1fdGV4dFRyYWNrcyB8fCBtX2J1ZmZlcmVkVGltZVJh
bmdlc0NoYW5nZWRUYXNrQ2FuY2VsbGF0aW9uR3JvdXAuaGFzUGVuZGluZ1Rhc2soKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggYjVmZTEzODUzYzY5NDI3ODM3ZWYz
ZjkxZDJiZDI2MWMxOTNkYzRiYi4uODllNmE2MjY4YmY2ZDYxYzVlMzczZjI5YTg0OTZiMWQ2Nzcz
YmFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTc3MCw2ICs3
NzAsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkRGlzYWJsZVNsZWVw
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gc2hvdWxkRGlzYWJsZVNsZWVwKCkgPT0gU2xlZXBUeXBl
OjpEaXNwbGF5OyB9CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBw
b3J0KCkgY29uc3QgZmluYWw7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKKyAgICBj
b25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJp
bmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkg
Y29uc3QgZmluYWw7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkg
Y29uc3QgZmluYWw7CisKICAgICB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRUaW1lUmFuZ2VzQ2hh
bmdlZCgpIGZpbmFsOwogCiAjaWYgVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NCYXNlLmNwcAppbmRleCA3ZjU0ZDg3NjhjYzJmYTM2NGU1NDQxY2U4ZDQwZGE4NTYwNzljNmZi
Li4xNmNhZjg0MzcxN2Q5ZjBkMTM4N2ZmMTk5ZTVkNzgxNWI2MWFmNDY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5nc0Jhc2UuY3BwCkBAIC0xOTksNyArMTk5LDk4IEBAIHZvaWQgU2V0dGluZ3NC
YXNlOjpzZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydChjb25zdCBW
ZWN0b3I8Q29uCiAgICAgbV9tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dCA9IGNvbnRlbnRUeXBlczsKIH0KIAordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlz
TnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiBuZXdU
eXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykp
CisgICAgICAgIG5ld1R5cGVzLmFwcGVuZCh0eXBlLnRvU3RyaW5nKCkpOworCisgICAgbV9hbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcyA9IFdURk1vdmUobmV3VHlwZXMpOworfQorCit2b2lkIFNl
dHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVz
KQoreworICAgIGlmICh0eXBlcy5pc051bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMgPSBzdGQ6Om51bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBW
ZWN0b3I8U3RyaW5nPiBuZXdUeXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXco
dHlwZXMpLnNwbGl0KCcsJykpCisgICAgICAgIG5ld1R5cGVzLmFwcGVuZCh0eXBlLnRvU3RyaW5n
KCkpOwogCisgICAgbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7
Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKGNv
bnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAg
IG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIFZlY3RvcjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0
byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0
byBmb3VyQ0MgPSBGb3VyQ0M6OmZyb21TdHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBl
cy5hcHBlbmQoV1RGTW92ZSgqZm91ckNDKSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzID0gV1RGTW92ZShuZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNl
OjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7Cisg
ICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3Rv
cjxGb3VyQ0M+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBl
cykuc3BsaXQoJywnKSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0MgPSBGb3VyQ0M6OmZyb21T
dHJpbmcodHlwZSkpCisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQoV1RGTW92ZSgqZm91ckND
KSk7CisgICAgfQorCisgICAgbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gV1RGTW92ZShu
ZXdUeXBlcyk7Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxs
KCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBzdGQ6Om51
bGxvcHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBWZWN0b3I8Rm91ckNDPiBuZXdU
eXBlczsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IFN0cmluZ1ZpZXcodHlwZXMpLnNwbGl0KCcsJykp
IHsKKyAgICAgICAgaWYgKGF1dG8gZm91ckNDID0gRm91ckNDOjpmcm9tU3RyaW5nKHR5cGUpKQor
ICAgICAgICAgICAgbmV3VHlwZXMuYXBwZW5kKFdURk1vdmUoKmZvdXJDQykpOworICAgIH0KKwor
ICAgIG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7
Cit9CisKK3ZvaWQgU2V0dGluZ3NCYXNlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKK3sKKyAg
ICBtX21pbmltdW1ET01UaW1lckludGVydmFsID0gRE9NVGltZXI6OmRlZmF1bHRNaW5pbXVtSW50
ZXJ2YWwoKTsKKworICAgIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHN0ZDo6bnVsbG9w
dCk7CisgICAgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhzdGQ6Om51bGxvcHQpOworICAgIHNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoc3RkOjpudWxsb3B0KTsKKyAgICBzZXRBbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzKHN0ZDo6bnVsbG9wdCk7CisgICAgc2V0QWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzKHN0ZDo6bnVsbG9wdCk7CisKKyNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQorICAgIG1fb25lTGluZVRleHRNdWx0aXBsaWVyQ29lZmZpY2llbnQgPSBkZWZhdWx0T25l
TGluZVRleHRNdWx0aXBsaWVyQ29lZmZpY2llbnQ7CisgICAgbV9tdWx0aUxpbmVUZXh0TXVsdGlw
bGllckNvZWZmaWNpZW50ID0gZGVmYXVsdE11bHRpTGluZVRleHRNdWx0aXBsaWVyQ29lZmZpY2ll
bnQ7CisgICAgbV9tYXhUZXh0QXV0b3NpemluZ1NjYWxlSW5jcmVhc2UgPSBkZWZhdWx0TWF4VGV4
dEF1dG9zaXppbmdTY2FsZUluY3JlYXNlOworI2VuZGlmCit9CiAKIC8vIE1BUksgLSBvbkNoYW5n
ZSBoYW5kbGVycwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaAppbmRleCA0MGRkYjhhN2Y3
YWY4NDVkNGI2NWU2MzBmYjdhYjJlNjU0YmExYzkyLi4xYjM5YjEzNjljMDk2YzgzMzY1MmQ4OTE1
ZTNkYTVkOGI3MTk2ZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmgKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJGb250TG9hZFRpbWluZ092ZXJyaWRlLmgiCiAjaW5jbHVkZSAi
Rm9udFJlbmRlcmluZ01vZGUuaCIKICNpbmNsdWRlICJGb3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUu
aCIKKyNpbmNsdWRlICJGb3VyQ0MuaCIKICNpbmNsdWRlICJGcmFtZUZsYXR0ZW5pbmcuaCIKICNp
bmNsdWRlICJIVE1MUGFyc2VyU2NyaXB0aW5nRmxhZ1BvbGljeS5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyRW51bXMuaCIKQEAgLTEwOCw2ICsxMDksMjggQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0TWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQo
Y29uc3QgU3RyaW5nJik7CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250
ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlh
Q29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OyB9CiAKKyAgICB2b2lkIHNldEFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiYg
dHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IFdURk1vdmUodHlwZXMpOyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhj
b25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYg
YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzOyB9CisKKyAgICB2b2lkIHNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mJiB0eXBlcykgeyBtX2FsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IHsg
cmV0dXJuIG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsgfQorCisgICAgdm9pZCBzZXRBbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiYgdHlwZXMp
IHsgbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3Ry
aW5nJik7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3Qg
eyByZXR1cm4gbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOyB9CisKKyAgICB2b2lkIHNldEFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyhzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+
PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gV1RGTW92ZSh0
eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYUNhcHRpb25G
b3JtYXRUeXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QgeyByZXR1
cm4gbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7IH0KKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgZXhw
bGljaXQgU2V0dGluZ3NCYXNlKFBhZ2UqKTsKICAgICB2aXJ0dWFsIH5TZXR0aW5nc0Jhc2UoKTsK
QEAgLTE1MCw2ICsxNzMsMTEgQEAgcHJvdGVjdGVkOgogICAgIFRpbWVyIG1fc2V0SW1hZ2VMb2Fk
aW5nU2V0dGluZ3NUaW1lcjsKIAogICAgIFZlY3RvcjxDb250ZW50VHlwZT4gbV9tZWRpYUNvbnRl
bnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgIHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+IG1fYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHM7CisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzOwogCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICBzdGF0aWMg
Y29uc3RleHByIGNvbnN0IGZsb2F0IGJvb3N0ZWRPbmVMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmlj
aWVudCA9IDIuMjMxMjVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZDc1NTI4MTYx
N2IwYWM4OGI3NDBmZGMwZTc2MzllNWI1ZmZjODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJD
b250ZW50VHlwZVV0aWxpdGllcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNpbmNsdWRl
ICJGb3VyQ0MuaCIKKyNpbmNsdWRlIDx3dGYvQWxnb3JpdGhtcy5oPgorCitib29sIGNvbnRlbnRU
eXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29uc3QgQ29udGVudFR5
cGUmIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcywgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMpCit7CisgICAgaWYgKGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzICYmICFhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcy0+Y29udGFpbnModHlwZS5jb250YWlu
ZXJUeXBlKCkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWFsbG93ZWRNZWRp
YUNvZGVjVHlwZXMpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGFsbE9mKHR5
cGUuY29kZWNzKCksIFsmXSAoYXV0byYgY29kZWMpIHsKKyAgICAgICAgcmV0dXJuIGFueU9mKCph
bGxvd2VkTWVkaWFDb2RlY1R5cGVzLCBbJl0gKGF1dG8mIGFsbG93ZWRDb2RlYykgeworICAgICAg
ICAgICAgcmV0dXJuIGNvZGVjLnN0YXJ0c1dpdGgoYWxsb3dlZENvZGVjKTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5YzRkMmI5YTRlOWJl
YTJmMmNjNmFjN2YzMGQzNGI0YjgxODVhNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEs
MzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbnRlbnRUeXBl
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgRm91ckNDOworCitXRUJDT1JFX0VYUE9SVCBib29sIGNvbnRlbnRUeXBlTWVldHNDb250
YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm91ckNDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAppbmRl
eCAyNGUyNTVkZjQ0ZmIxZjc4NzE0YzU4ZTk5OTkxMDEyNmQ0NjljMGFiLi5iMzdkMDUwZTljMGMz
Njc3MDdkYWUwYjZhY2NiMWJjMzdmOGVhYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb3VyQ0MuaApAQCAtMzcsNiArMzcsMTggQEAgc3RydWN0IEZvdXJDQyB7CiAgICAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8Rm91ckNDPiBmcm9tU3RyaW5nKFN0cmluZ1ZpZXcpOwogCiAg
ICAgdWludDMyX3QgdmFsdWUgeyAwIH07CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
ICAgIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CisgICAgeworICAgICAgICBl
bmNvZGVyIDw8IHZhbHVlOworICAgIH0KKworICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgor
ICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgRm91ckNDJiBjb25maWd1cmF0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24udmFsdWUpOworICAgIH0KIH07CiAKIGNvbnN0ZXhwciBib29s
IG9wZXJhdG9yPT0oRm91ckNDLCBGb3VyQ0MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGVjMThiYTNlOGVjYmI4NWE5ZWJkODFj
M2VjOTAwZDQxOTczZWNlZTIuLjBhYmMzMjIzOGQ2NDFhY2E0NWY3Mzk3NzU3ZTRlNWUxNTFiYTdk
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5j
bHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCisjaW5jbHVkZSAiRm91ckNDLmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1
ZGUgIkxlZ2FjeUNETVNlc3Npb24uaCIKQEAgLTE3Niw2ICsxNzcsMTggQEAgc3RhdGljIGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4mIG51bGxDb250ZW50VHlwZVZlY3RvcigpCiAg
ICAgcmV0dXJuIHZlY3RvcjsKIH0KIAorc3RhdGljIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+JiBudWxsT3B0aW9uYWxTdHJpbmdWZWN0b3IoKQoreworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+Pj4gdmVjdG9yOworICAgIHJl
dHVybiB2ZWN0b3I7Cit9CisKK3N0YXRpYyBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3Vy
Q0M+PiYgbnVsbE9wdGlvbmFsRm91ckNDVmVjdG9yKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4+IHZlY3RvcjsKKyAgICByZXR1cm4g
dmVjdG9yOworfQorCiBjbGFzcyBOdWxsTWVkaWFQbGF5ZXJDbGllbnQgOiBwdWJsaWMgTWVkaWFQ
bGF5ZXJDbGllbnQgewogcHJpdmF0ZToKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKQEAgLTE5
Nyw2ICsyMTAsMTIgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJ
QSkKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IG1lZGlhUGxheWVyQ2FjaGVkS2V5Rm9yS2V5SWQo
Y29uc3QgU3RyaW5nJikgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCisK
KyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9uYWxTdHJpbmdWZWN0
b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2Vk
TWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbE9wdGlvbmFsU3RyaW5n
VmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxs
b3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25h
bEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckND
Pj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxs
T3B0aW9uYWxGb3VyQ0NWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKTsgfQogfTsKIAogY29uc3QgVmVjdG9y
PENvbnRlbnRUeXBlPiYgTWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhQ29udGVudFR5cGVzUmVxdWly
aW5nSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKQEAgLTUyOSw2ICs1NDgsMTEgQEAgY29uc3QgTWVk
aWFQbGF5ZXJGYWN0b3J5KiBNZWRpYVBsYXllcjo6bmV4dEJlc3RNZWRpYUVuZ2luZShjb25zdCBN
ZWRpYVBsYXllckZhY3QKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHBhcmFtZXRlcnMu
aXNNZWRpYVN0cmVhbSA9ICEhbV9tZWRpYVN0cmVhbTsKICNlbmRpZgorICAgIHBhcmFtZXRlcnMu
YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygp
OworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBh
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzID0gYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworICAgIHBhcmFtZXRl
cnMuYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gYWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKCk7CiAKICAgICBpZiAobV9hY3RpdmVFbmdpbmVJZGVudGlmaWVyKSB7CiAgICAg
ICAgIGlmIChjdXJyZW50KQpAQCAtMTY1Nyw2ICsxNjgxLDMxIEBAIGJvb2wgTWVkaWFQbGF5ZXI6
OnNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgY29uc3QKICAgICByZXR1cm4gY2xpZW50KCku
bWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpOwogfQogCitjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRh
aW5lclR5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4m
IE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFWaWRlb0Nv
ZGVjSURzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRp
YVBsYXllcjo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNsaWVudCgpLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIE1lZGlhUGxheWVyOjphbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFD
YXB0aW9uRm9ybWF0VHlwZXMoKTsKK30KKwogdm9pZCBNZWRpYVBsYXllcjo6YXBwbGljYXRpb25X
aWxsUmVzaWduQWN0aXZlKCkKIHsKICAgICBtX3ByaXZhdGUtPmFwcGxpY2F0aW9uV2lsbFJlc2ln
bkFjdGl2ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmgKaW5kZXggMDcxY2MxZTZlNWUwM2ZmMTQ3NWEwZjQ5NTJjYjViOGQwYWUxMGQ2Yi4uNWYw
ZGFhODY2ZjJjODIzM2FjOGMxOTRhNjEzM2Q5NzNmMzQ0NmZlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNvb2tpZS5oIgorI2luY2x1ZGUg
IkZvdXJDQy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXNHTC5oIgogI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllckVudW1zLmgiCkBAIC05Nyw2ICs5OCwxMSBA
QCBzdHJ1Y3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyB7CiAgICAgYm9vbCBpc01lZGlh
U291cmNlIHsgZmFsc2UgfTsKICAgICBib29sIGlzTWVkaWFTdHJlYW0geyBmYWxzZSB9OwogICAg
IFZlY3RvcjxDb250ZW50VHlwZT4gY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0
OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gYWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBhbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IGFs
bG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+CiAgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKQEAgLTEwNiwzNyAr
MTEyLDI2IEBAIHN0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAgICAgICAg
ZW5jb2RlciA8PCBpc01lZGlhU291cmNlOwogICAgICAgICBlbmNvZGVyIDw8IGlzTWVkaWFTdHJl
YW07CiAgICAgICAgIGVuY29kZXIgPDwgY29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0OworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAg
ICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7CisgICAgICAgIGVuY29kZXIg
PDwgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlczsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzPiBkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICB7Ci0g
ICAgICAgIHN0ZDo6b3B0aW9uYWw8Q29udGVudFR5cGU+IHR5cGU7Ci0gICAgICAgIGRlY29kZXIg
Pj4gdHlwZTsKLSAgICAgICAgaWYgKCF0eXBlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFVSTD4gdXJsOwotICAgICAgICBkZWNvZGVy
ID4+IHVybDsKLSAgICAgICAgaWYgKCF1cmwpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gaXNNZWRpYVNvdXJjZTsKLSAgICAg
ICAgZGVjb2RlciA+PiBpc01lZGlhU291cmNlOwotICAgICAgICBpZiAoIWlzTWVkaWFTb3VyY2Up
Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gaXNNZWRpYVN0cmVhbTsKLSAgICAgICAgZGVjb2RlciA+PiBpc01lZGlhU3RyZWFt
OwotICAgICAgICBpZiAoIWlzTWVkaWFTdHJlYW0pCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPENvbnRlbnRUeXBlPj4gdHlw
ZXNSZXF1aXJpbmdIYXJkd2FyZTsKLSAgICAgICAgZGVjb2RlciA+PiB0eXBlc1JlcXVpcmluZ0hh
cmR3YXJlOwotICAgICAgICBpZiAoIXR5cGVzUmVxdWlyaW5nSGFyZHdhcmUpCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKCp0eXBl
KSwgV1RGTW92ZSgqdXJsKSwgKmlzTWVkaWFTb3VyY2UsICppc01lZGlhU3RyZWFtLCAqdHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZSB9fTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMudHlwZSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXJs
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pc01lZGlhU291cmNl
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5pc01lZGlhU3RyZWFt
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jb250ZW50VHlwZXNS
ZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKQorICAgICAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKQorICAgICAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5h
bGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMpOwogICAgIH0KIH07CiAKQEAgLTI3NSw2ICsy
NzAsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYg
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dl
ZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5
cGVzKCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyQnVmZmVyZWRU
aW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclNlZWth
YmxlVGltZVJhbmdlc0NoYW5nZWQoKSB7IH0KIApAQCAtNjM0LDYgKzYzNSwxMiBAQCBwdWJsaWM6
CiAgICAgY29uc3QgVmVjdG9yPENvbnRlbnRUeXBlPiYgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdDsKICAgICBib29sIHNob3VsZENoZWNrSGFyZHdhcmVT
dXBwb3J0KCkgY29uc3Q7CiAKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiYgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0Owor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCkgY29uc3Q7CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckND
Pj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkg
Y29uc3Q7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIG1l
ZGlhUGxheWVyTG9nZ2VyKCk7CiAgICAgY29uc3Qgdm9pZCogbWVkaWFQbGF5ZXJMb2dJZGVudGlm
aWVyKCkgeyByZXR1cm4gY2xpZW50KCkubWVkaWFQbGF5ZXJMb2dJZGVudGlmaWVyKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApp
bmRleCA2MjY3YjgzMzIxMjk5YjEzZWE3ZWQyYTQwNWU0Y2JiODVlNDQ4ODNiLi5mNGIzNWQ3Njlk
NzI3OTdhMmZhZDQ1ZWI3ODJiZGQyNWM5MjZjZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0zMjksNiArMzI5LDggQEAg
cHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TmVlZHNSZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogICAg
IHZvaWQgcmVuZGVyaW5nTW9kZUNoYW5nZWQoKTsKIAorICAgIGJvb2wgbG9hZGluZ01ldGFkYXRh
KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkaW5nTWV0YWRhdGE7IH0KKwogcHJpdmF0ZToKICAgICBN
ZWRpYVBsYXllciogbV9wbGF5ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBjZGFhMWIw
OThjM2E1NGIxYTZjNjFhNDVkZGRiZGYyYzY5M2Q2MmFiLi4zODM3NzJjNTA0NDkyOWI5ZTUxNTc4
NDE2ZGVmNjRmODc4ODAyMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0zNTAsNiArMzUw
LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6Om9wdGlvbmFsPFZpZGVvRnJhbWVNZXRhZGF0YT4gdmlk
ZW9GcmFtZU1ldGFkYXRhKCkgZmluYWwgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX3ZpZGVvRnJh
bWVNZXRhZGF0YSwgeyB9KTsgfQogICAgIHZvaWQgY2hlY2tOZXdWaWRlb0ZyYW1lTWV0YWRhdGEo
KTsKIAorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYWxsVHJhY2tzQXJlUGxheWFibGUoKSBjb25z
dDsKKyAgICBib29sIHRyYWNrSXNQbGF5YWJsZShBVkFzc2V0VHJhY2sqKSBjb25zdDsKKwogICAg
IFJldGFpblB0cjxBVlVSTEFzc2V0PiBtX2F2QXNzZXQ7CiAgICAgUmV0YWluUHRyPEFWUGxheWVy
PiBtX2F2UGxheWVyOwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVt
OwpAQCAtNDQ3LDcgKzQ1MCw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhY2hlZENhblBsYXlG
YXN0Rm9yd2FyZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhY2hlZENhblBsYXlGYXN0UmV2ZXJz
ZSB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkQXNzZXRJc0xvYWRlZCB7IGZh
bHNlIH07CisgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkVHJhY2tzQXJlTG9hZGVkIHsgZmFsc2Ug
fTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRBc3NldElzUGxheWFi
bGU7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fY2FjaGVkVHJhY2tzQXJlUGxh
eWFibGU7CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkT2Jz
ZXJ2ZVRpbWVDb250cm9sU3RhdHVzIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gbV90cmFja3NBcmVQbGF5YWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGEwOGRhMGY0ZjEwZTRjM2U0YTlhNzFlZThmNTMyNWZhNjZlMDkxZmYuLmE2YzA1OWRjMTA2YTYy
MjViMjExMmNiOGVlNTIwM2E3YjU4ZmQxMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
MzgsMTAgKzM4LDEyIEBACiAjaW1wb3J0ICJDRE1TZXNzaW9uQVZGb3VuZGF0aW9uT2JqQy5oIgog
I2ltcG9ydCAiQ1ZVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkNvbG9yU3BhY2VDRy5oIgorI2ltcG9y
dCAiQ29udGVudFR5cGVVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkNvb2tpZS5oIgogI2ltcG9ydCAi
RGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgiCiAjaW1wb3J0ICJFeHRlbnNpb25zR0wuaCIKICNp
bXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgorI2ltcG9ydCAiRm91ckNDLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbXBvcnQgIkltYWdlUm90YXRpb25TZXNzaW9uVlQuaCIKICNp
bXBvcnQgIkluYmFuZENoYXB0ZXJUcmFja1ByaXZhdGVBVkZPYmpDLmgiCkBAIC02Niw2ICs2OCw3
IEBACiAjaW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKICNpbXBvcnQgIlNvdXJjZUJ1ZmZlclBhcnNl
cldlYk0uaCIKICNpbXBvcnQgIlRleHRUcmFja1JlcHJlc2VudGF0aW9uLmgiCisjaW1wb3J0ICJV
VElVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5oIgogI2ltcG9y
dCAiVmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmgiCiAjaW1wb3J0ICJXZWJDb3JlQVZGUmVzb3Vy
Y2VMb2FkZXIuaCIKQEAgLTk0OCw2ICs5NTEsMzggQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFzc2V0Rm9yVVJMKGNvbnN0IFVSTCYgdXJsLCBSZXQK
ICAgICAgICAgICAgIFtvcHRpb25zIHNldE9iamVjdDpATk8gZm9yS2V5OkFWVVJMQXNzZXRVc2Vz
Tm9QZXJzaXN0ZW50Q2FjaGVLZXldOwogICAgIH0KIAorICAgIGF1dG8gYWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAg
ICBpZiAoYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91bmRh
dGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXkoKSkgeworICAgICAgICBh
dXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAg
ICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAg
ICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6KE5TU3RyaW5nICopVVRJRnJvbU1JTUVUeXBlKHR5
cGUpXTsKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFW
VVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleV07CisgICAgfQorCisgICAgYXV0byBh
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoKTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyAmJiBQQUw6OmNhbkxv
YWRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXkoKSkg
eworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAg
ICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRB
bGxvd2FibGVBdWRpb0NvZGVjVHlwZXNLZXldOworICAgIH0KKworICAgIGF1dG8gYWxsb3dlZE1l
ZGlhVmlkZW9Db2RlY0lEcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7
CisgICAgaWYgKGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgJiYgUEFMOjpjYW5Mb2FkX0FWRm91
bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlVmlkZW9Db2RlY1R5cGVzS2V5KCkpIHsKKyAgICAg
ICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMpCisg
ICAgICAgICAgICBbbnNUeXBlcyBhZGRPYmplY3Q6QCh0eXBlLnZhbHVlKV07CisgICAgICAgIFtv
cHRpb25zIHNldE9iamVjdDpuc1R5cGVzLmdldCgpIGZvcktleTpBVlVSTEFzc2V0QWxsb3dhYmxl
VmlkZW9Db2RlY1R5cGVzS2V5XTsKKyAgICB9CisKKyAgICBhdXRvIGFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzICYmIFBBTDo6Y2FuTG9h
ZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5KCkpIHsK
KyAgICAgICAgYXV0byBuc1R5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBp
bml0XSk7CisgICAgICAgIGZvciAoYXV0byB0eXBlIDogKmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcykKKyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsK
KyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNz
ZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleV07CisgICAgfQorCiAgICAgaWYgKHdpbGxVc2VX
ZWJNRm9ybWF0UmVhZGVyKQogICAgICAgICByZWdpc3RlckZvcm1hdFJlYWRlcklmTmVjZXNzYXJ5
KCk7CiAKQEAgLTE3ODMsNiArMTgxOCw3NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OnNldEFzc2V0KFJldGFpblB0cjxpZD4mJiBhc3NldCkKICAgICBwcm9jZXNz
Q2hhcHRlclRyYWNrcygpOwogfQogCitzdGQ6Om9wdGlvbmFsPGJvb2w+IE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmFsbFRyYWNrc0FyZVBsYXlhYmxlKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9hdlBsYXllckl0ZW0pIHsKKyAgICAgICAgZm9yIChBVlBsYXllckl0ZW1UcmFjayAq
dHJhY2sgaW4gW21fYXZQbGF5ZXJJdGVtIHRyYWNrc10pIHsKKyAgICAgICAgICAgIGlmICghdHJh
Y2tJc1BsYXlhYmxlKHRyYWNrLmFzc2V0VHJhY2spKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlm
ICghbV9hdkFzc2V0IHx8IFttX2F2QXNzZXQgc3RhdHVzT2ZWYWx1ZUZvcktleTpAInRyYWNrcyIg
ZXJyb3I6TlVMTF0gIT0gQVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIGZvciAoQVZBc3NldFRyYWNrICphc3NldFRyYWNrIDogW21fYXZB
c3NldCB0cmFja3NdKSB7CisgICAgICAgIGlmICghdHJhY2tJc1BsYXlhYmxlKGFzc2V0VHJhY2sp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjp0cmFja0lzUGxheWFi
bGUoQVZBc3NldFRyYWNrKiB0cmFjaykgY29uc3QKK3sKKyAgICBpZiAocGxheWVyKCktPnNob3Vs
ZENoZWNrSGFyZHdhcmVTdXBwb3J0KCkgJiYgIWFzc2V0VHJhY2tNZWV0c0hhcmR3YXJlRGVjb2Rl
UmVxdWlyZW1lbnRzKHRyYWNrLCBwbGF5ZXIoKS0+bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdI
YXJkd2FyZVN1cHBvcnQoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gZGVz
Y3JpcHRpb24gPSByZXRhaW5QdHIoKF9fYnJpZGdlIENNRm9ybWF0RGVzY3JpcHRpb25SZWYpdHJh
Y2suZm9ybWF0RGVzY3JpcHRpb25zLmZpcnN0T2JqZWN0KTsKKyAgICBpZiAoIWRlc2NyaXB0aW9u
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIG1lZGlhVHlwZSA9IFBBTDo6Q01G
b3JtYXREZXNjcmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlvbi5nZXQoKSk7CisgICAgYXV0
byBjb2RlY1R5cGUgPSBGb3VyQ0MgeyBQQUw6OkNNRm9ybWF0RGVzY3JpcHRpb25HZXRNZWRpYVN1
YlR5cGUoZGVzY3JpcHRpb24uZ2V0KCkpIH07CisgICAgc3dpdGNoIChQQUw6OkNNRm9ybWF0RGVz
Y3JpcHRpb25HZXRNZWRpYVR5cGUoZGVzY3JpcHRpb24uZ2V0KCkpKSB7CisgICAgY2FzZSBrQ01N
ZWRpYVR5cGVfVmlkZW86IHsKKyAgICAgICAgYXV0byYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lE
cyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgICAgIGlmIChh
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzICYmICFhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzLT5j
b250YWlucyhjb2RlY1R5cGUpKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklF
UiwgIlZpZGVvIHRyYWNrIHdpdGggY29kZWMgdHlwZSAnIiwgY29kZWNUeXBlLCAiJyBub3QgY29u
dGFpbmVkIGluIGFsbG93ZWQgY29kZWMgbGlzdDsgYmxvY2tpbmciKTsKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
Y2FzZSBrQ01NZWRpYVR5cGVfQXVkaW86IHsKKyAgICAgICAgYXV0byYgYWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAg
ICAgIGlmIChhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzICYmICFhbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzLT5jb250YWlucyhjb2RlY1R5cGUpKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9H
SURFTlRJRklFUiwgIkF1ZGlvIHRyYWNrIHdpdGggY29kZWMgdHlwZSAnIiwgY29kZWNUeXBlLCAi
JyBub3QgY29udGFpbmVkIGluIGFsbG93ZWQgY29kZWMgbGlzdDsgYmxvY2tpbmciKTsKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfVGV4dDoKKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9D
bG9zZWRDYXB0aW9uOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX1N1YnRpdGxlOiB7CisgICAgICAg
IGF1dG8mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHBsYXllcigpLT5hbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKyAgICAgICAgaWYgKGFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyAmJiAhYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzLT5jb250YWlu
cyhjb2RlY1R5cGUpKSB7CisgICAgICAgICAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIlRl
eHQgdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5vdCBjb250YWluZWQg
aW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBjYXNlIGtD
TU1lZGlhVHlwZV9NdXhlZDoKKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9UaW1lQ29kZToKKyAgICBj
YXNlIGtDTU1lZGlhVHlwZV9NZXRhZGF0YToKKyAgICAgICAgLy8gTm8tb3AKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgRVJST1JfTE9HKExPR0lERU5USUZJRVIsICJUcmFjayB3
aXRoIHVudWV4cGVjdGVkIG1lZGlhIHR5cGUgJyIsIEZvdXJDQyhtZWRpYVR5cGUpLCAiJyBub3Qg
Y29udGFpbmVkIGluIGFsbG93ZWQgY29kZWMgbGlzdDsgaWdub3JpbmciKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjphc3NldFN0YXR1cygpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2F2QXNzZXQpCkBAIC0xODA4LDIzICsxOTEzLDIxIEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6CiAgICAgICAgIG1fY2FjaGVkQXNzZXRJc0xvYWRlZCA9IHRydWU7CiAgICAg
fQogCi0gICAgaWYgKCFwbGF5ZXIoKS0+c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSkKLSAg
ICAgICAgbV90cmFja3NBcmVQbGF5YWJsZSA9IHRydWU7CisgICAgLy8gbV9sb2FkaW5nTWV0YWRh
dGEgd2lsbCBiZSBmYWxzZSB1bnRpbCBhbGwgdHJhY2tzJyBwcm9wZXJ0aWVzIGhhdmUgZmluaXNo
ZWQgbG9hZGluZy4KKyAgICAvLyBTZWU6IGJlZ2luTG9hZGluZ01ldGFkYXRhKCkuCisgICAgaWYg
KGxvYWRpbmdNZXRhZGF0YSgpKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3Rh
dHVzTG9hZGluZzsKIAotICAgIGlmICghbV90cmFja3NBcmVQbGF5YWJsZSkgewotICAgICAgICBt
X3RyYWNrc0FyZVBsYXlhYmxlID0gdHJ1ZTsKLSAgICAgICAgZm9yIChBVkFzc2V0VHJhY2sgKnRy
YWNrIGluIFttX2F2QXNzZXQgdHJhY2tzXSkgewotICAgICAgICAgICAgaWYgKCFhc3NldFRyYWNr
TWVldHNIYXJkd2FyZURlY29kZVJlcXVpcmVtZW50cyh0cmFjaywgcGxheWVyKCktPm1lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCkpKSB7Ci0gICAgICAgICAgICAgICAg
bV90cmFja3NBcmVQbGF5YWJsZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICB9CisgICAgaWYgKCFtX2NhY2hlZFRyYWNrc0FyZVBsYXlhYmxl
KSB7CisgICAgICAgIG1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUgPSBhbGxUcmFja3NBcmVQbGF5
YWJsZSgpOworICAgICAgICBpZiAoIW1fY2FjaGVkVHJhY2tzQXJlUGxheWFibGUpCisgICAgICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9hZGluZzsKICAgICB9CiAKICAg
ICBpZiAoIW1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlKQogICAgICAgICBtX2NhY2hlZEFzc2V0SXNQ
bGF5YWJsZSA9IFtbbV9hdkFzc2V0IHZhbHVlRm9yS2V5OkAicGxheWFibGUiXSBib29sVmFsdWVd
OwogCi0gICAgaWYgKCptX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSAmJiBtX3RyYWNrc0FyZVBsYXlh
YmxlLnZhbHVlKCkpCisgICAgaWYgKCptX2NhY2hlZEFzc2V0SXNQbGF5YWJsZSAmJiAqbV9jYWNo
ZWRUcmFja3NBcmVQbGF5YWJsZSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0
YXR1c1BsYXlhYmxlOwogCiAgICAgcmV0dXJuIE1lZGlhUGxheWVyQVZBc3NldFN0YXR1c0xvYWRl
ZDsKQEAgLTE5MjksNiArMjAzMiw5IEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c3VwcG9ydHNUeXBlQW5kQ29kCiAgICAgICAg
IHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBvcnRlZDsKICNlbmRp
ZgogCisgICAgaWYgKCFjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNUeXBlUmVxdWly
ZW1lbnRzKHBhcmFtZXRlcnMudHlwZSwgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb250YWluZXJU
eXBlcywgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKSkKKyAgICAgICAgcmV0dXJu
IE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOworCiAgICAgYXV0byBz
dXBwb3J0ZWQgPSBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c2luZ2xldG9uKCkuY2FuRGVjb2RlVHlw
ZShwYXJhbWV0ZXJzLnR5cGUucmF3KCkpOwogICAgIGlmIChzdXBwb3J0ZWQgIT0gTWVkaWFQbGF5
ZXI6OlN1cHBvcnRzVHlwZTo6SXNTdXBwb3J0ZWQpCiAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQ7
CkBAIC0zNzM0LDcgKzM4NDAsNyBAQCBOU0FycmF5KiBpdGVtS1ZPUHJvcGVydGllcygpCiAKIE5T
QXJyYXkqIGFzc2V0VHJhY2tNZXRhZGF0YUtleU5hbWVzKCkKIHsKLSAgICBzdGF0aWMgTlNBcnJh
eSoga2V5cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOkAidG90YWxTYW1wbGVE
YXRhTGVuZ3RoIiwgQCJtZWRpYVR5cGUiLCBAImVuYWJsZWQiLCBAInByZWZlcnJlZFRyYW5zZm9y
bSIsIEAibmF0dXJhbFNpemUiLCBuaWxdOworICAgIHN0YXRpYyBOU0FycmF5KiBrZXlzID0gW1tO
U0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6QCJ0b3RhbFNhbXBsZURhdGFMZW5ndGgiLCBA
Im1lZGlhVHlwZSIsIEAiZW5hYmxlZCIsIEAicHJlZmVycmVkVHJhbnNmb3JtIiwgQCJuYXR1cmFs
U2l6ZSIsIEAiZm9ybWF0RGVzY3JpcHRpb25zIiwgbmlsXTsKICAgICByZXR1cm4ga2V5czsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNWRh
OTFlZTBlYWI0ZmRmZjkyMWZjNjc4N2FhMjM0NGNkMWNmNGYxOC4uZDkzMjBlMTllZDBmODA3YzY0
MTM2M2U2ZTQwNjZmMjk4MmExMjcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCkBAIC0xOTMsNiArMTkzLDggQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCkKICAgICBtX2JhY2t1cC5yZXN0b3JlVG8oc2V0dGlu
Z3MoKSk7CiAgICAgbV9iYWNrdXAgPSBCYWNrdXAgeyBzZXR0aW5ncygpIH07CiAKKyAgICBtX3Bh
Z2UtPnNldHRpbmdzKCkucmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworCiAgICAgSW50ZXJuYWxT
ZXR0aW5nc0dlbmVyYXRlZDo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOwogfQogCkBAIC01ODgs
NiArNTkwLDQ4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldERlZmF1
bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZsb2F0IHNhbXBsCiAgICAgcmV0dXJuIHsgfTsKIH0K
IAorRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFn
ZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyh0eXBlcyk7CisgICAg
cmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0
QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICgh
bV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07
CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXModHlwZXMp
OworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFsU2V0dGlu
Z3M6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sK
KyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFWaWRlb0Nv
ZGVjSURzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKGNvbnN0IFN0cmlu
ZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dl
ZE1lZGlhQXVkaW9Db2RlY0lEcyh0eXBlcyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0
aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKyAgICBtX3BhZ2UtPnNl
dHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHR5cGVzKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCisKKwogLy8gSWYgeW91IGFkZCB0byB0aGlzIGNsYXNzLCBtYWtlIHN1
cmUgeW91IGFyZSBub3QgZHVwbGljYXRpbmcgZnVuY3Rpb25hbGl0eSBpbiB0aGUgZ2VuZXJhdGVk
CiAvLyBiYXNlIGNsYXNzIEludGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQgYW5kIHRoYXQgeW91IHVw
ZGF0ZSB0aGUgQmFja3VwIGNsYXNzIGZvciB0ZXN0IHJlcHJvZHVjYWJpbGl0eS4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBmMWE3ZTIyMTEyMGU3MWE5
Njk5MWIzMjMzYTM4NTQzMDMxODlkNWIwLi5mYjk0Y2U3ZGRiZWYzYmM1NWJiMzc2MzFhZWRlMTZj
M2UxNTJlNzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApA
QCAtMTIyLDYgKzEyMiwxMiBAQCBwdWJsaWM6CiAgICAgLy8gQXVkaW9Db250ZXh0CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0RGVmYXVsdEF1ZGlvQ29udGV4dFNhbXBsZVJhdGUoZmxvYXQpOwog
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoY29u
c3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ29kZWNU
eXBlcyhjb25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzKGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKGNvbnN0IFN0cmluZyYp
OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFsU2V0dGluZ3MoUGFnZSopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBiYjZiOGY1
MjExMmRkOTk0Y2M2Yjc3ODMyMzExOThlNTkyOGJmYzFlLi5iYzQwMTk1MGE5NDcyODY5NzhjMDA4
YWZlYjYxZjQ5MGY4YWRjYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGwKQEAgLTk1LDQgKzk1LDEwIEBAIGVudW0gVXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeSB7ICJDb250ZW50IiwgIlN5c3RlbSIgfTsKIAogICAgIC8vIEF1ZGlvQ29udGV4dAog
ICAgIHVuZGVmaW5lZCBzZXREZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCBzYW1w
bGVSYXRlKTsKKworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhE
T01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBl
cyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dlZE1lZGlh
QXVkaW9Db2RlY0lEcyhET01TdHJpbmc/IHR5cGVzKTsKKyAgICB1bmRlZmluZWQgc2V0QWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKERPTVN0cmluZz8gdHlwZXMpOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oCmluZGV4IDFmYmUxZjkzM2QwOTUwMDZmNDJmZDlkY2ZjNmYyYTQ0MmE3NjQwOTMuLjkzMTZi
NjZhYjM1OTY2ZTViNjQ1ZGQxYzdjZTBlODEyZjIwNmE2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAt
NzYsNiArNzYsOCBAQCBjbGFzcyBBdWRpb1RyYWNrUHJpdmF0ZTsKIGNsYXNzIE1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0OwogI2VuZGlmCiBjbGFzcyBWaWRlb1RyYWNrUHJpdmF0ZTsKKworc3Ry
dWN0IEZvdXJDQzsKIH0KIAogI2lmIFVTRShBVkZPVU5EQVRJT04pCkBAIC0yOTMsNiArMjk1LDEy
IEBAIHByaXZhdGU6CiAgICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdCBmaW5h
bDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5h
bGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxTdHJpbmc+PiYgYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOyB9OworICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHM7IH07CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEczsgfTsKKyAg
ICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiYgYWxsb3dlZE1l
ZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0
aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsgfTsKKwogICAgIHZvaWQgc3RhcnRV
cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcigpOwogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3Rh
dGUoYm9vbCA9IGZhbHNlKTsKICAgICB2b2lkIHNlbmRDYWNoZWRTdGF0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHlD
b25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaAppbmRleCA0YWNiNDBlMmMwOWVjNzVjZTllZWJi
NzMxZTFkZDFjOWM2MzIxNTBmLi40ZmQ2NjFiN2QwNjcwZGM1MGQxYzc4YWRiNWY4YmFmMjk2MmVl
MTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaApAQCAtMjgsNiAr
MjgsNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgPFdlYkNvcmUvQ29u
dGVudFR5cGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZvdXJDQy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1UZXh0VHJhY2suaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNDAsNiArNDEsMTIg
QEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uIHsKICAgICBTdHJp
bmcgc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwogICAgIFN0cmluZyBuZXR3b3JrSW50ZXJm
YWNlTmFtZTsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+IGFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAgICBz
dGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsKKwogICAgIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJl
ZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgVmVj
dG9yPFdlYkNvcmU6OlBsYXRmb3JtVGV4dFRyYWNrRGF0YT4gb3V0T2ZCYW5kVHJhY2tEYXRhOwpA
QCAtNTgsNiArNjUsMTEgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uIHsKICAgICAgICAgZW5jb2RlciA8PCBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7CiAg
ICAgICAgIGVuY29kZXIgPDwgbmV0d29ya0ludGVyZmFjZU5hbWU7CiAgICAgICAgIGVuY29kZXIg
PDwgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgICAgIGVu
Y29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgICAgIGVuY29kZXIgPDwg
YWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwog
ICAgICAgICBlbmNvZGVyIDw8IHByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzOwogI2lmIEVO
QUJMRShBVkZfQ0FQVElPTlMpCiAgICAgICAgIGVuY29kZXIgPDwgb3V0T2ZCYW5kVHJhY2tEYXRh
OwpAQCAtNzAsODYgKzgyLDI3IEBAIHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmln
dXJhdGlvbiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+Ci0gICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKICAgICB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiByZWZlcnJlcjsKLSAgICAg
ICAgZGVjb2RlciA+PiByZWZlcnJlcjsKLSAgICAgICAgaWYgKCFyZWZlcnJlcikKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IHVzZXJBZ2VudDsKLSAgICAgICAgZGVjb2RlciA+PiB1c2VyQWdlbnQ7Ci0gICAgICAgIGlmICgh
dXNlckFnZW50KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBz
dGQ6Om9wdGlvbmFsPFN0cmluZz4gc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwotICAgICAg
ICBkZWNvZGVyID4+IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsKLSAgICAgICAgaWYgKCFz
b3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBuZXR3b3JrSW50ZXJmYWNlTmFt
ZTsKLSAgICAgICAgZGVjb2RlciA+PiBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKLSAgICAgICAgaWYg
KCFuZXR3b3JrSW50ZXJmYWNlTmFtZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+PiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKLSAgICAgICAgZGVjb2Rl
ciA+PiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKLSAgICAgICAg
aWYgKCFtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4gcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7Ci0gICAgICAgIGRlY29kZXIg
Pj4gcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7Ci0gICAgICAgIGlmICghcHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpY3MpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0jaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2tEYXRhPj4gb3V0T2ZCYW5kVHJhY2tEYXRhOwotICAg
ICAgICBkZWNvZGVyID4+IG91dE9mQmFuZFRyYWNrRGF0YTsKLSAgICAgICAgaWYgKCFvdXRPZkJh
bmRUcmFja0RhdGEpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCi0K
LSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IGRvY3Vt
ZW50U2VjdXJpdHlPcmlnaW47Ci0gICAgICAgIGRlY29kZXIgPj4gZG9jdW1lbnRTZWN1cml0eU9y
aWdpbjsKLSAgICAgICAgaWYgKCFkb2N1bWVudFNlY3VyaXR5T3JpZ2luKQotICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBs
b2dJZGVudGlmaWVyOwotICAgICAgICBkZWNvZGVyID4+IGxvZ0lkZW50aWZpZXI7Ci0gICAgICAg
IGlmICghbG9nSWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0K
LSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Ci0g
ICAgICAgIGRlY29kZXIgPj4gc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlOwotICAgICAgICBpZiAo
IXNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpc1ZpZGVvOwotICAgICAgICBkZWNv
ZGVyID4+IGlzVmlkZW87Ci0gICAgICAgIGlmICghaXNWaWRlbykKLSAgICAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiByZW5kZXJpbmdD
YW5CZUFjY2VsZXJhdGVkOwotICAgICAgICBkZWNvZGVyID4+IHJlbmRlcmluZ0NhbkJlQWNjZWxl
cmF0ZWQ7Ci0gICAgICAgIGlmICghcmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZCkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIHt7Ci0gICAgICAgICAg
ICBXVEZNb3ZlKCpyZWZlcnJlciksCi0gICAgICAgICAgICBXVEZNb3ZlKCp1c2VyQWdlbnQpLAot
ICAgICAgICAgICAgV1RGTW92ZSgqc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKSwKLSAgICAg
ICAgICAgIFdURk1vdmUoKm5ldHdvcmtJbnRlcmZhY2VOYW1lKSwKLSAgICAgICAgICAgIFdURk1v
dmUoKm1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KSwKLSAgICAgICAg
ICAgIFdURk1vdmUoKnByZWZlcnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKSwKKyAgICAgICAgcmV0
dXJuIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucmVmZXJyZXIpCisgICAgICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnVzZXJBZ2VudCkKKyAgICAgICAgICAgICYm
IGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVy
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5uZXR3b3JrSW50
ZXJmYWNlTmFtZSkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24u
bWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpCisgICAgICAgICAgICAm
JiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNv
ZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLnByZWZl
cnJlZEF1ZGlvQ2hhcmFjdGVyaXN0aWNzKQogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAg
ICAgICAgICBXVEZNb3ZlKCpvdXRPZkJhbmRUcmFja0RhdGEpLAorICAgICAgICAgICAgJiYgZGVj
b2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5vdXRPZkJhbmRUcmFja0RhdGEpCiAjZW5kaWYKLSAg
ICAgICAgICAgIFdURk1vdmUoKmRvY3VtZW50U2VjdXJpdHlPcmlnaW4pLAotICAgICAgICAgICAg
KmxvZ0lkZW50aWZpZXIsCi0gICAgICAgICAgICAqc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlLAot
ICAgICAgICAgICAgKmlzVmlkZW8sCi0gICAgICAgICAgICAqcmVuZGVyaW5nQ2FuQmVBY2NlbGVy
YXRlZCwKLSAgICAgICAgfX07CisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1
cmF0aW9uLmRvY3VtZW50U2VjdXJpdHlPcmlnaW4pCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmxvZ0lkZW50aWZpZXIpCisgICAgICAgICAgICAmJiBkZWNvZGVy
LmRlY29kZShjb25maWd1cmF0aW9uLnNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSkKKyAgICAgICAg
ICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uaXNWaWRlbykKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRl
ZCk7CiAgICAgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDU4ZmMx
ZTRlZTI1NWVkNTgzMGM5OTZkZmU2OGJmMmFiZDM1M2VhZjguLjdjOWQ0NTY5YTRlNTBiMDcxM2E3
N2E4YjRhYzI0MGZhZTQ2ZGRkMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVu
Y3Rpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTE2Niw2ICsxNjcsMTIgQEAg
c3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZT4gUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpjcmVhdGVSZW0KICAgICBhdXRvIGRvY3VtZW50U2VjdXJpdHlPcmlnaW4g
PSBwbGF5ZXItPmRvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKICAgICBwcm94eUNvbmZpZ3VyYXRp
b24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50U2VjdXJpdHlPcmlnaW47CiAKKyAg
ICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMgPSBwbGF5ZXIt
PmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKTsK
KyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IHBsYXll
ci0+YWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpOworICAgIHByb3h5Q29uZmlndXJhdGlvbi5h
bGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzID0gcGxheWVyLT5hbGxvd2VkTWVkaWFBdWRpb0NvZGVj
SURzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRU
eXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKCk7CisKICAgICBh
dXRvIGlkZW50aWZpZXIgPSBNZWRpYVBsYXllcklkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAgICAg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhUGxheWVyKGlkZW50aWZpZXIsIHJl
bW90ZUVuZ2luZUlkZW50aWZpZXIsIHByb3h5Q29uZmlndXJhdGlvbiksIDApOwogCkBAIC0yMDIs
NiArMjA5LDEwIEBAIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQCiAgICAgaWYgKHBhcmFtZXRlcnMu
aXNNZWRpYVN0cmVhbSkKICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6
OklzTm90U3VwcG9ydGVkOwogI2VuZGlmCisKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250
YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJz
LmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVj
VHlwZXMpKQorICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RT
dXBwb3J0ZWQ7CisKICAgICByZXR1cm4gdHlwZUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIp
LnN1cHBvcnRzVHlwZUFuZENvZGVjcyhwYXJhbWV0ZXJzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3NmQ2YjdkZWM1NjkzM2IyYzdh
NTU5ZWVmNGQ5MTJhYWFlYWM0ODE3Li42M2FmOTFmZGJhNWYyMDEwMDZjNzNjNTlmMjk2YmEyMmYz
ZDM3YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtNDExNiw2ICs0MTE2LDEyIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMo
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgIHNldHRpbmdzLnNldE1h
dGhNTEVuYWJsZWQoZmFsc2UpOwogI2VuZGlmCiAgICAgICAgIHNldHRpbmdzLnNldFBkZkpTVmll
d2VyRW5hYmxlZCh0cnVlKTsKKworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyhzdG9yZS5nZXRTdHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
bWVkaWFDb250YWluZXJUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAg
ICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhzdG9yZS5nZXRTdHJpbmdW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFDb2RlY1R5cGVzQWxsb3dlZEluQ2Fw
dGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjptZWRpYVZpZGVvQ29kZWNJRHNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7Cisg
ICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoc3RvcmUuZ2V0U3Ry
aW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Om1lZGlhQXVkaW9Db2RlY0lEc0FsbG93
ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dl
ZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjptZWRpYUNhcHRpb25Gb3JtYXRUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0
YWxNb2RlS2V5KCkpKTsKICAgICB9CiAKICNpZiBFTkFCTEUoQVJLSVRfSU5MSU5FX1BSRVZJRVcp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNDY4Njc0ZDk3OTVlYWI5ZTI3Zjc4ZDRlNjE5M2E0MTFhZTgxYTc1Ni4uOGQ2MTFj
M2IwODBiZjNlY2QzMmZmNzliMDU2YzNjMzVmMzA5YTI1NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBA
CisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hl
biBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxz
b24uCisKKyAgICAgICAgKiBtZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQt
Y29kZWNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNl
L21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBtZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxs
b3dlZC1jb250YWluZXJzLmh0bWw6IEFkZGVkLgorCiAyMDIyLTAyLTExICBUcnVpdHQgU2F2ZWxs
ICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgTWFya2luZyBleHBlY3RhdGlvbnMgZm9y
IGNvbXBvc2l0aW5nL2lmcmFtZXMvYm9yZGVyLXJhZGl1cy1jb21wb3NpdGVkLWZyYW1lLmh0bWwg
YXMgaXQgaXMgZmFpbGluZyBvbiBFV1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlh
LWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTBkNTM5YTJmOTA2M2Fh
MmM1Y2EwOTM3NDg3NGY3MWU0ZGJlYmUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhudWxs
KSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhu
dWxsKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyhu
dWxsKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZj
MSIpID09ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVv
L21wNDsgY29kZWNzPW1wNHYiKSA9PSAncHJvYmFibHknKSBPSworUlVOKHZpZGVvLnNyYyA9ICJj
b250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGNhbnBsYXkpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRp
bmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKSkKK1JVTihpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKSkK
K0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09
ICdwcm9iYWJseScpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsg
Y29kZWNzPW1wNHYiKSA9PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1w
NCIpCitFVkVOVChjYW5wbGF5KSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxvcHVzIikpCitFWFBFQ1RFRCAodmlkZW8u
Y2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAnJykgT0sKK0VYUEVDVEVE
ICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpID09ICcnKSBPSwor
UlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworUlVO
KGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIikp
CitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9w
dXMiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygi
YXZjMSxvcHVzIikpCitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQo
ZXJyb3IpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoInZwMDkiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcygiYWFjICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFDb2RlY1R5cGVzKCJ2cDA5LG1wNGEuNDAiKSkKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90
ZXN0Lm1wNCIpCitFVkVOVChlcnJvcikgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxYzdiYzUwMTkyZjRi
Yjg5YzgwZWFkY2YzNjdkMWQ0YWJiMGU4YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtYWxsb3dlZC1jb2Rl
Y3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZl
bnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZh
aWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMobnVsbCknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhudWxsKScpOworICAgICAgICBydW4oJ2ludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKG51bGwpJyk7CisgICAgICAgIHRl
c3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScs
ICdwcm9iYWJseScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2
aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAncHJvYmFibHknKTsKKyAgICAgICAgcnVuKCd2aWRl
by5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNl
KFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZvckFuZEZhaWwodmlk
ZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzKCJhdmMxIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFjICIpJyk7CisgICAgICAgIHJ1bign
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsbXA0YS40
MCIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21w
NDsgY29kZWNzPWF2YzEiKScsICdwcm9iYWJseScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCAnJyk7CisgICAgICAg
IHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFBy
b21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRGb3JB
bmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKScpOworICAg
ICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2
cDA5LG9wdXMiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2
aWRlby9tcDQ7IGNvZGVjcz1hdmMxIiknLCAnJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsICcnKTsKKyAgICAgICAg
cnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJv
bWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9yJyksIHdhaXRGb3JBbmRG
YWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRB
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpJyk7CisgICAg
ICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2
YzEsb3B1cyIpJyk7CisgICAgICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQi
Jyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8s
ICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2aWRlbywgJ2NhbnBsYXknKV0pOworCisgICAgICAg
IHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpJyk7
CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoImFhYyAiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG1wNGEuNDAiKScpOworICAgICAgICBydW4oJ3ZpZGVv
LnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2Uo
W3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZhaWwodmlkZW8s
ICdjYW5wbGF5JyldKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNv
bnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1j
b250YWluZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzAyN2NlOGI1NzViOTQ1NTIyZTVm
YmM3NzU1M2RhNzkxMTM2NzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitS
VU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51bGwp
KQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKSA9PSAnbWF5YmUnKSBP
SworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9PSAnbWF5YmUnKSBP
SworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IikKK0VWRU5UKGNhbnBsYXkpIE9L
CitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJh
dWRpby9tcDMiKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgiYXVkaW8vbXAzIikgPT0g
J21heWJlJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0IikgPT0g
JycpIE9LCitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3Ip
IE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KCJ2aWRlby9tcDQiKSkKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgiYXVkaW8vbXAzIikg
PT0gJycpIE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpID09ICdt
YXliZScpIE9LCitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2Fu
cGxheSkgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxs
b3dlZC1jb250YWluZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJmZjJkOTk2YzM1NTNhMTM0ZWEzYjYz
NzU2MTQwMTRjMDdhNGJlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVkaWEtYWxsb3dlZC1jb250YWluZXJz
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0idmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50
ID0+IHsKKyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWls
VGVzdCgnUmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRl
bycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmNhblBsYXlU
eXBlKCJhdWRpby9tcDMiKScsICdtYXliZScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
LmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKScsICdtYXliZScpOworICAgICAgICBydW4oJ3ZpZGVv
LnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJhY2Uo
W3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnY2FucGxheScpLCB3YWl0Rm9yQW5kRmFpbCh2aWRl
bywgJ2Vycm9yJyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCJhdWRpby9tcDMiKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Zp
ZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICdtYXliZScpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKScsICcnKTsKKyAgICAgICAgcnVu
KCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlz
ZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2Vycm9yJyksIHdhaXRGb3JBbmRGYWls
KHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IiknKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCd2aWRlby5jYW5QbGF5VHlwZSgiYXVkaW8vbXAzIiknLCAnJyk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21heWJlJyk7CisgICAg
ICAgIHJ1bigndmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0
IFByb21pc2UucmFjZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRG
b3JBbmRGYWlsKHZpZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9
KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21l
ZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI1Y2MzYmQ2Y2UwODdjMjAyMGVjOWY4ZjFmY2IwNWUx
OWQwMjMyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJj
ZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhu
dWxsKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsg
Y29kZWNzPWF2YzEiKSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBl
U3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ3RydWUnKSBPSworUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJhdmMxIikpCitS
VU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAi
KSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZj
MSxtcDRhLjQwIikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRl
by9tcDQ7IGNvZGVjcz1hdmMxIikgPT0gJ3RydWUnKSBPSworRVhQRUNURUQgKE1lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpID09ICdmYWxzZScpIE9L
CitFVkVOVChzb3VyY2VvcGVuKQorUlVOKHNvdXJjZUJ1ZmZlciA9IG1lZGlhU291cmNlLmFkZFNv
dXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpKQorVEVTVChzb3VyY2VCdWZmZXIu
Y2hhbmdlVHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpKSBUSFJPV1MoIk5vdFN1cHBvcnRl
ZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIikgT0sKK1JVTihpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygidnAwOSIpKQorUlVOKGlu
dGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIikpCitS
VU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoInZwMDksb3B1
cyIpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBj
b2RlY3M9YXZjMSIpID09ICdmYWxzZScpIE9LCitURVNUKG1lZGlhU291cmNlLmFkZFNvdXJjZUJ1
ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpKSBUSFJPV1MoIk5vdFN1cHBvcnRlZEVycm9y
OiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIikgT0sKK0VORCBPRiBURVNUCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxs
b3dlZC1jb2RlY3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1z
b3VyY2UtYWxsb3dlZC1jb2RlY3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTdhNTA0YTVmMjIxOTVkZDM4
ZjdkODllZGI2NmFlMDk4ODU0ZjY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sCkBAIC0wLDAg
KzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+bWVk
aWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVyczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgd2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBldmVudCA9PiB7CisgICAgICAgIGlmICghd2luZG93
LmludGVybmFscykgeworICAgICAgICAgICAgZmFpbFRlc3QoJ1JlcXVpcmVzIHdpbmRvdy5pbnRl
cm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZpZGVv
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKworICAgICAgICBydW4oJ2ludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51bGwpJyk7CisgICAg
ICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7
IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJj
ZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsIHRydWUpOworCisg
ICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJ
RHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxtcDRhLjQwIiknKTsKKworICAg
ICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0
OyBjb2RlY3M9YXZjMSIpJywgdHJ1ZSk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3Vy
Y2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IiknLCBmYWxzZSk7CisK
KyAgICAgICAgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKTsKKyAgICAgICAgdmlkZW8u
c3JjT2JqZWN0ID0gbWVkaWFTb3VyY2U7CisgICAgICAgIGF3YWl0IHdhaXRGb3IobWVkaWFTb3Vy
Y2UsICdzb3VyY2VvcGVuJyk7CisKKyAgICAgICAgcnVuKCdzb3VyY2VCdWZmZXIgPSBtZWRpYVNv
dXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScpOworICAgICAg
ICB0ZXN0RXhjZXB0aW9uKCdzb3VyY2VCdWZmZXIuY2hhbmdlVHlwZSgidmlkZW8vbXA0OyBjb2Rl
Y3M9bXA0diIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3Vw
cG9ydGVkLiInKTsKKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IiknKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpJyk7CisgICAgICAgIHJ1
bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoInZwMDksb3B1
cyIpJyk7CisKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0
ZWQoInZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsIGZhbHNlKTsKKworICAgICAgICB0ZXN0RXhj
ZXB0aW9uKCdtZWRpYVNvdXJjZS5hZGRTb3VyY2VCdWZmZXIoInZpZGVvL21wNDsgY29kZWNzPWF2
YzEiKScsICciTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl
ZC4iJyk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJj
ZS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQxZTk2NjlmYjhiZDI5ODE3OWNlZWRhYjJjN2FmNGIzYmIwOTMxZGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNl
LWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKG51bGwpKQorRVhQ
RUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IikgPT0gJ3RydWUn
KSBPSworUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cygidmlkZW8vbXA0IikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2
aWRlby9tcDQiKSA9PSAndHJ1ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIikpCitFWFBFQ1RFRCAoTWVkaWFTb3Vy
Y2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAnZmFsc2UnKSBPSworRU5EIE9GIFRF
U1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNv
dXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM0
OWEyOWE2NzkzMTZkNmY3NmJjMWIxZjIzY2RhNzQ1YTVlZDkzMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250
YWluZXJzLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsK
KyAgICAgICAgaWYgKCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgn
UmVxdWlyZXMgd2luZG93LmludGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMobnVsbCknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5p
c1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpJywgdHJ1ZSk7CisKKyAgICAgICAgdmlkZW8gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygidmlkZW8vbXA0IiknKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21w
NCIpJywgdHJ1ZSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2
aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcygidmlkZW8vd2VibSIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgnTWVk
aWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKScsIGZhbHNlKTsKKworICAgICAg
ICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
dGVzdC5qcwppbmRleCBhM2I2Y2I3YzMxNzJmMDExNzMyZGQ5OTlhYWY3YjQ0MzY1YzZkYjVlLi4z
YzA2N2UwZjlkNzUzMDE1YzlhMzYyOTQ0ZTc1YTM2NmRlZTc4NDgyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LXRlc3QuanMKQEAgLTIxNywxNiArMjE3LDMyIEBAIGZ1bmN0aW9uIHdhaXRGb3JFdmVudFdpdGhU
aW1lb3V0KGVsZW1lbnQsIHR5cGUsIHRpbWUsIG1lc3NhZ2UpIHsKICAgICB9KTsKIH0KIAotZnVu
Y3Rpb24gd2FpdEZvcihlbGVtZW50LCB0eXBlLCBzaWxlbnQpIHsKK2Z1bmN0aW9uIHdhaXRGb3Io
ZWxlbWVudCwgdHlwZSwgc2lsZW50LCBzdWNjZXNzKSB7CiAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KHJlc29sdmUgPT4gewogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIodHlwZSwgZXZl
bnQgPT4gewotICAgICAgICAgICAgaWYgKCFzaWxlbnQpCisgICAgICAgICAgICBpZiAoc2lsZW50
KSB7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShldmVudCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoc3VjY2VzcyAhPT0gdW5kZWZp
bmVkKQorICAgICAgICAgICAgICAgIGxvZ1Jlc3VsdChzdWNjZXNzLCBgRVZFTlQoJHtldmVudC50
eXBlfSlgKTsKKyAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
YEVWRU5UKCR7ZXZlbnQudHlwZX0pYCk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIHJlc29s
dmUoZXZlbnQpOwogICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CiAgICAgfSk7CiB9CiAKK2Z1
bmN0aW9uIHdhaXRGb3JBbmRTdWNjZWVkKGVsZW1lbnQsIHR5cGUpIHsKKyAgICByZXR1cm4gd2Fp
dEZvcihlbGVtZW50LCB0eXBlLCBmYWxzZSwgdHJ1ZSk7Cit9CisKK2Z1bmN0aW9uIHdhaXRGb3JB
bmRGYWlsKGVsZW1lbnQsIHR5cGUpIHsKKyAgICByZXR1cm4gd2FpdEZvcihlbGVtZW50LCB0eXBl
LCBmYWxzZSwgdHJ1ZSk7Cit9CisKIGZ1bmN0aW9uIHdhaXRGb3JFdmVudE9uY2UoZXZlbnROYW1l
LCBmdW5jLCBlbmRpdCkKIHsKICAgICB3YWl0Rm9yRXZlbnQoZXZlbnROYW1lLCBmdW5jLCBlbmRp
dCwgdHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YjBkMjlkNDk5YjQ2ZWNiYjMwMGJjOTk1MzYzNjM2N2NiY2Y2ZTM3Mi4uZGUyODk1MmMwZmVkODRj
OGYyMTA0OTA3NTAxNjRkNWJiZTE5Y2NkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE4NTAsMyArMTg1MCw1IEBAIHdlYmtpdC5vcmcvYi8xNjAxMTkg
ZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1maXhlZC1jaGlsZC5odG1sIFsgRmFp
bHVyCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiAjIFRoZXNlIHRlc3RzIHJl
cXVpcmUgcGxhdGZvcm0gc3VwcG9ydC4KK21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwK
K21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4
OGM3ODE1ZmJmYTZjMTVhZTkwM2ViZjA4ZjQwNzJiNTMzZjc0ZWU3Li5lZDJhZTMyMmEyNmY2ZDI0
OTY0NjU4ZGM4NDY4ZmYyZjNkNWNmZWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjQ0MCw0ICsyNDQwLDcgQEAgZmFzdC90ZXh0L2ZvbnQtbG9va3Vw
LWRvdC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRtbCBbIFBhc3MgXQogWyBDYXRhbGluYSBCaWdT
dXIgTW9udGVyZXkgXSBmYXN0L3RleHQvbG9jYWxlLXNoYXBpbmctMy5odG1sIFsgUGFzcyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIAogI3JkYXI6Ly84MDMzMzA3MQotWyBCaWdTdXIrIF0gY29tcG9zaXRp
bmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK1sgQmlnU3VyKyBdIGNvbXBv
c2l0aW5nL2lmcmFtZXMvYm9yZGVyLXJhZGl1cy1jb21wb3NpdGVkLWZyYW1lLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KKworIyByZGFyOi8vODQ1NTY4MzEgCitbIENhdGFsaW5hIF0gbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgWyBTa2lwIF0KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451785</attachid>
            <date>2022-02-12 09:05:36 -0800</date>
            <delta_ts>2022-02-12 10:18:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236245-20220212090535.patch</filename>
            <type>text/plain</type>
            <size>91441</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNkMjE0Y2FmNzVlZmI5ODU5ZDZmYjI4
Yzg3ZmY0M2U1MWIzMGZiNzguLjMzZDAyNTlmNTlkMjMwZjA5YWEzYjM3MzM3MmMyM2RkZWUzMzk0
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNv
bnRhaW5lcnMgYW5kIGNvZGVjcyB3aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5j
ZXMvV2ViUHJlZmVyZW5jZXMueWFtbDoKKwogMjAyMi0wMi0xMSAgRG9uIE9sbXN0ZWFkICA8ZG9u
Lm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtDTWFrZV0gQ2hlY2sgZm9yIE1BUF9BTElH
TkVEIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYmRmMTI4MDU0ZDFmZjdmMWVkZGFkYTUwOGM4YzFk
NjJiZmU4MTJiLi44MjU1NWY3ZWI4ZDk1MGY0NmNlNDVmMGM2M2Y3OTBlOGRmYmQ4MzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTAyIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmljdCBtZWRpYSBj
b250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2RlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgVGVzdHM6IG1lZGlhL21lZGlh
LWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLWFsbG93ZWQt
Y29udGFpbmVycy5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKKyAgICAgICAgICAgICAgIG1lZGlhL21lZGlhLXNv
dXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKKworICAgICAgICBBZGQg
c2V0dGluZ3MgYXQgdGhlIFdlYkNvcmUgbGV2ZWwgdG8gb3B0aW9uYWxseSBkZWNsYXJlIGEgbGlz
dCBvZiBjb250YWluZXIgdHlwZXMsCisgICAgICAgIHZpZGVvIGNvZGVjcywgYXVkaW8gY29kZWNz
LCBhbmQgY2FwdGlvbiBmb3JtYXRzIHRvIGFsbG93IHdoZW4gbG9hZGluZyBtZWRpYSB0aHJvdWdo
CisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYW5kIE1lZGlhU291cmNlLgorCisgICAgICAgIFRo
ZXJlIGFyZSBzb21lIGNhc2VzIHdoZXJlIHRoZSBjb2RlYyBJRCwgdHlwaWNhbGx5IGEgZm91ci1j
aGFyYWN0ZXItY29kZSBlbWJlZGRlZAorICAgICAgICBpbiB0aGUgY29udGFpbmVyIGl0c2VsZiwg
ZG9lcyBub3QgbWF0Y2ggdGhlIFJGQzQyODEgY29kZWMgc3RyaW5nLiBOb3RhYmx5LCB0aGlzIGlz
IHRoZSBjYXNlCisgICAgICAgIHdpdGggIm1wNGEuNDAiIGFuZCAnYWFjICcuIFNvIHRoZSBzZXR0
aW5ncyBtdXN0IGluY2x1ZGUgYm90aCB0aGUgY29kZWMgSUQgYW5kIHRoZSBjb2RlYworICAgICAg
ICB0eXBlIGluIHN0cmluZyBmb3JtLgorCisgICAgICAgIFF1ZXJ5IHRoZXNlIGxpc3RzIGluIEhU
TUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKCkgYW5kIE1lZGlhU291cmNlOjppc1R5cGVTdXBw
b3J0ZWQoKQorICAgICAgICBhbmQgcmVqZWN0IENvbnRlbnRUeXBlcyB3aGljaCBkbyBub3QgY29u
Zm9ybSB0byB0aGUgYWxsb3dlZCB0eXBlcy4KKworICAgICAgICBRdWVyeSB0aGVzZSBsaXN0cyBp
biBNZWRpYVNvdXJjZTo6Y2hhbmdlVHlwZSgpIHRvIGRpc2FsbG93IHN3aXRjaGluZyB0byBhbiB1
bnN1cHBvcnRlZAorICAgICAgICBDb250ZW50VHlwZS4KKyAgICAgICAgCisgICAgICAgIElmIHRo
ZXNlIGxpc3RzIGFyZSBzZXQsIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgYXMgY3JlYXRpb24g
b3B0aW9ucy4KKworICAgICAgICBXaGVuIGEgbmV3IEFWQXNzZXRUcmFjayBpcyBsb2FkZWQsIHF1
ZXJ5IHRoZXNlIGxpc3RzIGFuZCBpZiB0aGUgdHJhY2sncyB0eXBlIGRvZXMgbm90CisgICAgICAg
IGNvbmZvcm0gdG8gdGhlIGFsbG93ZWQgdHlwZXMsIHN5bnRoZXNpemUgYW4gZXJyb3IgYW5kIGJs
b2NrIGZ1cnRoZXIgbG9hZGluZy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVk
aWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBv
cnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U291cmNlQnVmZmVyOjpjaGFuZ2VUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVJbml0aWFs
aXphdGlvblNlZ21lbnQpOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5
cGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhQXVkaW9Db2RlY1R5
cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50Lmg6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBl
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0Jhc2UuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3NCYXNlOjphbGxvd2VkTWVkaWFDb250
YWluZXJUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFs
bG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jh
c2U6OmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmFsbG93ZWRN
ZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29udGVudFR5cGVVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRlbnRUeXBlc1RvQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUeXBlTWVldHND
b250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm91ckNDOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om51bGxPcHRp
b25hbFN0cmluZ1ZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpudWxsT3B0aW9uYWxGb3VyQ0NW
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Om5leHRCZXN0TWVkaWFFbmdp
bmUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjphbGxvd2VkTWVk
aWFWaWRlb0NvZGVjVHlwZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
OmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNUeXBlcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzIGNvbnN0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Ojpsb2FkaW5nTWV0YWRhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRUcmFja1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRlbnRUeXBlc1RvQ29kZWNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxs
VHJhY2tzQXJlUGxheWFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dHJhY2tJc1BsYXlhYmxlIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAgICAgIChXZWJDb3JlOjphc3NldFRy
YWNrTWV0YWRhdGFLZXlOYW1lcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjVHlwZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDIyLTAyLTAzICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRvcHQgLXN0cmVhbURhdGFQYXJz
ZXI6ZGlkUHJvdmlkZUNvbnRlbnRLZXlTcGVjaWZpZXI6Zm9yVHJhY2tJRDogZGVsZWdhdGUgY2Fs
bGJhY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDBhNzg3ZTA1ODQwNjYxYjQ4YmY2NzBmNjk5M2Y2
ZjRlOGVhZTJiZjIuLjM2YTlkYzg3Y2Y3YjIxNTM5OWEwOTBlNmE5MzIyNDVlM2MwZjA5YTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAyLTA3ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5ncyB0byByZXN0cmlj
dCBtZWRpYSBjb250YWluZXJzIGFuZCBjb2RlY3Mgd2hlbiBpbiBDYXB0aXZlIFBvcnRhbCBtb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYyNDUK
KworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW06CisKIDIwMjItMDItMTAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBTdXBwb3J0IGJvdGggdmVyc2lvbnMgb2Yg
U2NyZWVuQ2FwdHVyZUtpdCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGRiNjJiNTI4NDcwOTA0NDQ3NjczZWMw
NGNjODBmNjFiZDVjNTBlYS4uZTg5NWE1Y2Y2Y2U0NGRjOTRjNDkwMDg2OWVjY2MyN2U5ZDNmZTIx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAyMi0wMi0wNyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZ3MgdG8gcmVzdHJpY3QgbWVk
aWEgY29udGFpbmVycyBhbmQgY29kZWNzIHdoZW4gaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MjQ1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlciBjYWNoZXMgdGhlIHJlc3VsdHMgb2Ygc3VwcG9ydHNUeXBlQW5kQ29kZWNzKCkg
Y2FsbHMsIHdoaWNoCisgICAgICAgIGlzIHByb2JsZW1hdGljIHdoZW4gdGhvc2UgcmVzdWx0cyBj
YW4gY2hhbmdlIGR1ZSB0byBhIGNoYW5nZSBpbiBzZXR0aW5ncy4gU28gZW5mb3JjZQorICAgICAg
ICB0aGUgYWxsb3dlZCBjb2RlYyBhbmQgY29udGFpbmVycyBzZXR0aW5ncyBhdCB0aGUgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyIGxldmVsLiBBbHNvLAorICAgICAgICBwYXNzIHRob3NlIHNldHRp
bmdzIGFjcm9zcyB0aGUgR1BVIHByb2Nlc3MgYm91bmRhcnkgdmlhIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uLgorCisgICAgICAgIERyaXZlLWJ5IGZpeDogcmVmYWN0b3IgUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246OmRlY29kZSgpIHNvIGFzIG5vdCB0byBy
ZXF1aXJlCisgICAgICAgIHJlLWRlY2xhcmluZyB0aGUgdHlwZXMgb2YgZXZlcnkgaXZhciwgYW5k
IGdyZWF0bHkgc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb246
OmRlY29kZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpjcmVhdGVSZW1vdGVNZWRpYVBsYXllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKToKKwogMjAyMi0wMi0wMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIEFkb3B0IC1zdHJlYW1EYXRhUGFyc2VyOmRpZFByb3Zp
ZGVDb250ZW50S2V5U3BlY2lmaWVyOmZvclRyYWNrSUQ6IGRlbGVnYXRlIGNhbGxiYWNrCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IGU3OWM3ZDkyZDEyOGE4NjY4ZjM0YzMyNDE4NTM5MTQ2MzMxZjJlY2UuLjRhYTY3YTMxMjk4
MDRkYTlmZjhlNmE0NDk0NTk2YzQ2NjFmZjllMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2Ny
aXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMzI2LDYgKzEzMjYsMTQg
QEAgTWF4UGFyc2VEdXJhdGlvbjoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDogLTEKIAor
TWVkaWFBdWRpb0NvZGVjSURzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGU6CisgIHR5cGU6IFN0
cmluZworICB3ZWJjb3JlQmluZGluZzogbm9uZQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRl
ZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiAnImFhYyAsemFhYyxxYWFj
LGNhYWMsLm1wMyInCisKIE1lZGlhQ2FwYWJpbGl0aWVzRW5hYmxlZDoKICAgdHlwZTogYm9vbAog
ICBkZWZhdWx0VmFsdWU6CkBAIC0xMzM2LDYgKzEzNDQsMzAgQEAgTWVkaWFDYXBhYmlsaXRpZXNF
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJpbmcK
KyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0
VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJjNjA4LHd2dHQiJworCitNZWRp
YUNvZGVjVHlwZXNBbGxvd2VkSW5DYXB0aXZlUG9ydGFsTW9kZToKKyAgdHlwZTogU3RyaW5nCisg
IHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGV4cG9zZWQ6IFsgV2ViS2l0IF0KKyAgZGVmYXVsdFZh
bHVlOgorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6ICcibXA0YS40MCxhdmMxIicKKworTWVk
aWFDb250YWluZXJUeXBlc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBTdHJp
bmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZh
dWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJ2aWRlby9tcDQsYXVkaW8v
bXA0LHZpZGVvL3gtbTR2LGF1ZGlvL3gtbTRhLGF1ZGlvL21wMyxhcHBsaWNhdGlvbi94LW1wZWdV
Ukwsdm5kLmFwcGxlLm1wZWdVUkwiJworCiBNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3
YXJlU3VwcG9ydDoKICAgdHlwZTogU3RyaW5nCiAgIHdlYmNvcmVFeGNsdWRlRnJvbUludGVybmFs
U2V0dGluZ3M6IHRydWUKQEAgLTE0NTUsNiArMTQ4NywxNCBAQCBNZWRpYVVzZXJHZXN0dXJlSW5o
ZXJpdHNGcm9tRG9jdW1lbnQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAK
K01lZGlhVmlkZW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlOgorICB0eXBlOiBT
dHJpbmcKKyAgd2ViY29yZUJpbmRpbmc6IG5vbmUKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBk
ZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogJyJhdmMxLHphdmMscWF2
YyxjYXZjIicKKwogTWVudUl0ZW1FbGVtZW50RW5hYmxlZDoKICAgdHlwZTogYm9vbAogICB3ZWJj
b3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXgg
ODA1MDAxM2VkNjVmNDBjODhmMDQzNjEyNzgwMjVkNDYwNGZiMzAxYy4uYTRmMTM0N2VjZjc1MWVm
ZDdhNDI1ZWU4YzhkYTAxY2RiMGY4OWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNDI3LDYg
KzE0MjcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Nv
bXBsZXhUZXh0Q29udHJvbGxlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFn
ZUJ1ZmZlci5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rhc2hBcnJheS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
RGVjb2RpbmdPcHRpb25zLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9EZXN0aW5hdGlvbkNvbG9y
U3BhY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmNwcAppbmRleCA1OTVlNDI1NDI3ZThlYmFjOWY1YWI2YWYxMGE1NzNjMDU0NWJiNGFi
Li45MTI3NDdmNDA2YzI5NTk0OTk3M2I1YmIxMzQ5ZGJjYTY3NDFjMTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtMzYs
NiArMzYsNyBAQAogCiAjaW5jbHVkZSAiQXVkaW9UcmFja0xpc3QuaCIKICNpbmNsdWRlICJDb250
ZW50VHlwZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxl
bWVudC5oIgpAQCAtOTA5LDYgKzkxMCwxNyBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBw
b3J0ZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJgogICAg
IHBhcmFtZXRlcnMuaXNNZWRpYVNvdXJjZSA9IHRydWU7CiAgICAgcGFyYW1ldGVycy5jb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQgPSBXVEZNb3ZlKGNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCk7CiAKKyAgICBpZiAoY29udGV4dC5pc0RvY3VtZW50KCkpIHsK
KyAgICAgICAgYXV0byYgc2V0dGluZ3MgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuc2V0
dGluZ3MoKTsKKyAgICAgICAgaWYgKCFjb250ZW50VHlwZU1lZXRzQ29udGFpbmVyQW5kQ29kZWNU
eXBlUmVxdWlyZW1lbnRzKGNvbnRlbnRUeXBlLCBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcygpLCBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXMgPSBzZXR0aW5ncy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOworICAgICAg
ICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBzZXR0aW5ncy5hbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQXVk
aW9Db2RlY0lEcyA9IHNldHRpbmdzLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAgICAg
ICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBzZXR0aW5ncy5h
bGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKyAgICB9CisKICAgICBNZWRpYVBsYXll
cjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRlZCA9IE1lZGlhUGxheWVyOjpzdXBwb3J0c1R5cGUocGFy
YW1ldGVycyk7CiAKICAgICBpZiAoY29kZWNzLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAppbmRleCAyYjNjZGUz
NjA4MjQ3MWMxMWM4N2ZjZjYxY2M4MWNjMzYwYzM5ZDkwLi5lMDY5MjcwZGY2YjZkMWU3YmZiYzNl
MjA5MzI3Njc2YjJkOGEzOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi
QXVkaW9UcmFja0xpc3QuaCIKICNpbmNsdWRlICJBdWRpb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIkJ1ZmZlclNvdXJjZS5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCiAj
aW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE1lZGlhRWxlbWVudC5oIgpAQCAtMzU1LDYgKzM1NiwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBT
b3VyY2VCdWZmZXI6OmNoYW5nZVR5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogICAgIC8vIHRoZSB0
eXBlcyBzcGVjaWZpZWQgKGN1cnJlbnRseSBvciBwcmV2aW91c2x5KSBvZiBTb3VyY2VCdWZmZXIg
b2JqZWN0cyBpbiB0aGUgc291cmNlQnVmZmVycyBhdHRyaWJ1dGUgb2YKICAgICAvLyB0aGUgcGFy
ZW50IG1lZGlhIHNvdXJjZSwgdGhlbiB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIGV4Y2VwdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgQ29udGVudFR5cGUgY29udGVudFR5cGUodHlw
ZSk7CisKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKTsKKyAgICBp
ZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1aXJlbWVudHMoY29u
dGVudFR5cGUsIHNldHRpbmdzLmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCksIHNldHRpbmdz
LmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciB9OworCiAgICAgaWYgKCFtX3ByaXZhdGUtPmNhblN3aXRjaFRvVHlw
ZShjb250ZW50VHlwZSkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciB9OwogCkBAIC03ODYsNiArNzkyLDI1IEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3VyY2VC
dWZmZXJQcml2YXRlRGlkUmVjZWl2ZUluaXRpYWxpemF0aW9uU2VnbWVudChJbml0aWFsaXphCiAg
ICAgICAgIC8vIDUuMSBJZiB0aGUgaW5pdGlhbGl6YXRpb24gc2VnbWVudCBjb250YWlucyB0cmFj
a3Mgd2l0aCBjb2RlY3MgdGhlIHVzZXIgYWdlbnQgZG9lcyBub3Qgc3VwcG9ydCwKICAgICAgICAg
Ly8gdGhlbiBydW4gdGhlIGFwcGVuZCBlcnJvciBhbGdvcml0aG0gd2l0aCB0aGUgZGVjb2RlIGVy
cm9yIHBhcmFtZXRlciBzZXQgdG8gdHJ1ZSBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgICAg
IC8vIE5PVEU6IFRoaXMgY2hlY2sgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBTb3VyY2VC
dWZmZXJQcml2YXRlLgorICAgICAgICBpZiAoYXV0byYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lE
cyA9IGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkpIHsK
KyAgICAgICAgICAgIGZvciAoYXV0byYgYXVkaW9UcmFja0luZm8gOiBzZWdtZW50LmF1ZGlvVHJh
Y2tzKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1ZGlvVHJhY2tJbmZvLmRlc2NyaXB0aW9uICYm
IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMtPmNvbnRhaW5zKEZvdXJDQzo6ZnJvbVN0cmluZyhh
dWRpb1RyYWNrSW5mby5kZXNjcmlwdGlvbi0+Y29kZWMoKSkpKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBhcHBlbmRFcnJvcih0cnVlKTsKKyAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhdXRvJiBhbGxvd2VkTWVkaWFW
aWRlb0NvZGVjSURzID0gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRNZWRpYVZpZGVvQ29k
ZWNJRHMoKSkgeworICAgICAgICAgICAgZm9yIChhdXRvJiB2aWRlb1RyYWNrSW5mbyA6IHNlZ21l
bnQudmlkZW9UcmFja3MpIHsKKyAgICAgICAgICAgICAgICBpZiAodmlkZW9UcmFja0luZm8uZGVz
Y3JpcHRpb24gJiYgYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcy0+Y29udGFpbnMoRm91ckNDOjpm
cm9tU3RyaW5nKHZpZGVvVHJhY2tJbmZvLmRlc2NyaXB0aW9uLT5jb2RlYygpKSkpCisgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGFwcGVuZEVycm9yKHRydWUp
OworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgLy8gNS4yIEZvciBl
YWNoIGF1ZGlvIHRyYWNrIGluIHRoZSBpbml0aWFsaXphdGlvbiBzZWdtZW50LCBydW4gZm9sbG93
aW5nIHN0ZXBzOgogICAgICAgICBmb3IgKGF1dG8mIGF1ZGlvVHJhY2tJbmZvIDogc2VnbWVudC5h
dWRpb1RyYWNrcykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGE5N2E4NzYxZTk2NDgxMDgxNzIxYmVjNTI3YzAxMGJl
NDUzZmQzOTcuLjk3NzIxNThmYTlhNTQ2YjQ2NzU3OTI3YTAzMWMyOGQxMGJkYTQyMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKQEAgLTEyNyw2ICsxMjcsMTQgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFW
TWVkaWFUeXBlQXVkaW8gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWTWVkaWFUeXBlQXVkaW8oKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWTWVkaWFU
eXBlTWV0YWRhdGEsIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWTWVkaWFUeXBlTWV0YWRhdGEgUEFM
OjpnZXRfQVZGb3VuZGF0aW9uX0FWTWVkaWFUeXBlTWV0YWRhdGEoKQorU09GVF9MSU5LX0NPTlNU
QU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxv
d2FibGVUeXBlQ2F0ZWdvcmllc0tleSwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFs
bG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5IFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0
QWxsb3dhYmxlVHlwZUNhdGVnb3JpZXNLZXkoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
X0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVBdWRpb0Nv
ZGVjVHlwZXNLZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxvd2FibGVBdWRp
b0NvZGVjVHlwZXNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVB
dWRpb0NvZGVjVHlwZXNLZXkoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFE
RVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNL
ZXksIE5TU3RyaW5nICopCisjZGVmaW5lIEFWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlw
ZXNLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVj
VHlwZXNLZXkoKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9IRUFERVIoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVDYXB0aW9uRm9ybWF0c0tleSwgTlNTdHJp
bmcgKikKKyNkZWZpbmUgQVZVUkxBc3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5IFBBTDo6
Z2V0X0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkoKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklLZXksIE5TU3RyaW5n
ICopCiAjZGVmaW5lIEFWVVJMQXNzZXRJbmhlcml0VVJJUXVlcnlDb21wb25lbnRGcm9tUmVmZXJl
bmNpbmdVUklLZXkgUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWVVJMQXNzZXRJbmhlcml0VVJJUXVl
cnlDb21wb25lbnRGcm9tUmVmZXJlbmNpbmdVUklLZXkoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9IRUFERVIoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJl
TW9kZUNsZWFuQXBlcnR1cmUsIE5TU3RyaW5nICopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCBiZDZlYmJjYjk5MTNk
YThjMTJhOGI5NmFhMmJlMTI4ZjA4MTkzNzdkLi42ZGI5MjViYWYzZTUyZTJkMmRjMWRhODc4NTli
ZmVmODk1NDgwMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FW
Rm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTE4Miw2ICsxODIsMTAgQEAgU09GVF9MSU5LX0NP
TlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWU2FtcGxl
QnVmZmVyQXVkaW8KIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBB
TCwgQVZGb3VuZGF0aW9uLCBBVlN0cmVhbURhdGFQYXJzZXJDb250ZW50S2V5UmVxdWVzdFByb3Rv
Y29sVmVyc2lvbnNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RB
TlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTdHJlYW1TZXNz
aW9uQ29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllckNoYW5nZWROb3RpZmljYXRpb24s
IE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZTdHJlYW1pbmdLZXlEZWxpdmVyeUNvbnRl
bnRLZXlUeXBlLCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01B
WV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVlVSTEFzc2V0QWxsb3dhYmxlQXVkaW9Db2RlY1R5cGVzS2V5LCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0Nv
ZGVjVHlwZXNLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRf
TUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxB
c3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRDYWNoZUtleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVS
TEFzc2V0SW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50RnJvbVJlZmVyZW5jaW5nVVJJS2V5LCBOU1N0
cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFj
a3NLZXksIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDYxNDJkMjQz
ZGIyODgwYzUxZWZlZjU4YTA0YzliMGJhNzUzZjYwNDEuLjIwMTkwNTYyYzEzMzYxNjgzMjVhMzQ5
OGU1YjMxZDQwODJkYjY3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMDAzLDYgKzIwMDMsNyBAQCBw
bGF0Zm9ybS9ncmFwaGljcy9Db2xvclNlcmlhbGl6YXRpb24uY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvclNwYWNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3JVdGlsaXRpZXMuY3BwCiBw
bGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCitwbGF0Zm9ybS9ncmFw
aGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFk
ZUdlbmVyYXRlZEltYWdlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRGVzdGluYXRpb25Db2xvclNw
YWNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGE4ZDczNjg1ZTBiYjRmNGE3NTRlZGU0OTE3NmEzMmI4MGUyZDJkYmIuLjc4OWQ3NmVmZWYzNTcz
NjBmMGE5ZDRkZWQyY2I5OTA2ZDFjZGRhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1NjYsNiArNDU2Niw3IEBACiAJCUNE
QUI2RDJFMTdDODE0RUUwMEM2MEIzNCAvKiBKU01lZGlhQ29udHJvbHNIb3N0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREFCNkQyQzE3QzgxNEVFMDBD
NjBCMzQgLyogSlNNZWRpYUNvbnRyb2xzSG9zdC5oICovOyB9OwogCQlDREFCNkQzMTE3QzkyNTk1
MDBDNjBCMzQgLyogVXNlckFnZW50U2NyaXB0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBQjZEMkYxN0M5MjU5NTAwQzYwQjM0IC8qIFVzZXJBZ2Vu
dFNjcmlwdHMuaCAqLzsgfTsKIAkJQ0RBQzA2ODMyNEM2QTk1QTAwMkY3MjdGIC8qIFZQOVV0aWxp
dGllc0NvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDZGRTVCNzI0QkNFNjQ1MDA5RkNEQTQgLyogVlA5VXRpbGl0aWVzQ29jb2EuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDREFEMUE1QTI3QUZD
MjdDMDA2OTkyODUgLyogQ29udGVudFR5cGVVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQUQxQTU3MjdBRkJGMzkwMDY5OTI4NSAvKiBD
b250ZW50VHlwZVV0aWxpdGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUNEQjYzNTQ5MjNGNjAyM0EwMEMwRjlERSAvKiBXZWJBVlBsYXllckNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENEQTI5QTJDMUNCRjczRkMwMDkwMUNDRiAvKiBXZWJBVlBsYXllckNvbnRyb2xsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREI3MDQ1QTFG
NzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQjcwNDU4MUY3NDY1QTEwMDM5MjNERiAv
KiBDRE1GYWlyUGxheVN0cmVhbWluZy5oICovOyB9OwogCQlDREI3MDQ1QjFGNzQ2NUExMDAzOTIz
REYgLyogQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCNzA0NTkxRjc0NjVBMTAwMzkyM0RGIC8qIENETUZhaXJQ
bGF5U3RyZWFtaW5nLmNwcCAqLzsgfTsKQEAgLTE2MTY1LDYgKzE2MTY2LDggQEAKIAkJQ0RBQjZE
MkMxN0M4MTRFRTAwQzYwQjM0IC8qIEpTTWVkaWFDb250cm9sc0hvc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUNvbnRyb2xzSG9zdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREFCNkQyRjE3QzkyNTk1MDBDNjBCMzQgLyogVXNlckFnZW50U2Ny
aXB0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVc2VyQWdlbnRTY3JpcHRz
Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2VudFNjcmlwdHMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQ0RBQjZEMzAxN0M5MjU5NTAwQzYw
QjM0IC8qIFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFVzZXJBZ2VudFNjcmlwdHNEYXRhLmNwcDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvVXNlckFnZW50U2NyaXB0c0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQlDREFEMUE1NzI3QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5
cGVVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudFR5cGVVdGlsaXRpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RBRDFBNTgyN0FGQkYzOTAwNjk5Mjg1IC8qIENv
bnRlbnRUeXBlVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRlbnRUeXBlVXRp
bGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBRThDMDcxNzQ2Qjk1
NzAwNTMyRDc4IC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREFFOEMwODE3NDZCOTU3MDA1MzJENzgg
LyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDREI3MDQ1ODFGNzQ2NUExMDAzOTIzREYgLyogQ0RNRmFpclBsYXlTdHJl
YW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ0RNRmFpclBsYXlTdHJlYW1pbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4ODU3LDYgKzI4ODYwLDggQEAKIAkJCQlDMkY0RTc4OTFF
NDVBRURGMDA2RDcxMDUgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmggKi8sCiAJCQkJMUM4NEJF
NDEyNkQzOTM5RjAwMkQ2MUZDIC8qIENvbXBvc2VkQ2hhcmFjdGVyQ2x1c3RlclRleHRJdGVyYXRv
ci5oICovLAogCQkJCTcyQkFDM0E3MjNFMTczMjgwMDhENzQxQyAvKiBDb25jcmV0ZUltYWdlQnVm
ZmVyLmggKi8sCisJCQkJQ0RBRDFBNTgyN0FGQkYzOTAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRp
bGl0aWVzLmNwcCAqLywKKwkJCQlDREFEMUE1NzI3QUZCRjM5MDA2OTkyODUgLyogQ29udGVudFR5
cGVVdGlsaXRpZXMuaCAqLywKIAkJCQkyRDJGQzA1NDE0NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTJEMkZDMDU1MTQ2MENENkYwMDI2MzYzMyAv
KiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLAogCQkJCUE4Q0I0MTAyMEU4NUI4QTUwMDMy
QzRGMCAvKiBEYXNoQXJyYXkuaCAqLywKQEAgLTMzODg4LDYgKzMzODkzLDcgQEAKIAkJCQlDRTc5
OUY5ODFDNkE0NkJDMDA5N0I1MTggLyogQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U3OTlGQUMxQzZBNTA2NjAwOTdCNTE4IC8qIENvbnRlbnRT
ZWN1cml0eVBvbGljeVNvdXJjZUxpc3REaXJlY3RpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
RDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQ0RBRDFBNUEyN0FGQzI3QzAwNjk5Mjg1IC8qIENvbnRlbnRUeXBlVXRpbGl0aWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzYyN0I4RTE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjZBMEU2MEIwQkNBNUMwMEY1
MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0RjUwQjBDMkVE
QTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYXB0aW9ucy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Y2FwdGlvbnMuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzZTg3NjlkNTQwNzhkZDViMTZmMWE5MjVkYTI1NWI4
ODE3OTViYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FwdGlvbnMu
Y3NzCkBAIC0wLDAgKzEsMjggQEAKK3ZpZGVvOjpjdWUoKikgeworICAgIGJhY2tncm91bmQtY29s
b3I6IHJnYmEoMCwgMCwgMCwgMC44KTsKK30KKwordmlkZW86OmN1ZSg6ZnV0dXJlKSA+ICogewor
ICAgIGNvbG9yOiBncmF5OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWRp
c3BsYXkgeworICAgIGZvbnQ6IDIycHggc2Fucy1zZXJpZjsgLyogS2VlcCBpbiBzeW5jIHdpdGgg
YERFRkFVTFRDQVBUSU9ORk9OVFNJWkVgLiAqLworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS10
ZXh0LXRyYWNrLWNvbnRhaW5lciBiIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKK30KKwordmlk
ZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIgdSB7CisgICAgdGV4dC1kZWNv
cmF0aW9uOiB1bmRlcmxpbmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLXRleHQtdHJhY2st
Y29udGFpbmVyIGkgeworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKK30KKwordmlkZW86Oi13ZWJr
aXQtbWVkaWEtdGV4dC10cmFjay1yZWdpb24geworICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwg
MCwgMC44KTsKKyAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGZhZmRhNzZhNDMxNzc1ZjkzYTY4
NmU1NTY1OWE5MzJjZWQ3ZDFiMmQuLjQ5NmM2YTljYjIzYTZhMmE5NTM5M2Y4YTQ2ZTg2MjA5NDc3
MGFhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTA4
OSw2ICsxMDg5LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAgIENvbnRlbnRUeXBlIGNvbnRlbnRUeXBlKG1p
bWVUeXBlKTsKICAgICBwYXJhbWV0ZXJzLnR5cGUgPSBjb250ZW50VHlwZTsKICAgICBwYXJhbWV0
ZXJzLmNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCA9IG1lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVk
aWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCk7CisgICAgcGFy
YW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gYWxsb3dlZE1lZGlhQ29kZWNUeXBlcygp
OworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9IGFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KTsKKwogICAgIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydCA9IE1lZGlhUGxheWVy
OjpzdXBwb3J0c1R5cGUocGFyYW1ldGVycyk7CiAgICAgU3RyaW5nIGNhblBsYXk7CiAKQEAgLTc0
MTQsNiArNzQyMCwzMSBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxk
Q2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitjb25z
dCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dl
ZE1lZGlhQ29udGFpbmVyVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnNl
dHRpbmdzKCkuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKK30KKworY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIEhUTUxNZWRpYUVsZW1lbnQ6OmFsbG93ZWRNZWRpYUNv
ZGVjVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudCgpLnNldHRpbmdzKCkuYWxs
b3dlZE1lZGlhQ29kZWNUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxG
b3VyQ0M+PiYgSFRNTE1lZGlhRWxlbWVudDo6YWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKCk7Cit9CisKK2NvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBI
VE1MTWVkaWFFbGVtZW50OjphbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMo
KTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIEhUTUxNZWRpYUVs
ZW1lbnQ6OmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGRvY3VtZW50KCkuc2V0dGluZ3MoKS5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckJ1ZmZlcmVkVGltZVJh
bmdlc0NoYW5nZWQoKQogewogICAgIGlmICghbV90ZXh0VHJhY2tzIHx8IG1fYnVmZmVyZWRUaW1l
UmFuZ2VzQ2hhbmdlZFRhc2tDYW5jZWxsYXRpb25Hcm91cC5oYXNQZW5kaW5nVGFzaygpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCAzMjllNjNlYTU2MmI3OTA2ZDE3
M2E5NjE3OWNjZTc4NDQxOGNjZjdhLi4wMDQ5MTg2MTNlYjkzMTEwNjIzYjAzYmFmZjk3NjFkNjMw
YzQ4Y2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNzcwLDYg
Kzc3MCwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGREaXNhYmxlU2xl
ZXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBzaG91bGREaXNhYmxlU2xlZXAoKSA9PSBTbGVlcFR5
cGU6OkRpc3BsYXk7IH0KICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkQ2hlY2tIYXJkd2FyZVN1
cHBvcnQoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOworICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWlu
ZXJUeXBlcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qg
c3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMo
KSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYg
YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgbWVkaWFQbGF5ZXJCdWZmZXJlZFRpbWVSYW5nZXND
aGFuZ2VkKCkgZmluYWw7CiAKICNpZiBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5nc0Jhc2UuY3BwCmluZGV4IDdmNTRkODc2OGNjMmZhMzY0ZTU0NDFjZThkNDBkYTg1NjA3OWM2
ZmIuLjE2Y2FmODQzNzE3ZDlmMGQxMzg3ZmYxOTllNWQ3ODE1YjYxYWY0NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzQmFzZS5jcHAKQEAgLTE5OSw3ICsxOTksOTggQEAgdm9pZCBTZXR0aW5n
c0Jhc2U6OnNldE1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KGNvbnN0
IFZlY3RvcjxDb24KICAgICBtX21lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBw
b3J0ID0gY29udGVudFR5cGVzOwogfQogCit2b2lkIFNldHRpbmdzQmFzZTo6c2V0QWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMu
aXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxTdHJpbmc+IG5l
d1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywn
KSkKKyAgICAgICAgbmV3VHlwZXMuYXBwZW5kKHR5cGUudG9TdHJpbmcoKSk7CisKKyAgICBtX2Fs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RGTW92ZShuZXdUeXBlcyk7Cit9CisKK3ZvaWQg
U2V0dGluZ3NCYXNlOjpzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYgdHlw
ZXMpCit7CisgICAgaWYgKHR5cGVzLmlzTnVsbCgpKSB7CisgICAgICAgIG1fYWxsb3dlZE1lZGlh
Q29kZWNUeXBlcyA9IHN0ZDo6bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFZlY3RvcjxTdHJpbmc+IG5ld1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmll
dyh0eXBlcykuc3BsaXQoJywnKSkKKyAgICAgICAgbmV3VHlwZXMuYXBwZW5kKHR5cGUudG9TdHJp
bmcoKSk7CiAKKyAgICBtX2FsbG93ZWRNZWRpYUNvZGVjVHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVz
KTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMo
Y29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAg
ICAgbV9hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gc3RkOjpudWxsb3B0OworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPEZvdXJDQz4gbmV3VHlwZXM7CisgICAgZm9yIChh
dXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5cGVzKS5zcGxpdCgnLCcpKSB7CisgICAgICAgIGlmIChh
dXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJvbVN0cmluZyh0eXBlKSkKKyAgICAgICAgICAgIG5ld1R5
cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3VyQ0MpKTsKKyAgICB9CisKKyAgICBtX2FsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jh
c2U6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sK
KyAgICBpZiAodHlwZXMuaXNOdWxsKCkpIHsKKyAgICAgICAgbV9hbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzID0gc3RkOjpudWxsb3B0OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVj
dG9yPEZvdXJDQz4gbmV3VHlwZXM7CisgICAgZm9yIChhdXRvIHR5cGUgOiBTdHJpbmdWaWV3KHR5
cGVzKS5zcGxpdCgnLCcpKSB7CisgICAgICAgIGlmIChhdXRvIGZvdXJDQyA9IEZvdXJDQzo6ZnJv
bVN0cmluZyh0eXBlKSkKKyAgICAgICAgICAgIG5ld1R5cGVzLmFwcGVuZChXVEZNb3ZlKCpmb3Vy
Q0MpKTsKKyAgICB9CisKKyAgICBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBXVEZNb3Zl
KG5ld1R5cGVzKTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnNldEFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICh0eXBlcy5pc051
bGwoKSkgeworICAgICAgICBtX2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyA9IHN0ZDo6
bnVsbG9wdDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFZlY3RvcjxGb3VyQ0M+IG5l
d1R5cGVzOworICAgIGZvciAoYXV0byB0eXBlIDogU3RyaW5nVmlldyh0eXBlcykuc3BsaXQoJywn
KSkgeworICAgICAgICBpZiAoYXV0byBmb3VyQ0MgPSBGb3VyQ0M6OmZyb21TdHJpbmcodHlwZSkp
CisgICAgICAgICAgICBuZXdUeXBlcy5hcHBlbmQoV1RGTW92ZSgqZm91ckNDKSk7CisgICAgfQor
CisgICAgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBXVEZNb3ZlKG5ld1R5cGVz
KTsKK30KKwordm9pZCBTZXR0aW5nc0Jhc2U6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQorewor
ICAgIG1fbWluaW11bURPTVRpbWVySW50ZXJ2YWwgPSBET01UaW1lcjo6ZGVmYXVsdE1pbmltdW1J
bnRlcnZhbCgpOworCisgICAgc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RkOjpudWxs
b3B0KTsKKyAgICBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0ZDo6bnVsbG9wdCk7CisgICAg
c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhzdGQ6Om51bGxvcHQpOworICAgIHNldEFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoc3RkOjpudWxsb3B0KTsKKyAgICBzZXRBbGxvd2VkTWVkaWFD
YXB0aW9uRm9ybWF0VHlwZXMoc3RkOjpudWxsb3B0KTsKKworI2lmIEVOQUJMRShURVhUX0FVVE9T
SVpJTkcpCisgICAgbV9vbmVMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmljaWVudCA9IGRlZmF1bHRP
bmVMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmljaWVudDsKKyAgICBtX211bHRpTGluZVRleHRNdWx0
aXBsaWVyQ29lZmZpY2llbnQgPSBkZWZhdWx0TXVsdGlMaW5lVGV4dE11bHRpcGxpZXJDb2VmZmlj
aWVudDsKKyAgICBtX21heFRleHRBdXRvc2l6aW5nU2NhbGVJbmNyZWFzZSA9IGRlZmF1bHRNYXhU
ZXh0QXV0b3NpemluZ1NjYWxlSW5jcmVhc2U7CisjZW5kaWYKK30KIAogLy8gTUFSSyAtIG9uQ2hh
bmdlIGhhbmRsZXJzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzQmFzZS5oCmluZGV4IDQwZGRiOGE3
ZjdhZjg0NWQ0YjY1ZTYzMGZiN2FiMmU2NTRiYTFjOTIuLjFiMzliMTM2OWMwOTZjODMzNjUyZDg5
MTVlM2RhNWQ4YjcxOTZmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3NCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0Jhc2UuaApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkZvbnRMb2FkVGltaW5nT3ZlcnJpZGUuaCIKICNpbmNsdWRl
ICJGb250UmVuZGVyaW5nTW9kZS5oIgogI2luY2x1ZGUgIkZvcmNlZEFjY2Vzc2liaWxpdHlWYWx1
ZS5oIgorI2luY2x1ZGUgIkZvdXJDQy5oIgogI2luY2x1ZGUgIkZyYW1lRmxhdHRlbmluZy5oIgog
I2luY2x1ZGUgIkhUTUxQYXJzZXJTY3JpcHRpbmdGbGFnUG9saWN5LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5ZXJFbnVtcy5oIgpAQCAtMTA4LDYgKzEwOSwyOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRNZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9y
dChjb25zdCBTdHJpbmcmKTsKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNv
bnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVk
aWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7IH0KIAorICAgIHZvaWQgc2V0
QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4m
JiB0eXBlcykgeyBtX2FsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzID0gV1RGTW92ZSh0eXBlcyk7
IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+
JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXM7IH0KKworICAgIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBl
cyhzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYmIHR5cGVzKSB7IG1fYWxsb3dlZE1lZGlh
Q29kZWNUeXBlcyA9IFdURk1vdmUodHlwZXMpOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3Qg
eyByZXR1cm4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOyB9CisKKyAgICB2b2lkIHNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHMoc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mJiB0eXBl
cykgeyBtX2FsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgPSBXVEZNb3ZlKHR5cGVzKTsgfQorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBT
dHJpbmcmKTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgYWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEczsgfQorCisgICAgdm9pZCBzZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzID0gV1RGTW92ZSh0eXBlcyk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEFs
bG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKSBjb25z
dCB7IHJldHVybiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7IH0KKworICAgIHZvaWQgc2V0
QWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJD
Qz4+JiYgdHlwZXMpIHsgbV9hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBXVEZNb3Zl
KHR5cGVzKTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QWxsb3dlZE1lZGlhQ2FwdGlv
bkZvcm1hdFR5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlczsgfQorCisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisKIHByb3RlY3RlZDoKICAgICBl
eHBsaWNpdCBTZXR0aW5nc0Jhc2UoUGFnZSopOwogICAgIHZpcnR1YWwgflNldHRpbmdzQmFzZSgp
OwpAQCAtMTUwLDYgKzE3MywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgVGltZXIgbV9zZXRJbWFnZUxv
YWRpbmdTZXR0aW5nc1RpbWVyOwogCiAgICAgVmVjdG9yPENvbnRlbnRUeXBlPiBtX21lZGlhQ29u
dGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OworICAgIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPFN0cmluZz4+IG1fYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U3RyaW5nPj4gbV9hbGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgIHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IG1fYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEczsKKyAg
ICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBtX2FsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJ
RHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4gbV9hbGxvd2VkTWVkaWFDYXB0
aW9uRm9ybWF0VHlwZXM7CiAKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgZmxvYXQgYm9vc3RlZE9uZUxpbmVUZXh0TXVsdGlwbGllckNvZWZm
aWNpZW50ID0gMi4yMzEyNWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db250ZW50VHlwZVV0aWxpdGllcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTRkNzU1Mjgx
NjE3YjBhYzg4Yjc0MGZkYzBlNzYzOWU1YjVmZmM4MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmNwcApAQCAt
MCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbnRlbnRUeXBlVXRpbGl0aWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworI2luY2x1
ZGUgIkZvdXJDQy5oIgorI2luY2x1ZGUgPHd0Zi9BbGdvcml0aG1zLmg+CisKK2Jvb2wgY29udGVu
dFR5cGVNZWV0c0NvbnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBDb250ZW50
VHlwZSYgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiYg
YWxsb3dlZE1lZGlhQ29kZWNUeXBlcykKK3sKKyAgICBpZiAoYWxsb3dlZE1lZGlhQ29udGFpbmVy
VHlwZXMgJiYgIWFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzLT5jb250YWlucyh0eXBlLmNvbnRh
aW5lclR5cGUoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghYWxsb3dlZE1l
ZGlhQ29kZWNUeXBlcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gYWxsT2Yo
dHlwZS5jb2RlY3MoKSwgWyZdIChhdXRvJiBjb2RlYykgeworICAgICAgICByZXR1cm4gYW55T2Yo
KmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMsIFsmXSAoYXV0byYgYWxsb3dlZENvZGVjKSB7CisgICAg
ICAgICAgICByZXR1cm4gY29kZWMuc3RhcnRzV2l0aChhbGxvd2VkQ29kZWMpOworICAgICAgICB9
KTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29udGVudFR5cGVVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTljNGQyYjlhNGU5
YmVhMmYyY2M2YWM3ZjMwZDM0YjRiODE4NWE2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbnRlbnRUeXBlVXRpbGl0aWVzLmgKQEAgLTAsMCAr
MSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29udGVudFR5
cGUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBGb3VyQ0M7CisKK1dFQkNPUkVfRVhQT1JUIGJvb2wgY29udGVudFR5cGVNZWV0c0Nv
bnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBl
cywgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRNZWRpYUNvZGVj
VHlwZXMpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb3VyQ0MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCmlu
ZGV4IDI0ZTI1NWRmNDRmYjFmNzg3MTRjNThlOTk5OTEwMTI2ZDQ2OWMwYWIuLmIzN2QwNTBlOWMw
YzM2NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvdXJDQy5oCkBAIC0zNyw2ICszNywxOCBAQCBzdHJ1Y3QgRm91ckNDIHsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxGb3VyQ0M+IGZyb21TdHJpbmcoU3RyaW5nVmlldyk7CiAK
ICAgICB1aW50MzJfdCB2YWx1ZSB7IDAgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CisgICAgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAg
IGVuY29kZXIgPDwgdmFsdWU7CisgICAgfQorCisgICAgdGVtcGxhdGUgPGNsYXNzIERlY29kZXI+
CisgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBGb3VyQ0MmIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGUoY29uZmlndXJhdGlvbi52YWx1ZSk7CisgICAgfQogfTsKIAogY29uc3RleHByIGJv
b2wgb3BlcmF0b3I9PShGb3VyQ0MsIEZvdXJDQyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggN2RjYTU4Y2FmYzZkYjY2OWU0ODYy
ZTU1YzI4M2U5NGI3YTRkODJlNC4uNmM2MWQ3MzcwODQxZjM4MTUwN2I3NjgyZWZjOGZiZTlhMjFi
M2VmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIKICNp
bmNsdWRlICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJGb3VyQ0MuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSAiTGVnYWN5Q0RNU2Vzc2lvbi5oIgpAQCAtMTc2LDYgKzE3NywxOCBAQCBzdGF0aWMgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiYgbnVsbENvbnRlbnRUeXBlVmVjdG9yKCkK
ICAgICByZXR1cm4gdmVjdG9yOwogfQogCitzdGF0aWMgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0
b3I8U3RyaW5nPj4mIG51bGxPcHRpb25hbFN0cmluZ1ZlY3RvcigpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+PiB2ZWN0b3I7CisgICAg
cmV0dXJuIHZlY3RvcjsKK30KKworc3RhdGljIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZv
dXJDQz4+JiBudWxsT3B0aW9uYWxGb3VyQ0NWZWN0b3IoKQoreworICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+Pj4gdmVjdG9yOworICAgIHJldHVy
biB2ZWN0b3I7Cit9CisKIGNsYXNzIE51bGxNZWRpYVBsYXllckNsaWVudCA6IHB1YmxpYyBNZWRp
YVBsYXllckNsaWVudCB7CiBwcml2YXRlOgogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAt
MTk3LDYgKzIxMCwxMiBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01F
RElBKQogICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gbWVkaWFQbGF5ZXJDYWNoZWRLZXlGb3JLZXlJ
ZChjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYK
KworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51bGxPcHRpb25hbFN0cmluZ1Zl
Y3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93
ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBudWxsT3B0aW9uYWxTdHJp
bmdWZWN0b3IoKTsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBh
bGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbE9wdGlv
bmFsRm91ckNDVmVjdG9yKCk7IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3Vy
Q0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG51
bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0
b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG51bGxPcHRpb25hbEZvdXJDQ1ZlY3RvcigpOyB9CiB9OwogCiBjb25zdCBWZWN0
b3I8Q29udGVudFR5cGU+JiBNZWRpYVBsYXllckNsaWVudDo6bWVkaWFDb250ZW50VHlwZXNSZXF1
aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSBjb25zdApAQCAtNTI5LDYgKzU0OCwxMSBAQCBjb25zdCBN
ZWRpYVBsYXllckZhY3RvcnkqIE1lZGlhUGxheWVyOjpuZXh0QmVzdE1lZGlhRW5naW5lKGNvbnN0
IE1lZGlhUGxheWVyRmFjdAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgcGFyYW1ldGVy
cy5pc01lZGlhU3RyZWFtID0gISFtX21lZGlhU3RyZWFtOwogI2VuZGlmCisgICAgcGFyYW1ldGVy
cy5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IGFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KCk7CisgICAgcGFyYW1ldGVycy5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzID0gYWxsb3dlZE1lZGlh
Q29kZWNUeXBlcygpOworICAgIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyA9
IGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMgPSBhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCk7CisgICAgcGFyYW1l
dGVycy5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgPSBhbGxvd2VkTWVkaWFDYXB0aW9u
Rm9ybWF0VHlwZXMoKTsKIAogICAgIGlmIChtX2FjdGl2ZUVuZ2luZUlkZW50aWZpZXIpIHsKICAg
ICAgICAgaWYgKGN1cnJlbnQpCkBAIC0xNjU3LDYgKzE2ODEsMzEgQEAgYm9vbCBNZWRpYVBsYXll
cjo6c2hvdWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSBjb25zdAogICAgIHJldHVybiBjbGllbnQo
KS5tZWRpYVBsYXllclNob3VsZENoZWNrSGFyZHdhcmVTdXBwb3J0KCk7CiB9CiAKK2NvbnN0IHN0
ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhQ29u
dGFpbmVyVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcygpOworfQorCitjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoKSBjb25zdAoreworICAgIHJl
dHVybiBjbGllbnQoKS5hbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCk7Cit9CisKK2NvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBNZWRpYVBsYXllcjo6YWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHMoKTsKK30KKworY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIE1l
ZGlhUGxheWVyOjphbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gY2xpZW50KCkuYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpOworfQorCitjb25zdCBzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYgTWVkaWFQbGF5ZXI6OmFsbG93ZWRNZWRpYUNhcHRp
b25Gb3JtYXRUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNsaWVudCgpLmFsbG93ZWRNZWRp
YUNhcHRpb25Gb3JtYXRUeXBlcygpOworfQorCiB2b2lkIE1lZGlhUGxheWVyOjphcHBsaWNhdGlv
bldpbGxSZXNpZ25BY3RpdmUoKQogewogICAgIG1fcHJpdmF0ZS0+YXBwbGljYXRpb25XaWxsUmVz
aWduQWN0aXZlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAppbmRleCBkN2NiOTQzMzc0MWFlZjE3NDUxOGEwMTE0ODU1ZDBiMzM5ZGY2NjI3Li44
OTMxNzE1OTI1YTE0ODNhZmFkMGNjY2ExNjNhZTE1OWY5NDczYjhhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTI5LDYgKzI5LDcgQEAK
IAogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCisjaW5jbHVk
ZSAiRm91ckNDLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlc0dMLmgiCiAjaW5jbHVkZSAiTGF5
b3V0UmVjdC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyRW51bXMuaCIKQEAgLTk4LDYgKzk5LDEx
IEBAIHN0cnVjdCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzIHsKICAgICBib29sIGlzTWVk
aWFTb3VyY2UgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNNZWRpYVN0cmVhbSB7IGZhbHNlIH07CiAg
ICAgVmVjdG9yPENvbnRlbnRUeXBlPiBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBv
cnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29udGFp
bmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlh
Q29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiBhbGxvd2VkTWVk
aWFWaWRlb0NvZGVjSURzOworICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+IGFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4g
YWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApAQCAtMTA3LDM3
ICsxMTMsMjYgQEAgc3RydWN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMgewogICAgICAg
ICBlbmNvZGVyIDw8IGlzTWVkaWFTb3VyY2U7CiAgICAgICAgIGVuY29kZXIgPDwgaXNNZWRpYVN0
cmVhbTsKICAgICAgICAgZW5jb2RlciA8PCBjb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1
cHBvcnQ7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7Cisg
ICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICAgICAgZW5jb2Rl
ciA8PCBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzOwogICAgIH0KIAogICAgIHRlbXBsYXRlIDxjbGFzcyBEZWNvZGVyPgot
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnM+IGRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQorICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogICAgIHsK
LSAgICAgICAgc3RkOjpvcHRpb25hbDxDb250ZW50VHlwZT4gdHlwZTsKLSAgICAgICAgZGVjb2Rl
ciA+PiB0eXBlOwotICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8VVJMPiB1cmw7Ci0gICAgICAgIGRlY29k
ZXIgPj4gdXJsOwotICAgICAgICBpZiAoIXVybCkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxib29sPiBpc01lZGlhU291cmNlOwotICAg
ICAgICBkZWNvZGVyID4+IGlzTWVkaWFTb3VyY2U7Ci0gICAgICAgIGlmICghaXNNZWRpYVNvdXJj
ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRp
b25hbDxib29sPiBpc01lZGlhU3RyZWFtOwotICAgICAgICBkZWNvZGVyID4+IGlzTWVkaWFTdHJl
YW07Ci0gICAgICAgIGlmICghaXNNZWRpYVN0cmVhbSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8Q29udGVudFR5cGU+PiB0
eXBlc1JlcXVpcmluZ0hhcmR3YXJlOwotICAgICAgICBkZWNvZGVyID4+IHR5cGVzUmVxdWlyaW5n
SGFyZHdhcmU7Ci0gICAgICAgIGlmICghdHlwZXNSZXF1aXJpbmdIYXJkd2FyZSkKLSAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICAgICAgcmV0dXJuIHt7IFdURk1vdmUoKnR5
cGUpLCBXVEZNb3ZlKCp1cmwpLCAqaXNNZWRpYVNvdXJjZSwgKmlzTWVkaWFTdHJlYW0sICp0eXBl
c1JlcXVpcmluZ0hhcmR3YXJlIH19OworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy50eXBlKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51
cmwpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzTWVkaWFTb3Vy
Y2UpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmlzTWVkaWFTdHJl
YW0pCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNvbnRlbnRUeXBl
c1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMpCisgICAgICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpCisgICAgICAg
ICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJ
RHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmFsbG93ZWRNZWRp
YUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJz
LmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcyk7CiAgICAgfQogfTsKIApAQCAtMjc2LDYg
KzI3MSwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+
JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxv
d2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgY29uc3Qgc3RkOjpv
cHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3VyQ0M+PiYg
YWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0
VHlwZXMoKSBjb25zdCA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJCdWZmZXJl
ZFRpbWVSYW5nZXNDaGFuZ2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyU2Vl
a2FibGVUaW1lUmFuZ2VzQ2hhbmdlZCgpIHsgfQogCkBAIC02MzUsNiArNjM2LDEyIEBAIHB1Ymxp
YzoKICAgICBjb25zdCBWZWN0b3I8Q29udGVudFR5cGU+JiBtZWRpYUNvbnRlbnRUeXBlc1JlcXVp
cmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQ2hlY2tIYXJkd2Fy
ZVN1cHBvcnQoKSBjb25zdDsKIAorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmlu
Zz4+JiBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpIGNvbnN0OworICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3Q7
CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxGb3Vy
Q0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0OworICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPEZvdXJDQz4+JiBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMo
KSBjb25zdDsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYg
bWVkaWFQbGF5ZXJMb2dnZXIoKTsKICAgICBjb25zdCB2b2lkKiBtZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIoKSB7IHJldHVybiBjbGllbnQoKS5tZWRpYVBsYXllckxvZ0lkZW50aWZpZXIoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
CmluZGV4IDYyNjdiODMzMjEyOTliMTNlYTdlZDJhNDA1ZTRjYmI4NWU0NDg4M2IuLmY0YjM1ZDc2
OWQ3Mjc5N2EyZmFkNDVlYjc4MmJkZDI1YzkyNmNkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTMyOSw2ICszMjksOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXROZWVkc1JlbmRlcmluZ01vZGVDaGFuZ2VkKCk7CiAg
ICAgdm9pZCByZW5kZXJpbmdNb2RlQ2hhbmdlZCgpOwogCisgICAgYm9vbCBsb2FkaW5nTWV0YWRh
dGEoKSBjb25zdCB7IHJldHVybiBtX2xvYWRpbmdNZXRhZGF0YTsgfQorCiBwcml2YXRlOgogICAg
IE1lZGlhUGxheWVyKiBtX3BsYXllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IGNkYWEx
YjA5OGMzYTU0YjFhNmM2MWE0NWRkZGJkZjJjNjkzZDYyYWIuLjM4Mzc3MmM1MDQ0OTI5YjllNTE1
Nzg0MTZkZWY2NGY4Nzg4MDIzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTM1MCw2ICsz
NTAsOSBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8VmlkZW9GcmFtZU1ldGFkYXRhPiB2
aWRlb0ZyYW1lTWV0YWRhdGEoKSBmaW5hbCB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fdmlkZW9G
cmFtZU1ldGFkYXRhLCB7IH0pOyB9CiAgICAgdm9pZCBjaGVja05ld1ZpZGVvRnJhbWVNZXRhZGF0
YSgpOwogCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBhbGxUcmFja3NBcmVQbGF5YWJsZSgpIGNv
bnN0OworICAgIGJvb2wgdHJhY2tJc1BsYXlhYmxlKEFWQXNzZXRUcmFjayopIGNvbnN0OworCiAg
ICAgUmV0YWluUHRyPEFWVVJMQXNzZXQ+IG1fYXZBc3NldDsKICAgICBSZXRhaW5QdHI8QVZQbGF5
ZXI+IG1fYXZQbGF5ZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVySXRlbT4gbV9hdlBsYXllckl0
ZW07CkBAIC00NDcsNyArNDUwLDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FjaGVkQ2FuUGxh
eUZhc3RGb3J3YXJkIHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FjaGVkQ2FuUGxheUZhc3RSZXZl
cnNlIHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRBc3NldElzTG9hZGVkIHsg
ZmFsc2UgfTsKKyAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRUcmFja3NBcmVMb2FkZWQgeyBmYWxz
ZSB9OwogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxib29sPiBtX2NhY2hlZEFzc2V0SXNQbGF5
YWJsZTsKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRUcmFja3NBcmVQ
bGF5YWJsZTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRP
YnNlcnZlVGltZUNvbnRyb2xTdGF0dXMgeyBmYWxzZSB9OwogICAgIG11dGFibGUgc3RkOjpvcHRp
b25hbDxib29sPiBtX3RyYWNrc0FyZVBsYXlhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5k
ZXggZTk3NTVmMjNkN2QzMDViNmIxY2VlNjUyNGYzN2M0MWYxZGU0NjcxZi4uMDI3ODc5YzBkYjRh
YTc2MDFjNmRhZGMwNGRiMzk0NDcxMzZmZTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBA
IC0zOCwxMCArMzgsMTIgQEAKICNpbXBvcnQgIkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgi
CiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29sb3JTcGFjZUNHLmgiCisjaW1w
b3J0ICJDb250ZW50VHlwZVV0aWxpdGllcy5oIgogI2ltcG9ydCAiQ29va2llLmgiCiAjaW1wb3J0
ICJEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNpbXBvcnQgIkV4dGVuc2lvbnNHTC5oIgog
I2ltcG9ydCAiRmxvYXRDb252ZXJzaW9uLmgiCisjaW1wb3J0ICJGb3VyQ0MuaCIKICNpbXBvcnQg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIgog
I2ltcG9ydCAiSW5iYW5kQ2hhcHRlclRyYWNrUHJpdmF0ZUFWRk9iakMuaCIKQEAgLTY2LDYgKzY4
LDcgQEAKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU291cmNlQnVmZmVyUGFy
c2VyV2ViTS5oIgogI2ltcG9ydCAiVGV4dFRyYWNrUmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQg
IlVUSVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVmlkZW9MYXllck1hbmFnZXJPYmpDLmgiCiAjaW1w
b3J0ICJWaWRlb1RyYWNrUHJpdmF0ZUFWRk9iakMuaCIKICNpbXBvcnQgIldlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlci5oIgpAQCAtOTQ4LDYgKzk1MSwzOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgVVJMJiB1cmwsIFJl
dAogICAgICAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0OkBOTyBmb3JLZXk6QVZVUkxBc3NldFVz
ZXNOb1BlcnNpc3RlbnRDYWNoZUtleV07CiAgICAgfQogCisgICAgYXV0byBhbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyA9IHBsYXllcigpLT5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcygpOwor
ICAgIGlmIChhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyAmJiBQQUw6OmNhbkxvYWRfQVZGb3Vu
ZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVUeXBlQ2F0ZWdvcmllc0tleSgpKSB7CisgICAgICAg
IGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwor
ICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcykKKyAg
ICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDooTlNTdHJpbmcgKilVVElGcm9tTUlNRVR5cGUo
dHlwZSldOworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6
QVZVUkxBc3NldEFsbG93YWJsZVR5cGVDYXRlZ29yaWVzS2V5XTsKKyAgICB9CisKKyAgICBhdXRv
IGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBwbGF5ZXIoKS0+YWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcygpOworICAgIGlmIChhbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzICYmIFBBTDo6Y2Fu
TG9hZF9BVkZvdW5kYXRpb25fQVZVUkxBc3NldEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleSgp
KSB7CisgICAgICAgIGF1dG8gbnNUeXBlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdF0pOworICAgICAgICBmb3IgKGF1dG8gdHlwZSA6ICphbGxvd2VkTWVkaWFBdWRpb0Nv
ZGVjSURzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlwZS52YWx1ZSldOwor
ICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6QVZVUkxBc3Nl
dEFsbG93YWJsZUF1ZGlvQ29kZWNUeXBlc0tleV07CisgICAgfQorCisgICAgYXV0byBhbGxvd2Vk
TWVkaWFWaWRlb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMo
KTsKKyAgICBpZiAoYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyAmJiBQQUw6OmNhbkxvYWRfQVZG
b3VuZGF0aW9uX0FWVVJMQXNzZXRBbGxvd2FibGVWaWRlb0NvZGVjVHlwZXNLZXkoKSkgeworICAg
ICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRd
KTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcykK
KyAgICAgICAgICAgIFtuc1R5cGVzIGFkZE9iamVjdDpAKHR5cGUudmFsdWUpXTsKKyAgICAgICAg
W29wdGlvbnMgc2V0T2JqZWN0Om5zVHlwZXMuZ2V0KCkgZm9yS2V5OkFWVVJMQXNzZXRBbGxvd2Fi
bGVWaWRlb0NvZGVjVHlwZXNLZXldOworICAgIH0KKworICAgIGF1dG8gYWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBl
cygpOworICAgIGlmIChhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMgJiYgUEFMOjpjYW5M
b2FkX0FWRm91bmRhdGlvbl9BVlVSTEFzc2V0QWxsb3dhYmxlQ2FwdGlvbkZvcm1hdHNLZXkoKSkg
eworICAgICAgICBhdXRvIG5zVHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgZm9yIChhdXRvIHR5cGUgOiAqYWxsb3dlZE1lZGlhQ2FwdGlvbkZv
cm1hdFR5cGVzKQorICAgICAgICAgICAgW25zVHlwZXMgYWRkT2JqZWN0OkAodHlwZS52YWx1ZSld
OworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNUeXBlcy5nZXQoKSBmb3JLZXk6QVZVUkxB
c3NldEFsbG93YWJsZUNhcHRpb25Gb3JtYXRzS2V5XTsKKyAgICB9CisKICAgICBpZiAod2lsbFVz
ZVdlYk1Gb3JtYXRSZWFkZXIpCiAgICAgICAgIHJlZ2lzdGVyRm9ybWF0UmVhZGVySWZOZWNlc3Nh
cnkoKTsKIApAQCAtMTc4Myw2ICsxODE4LDc2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQzo6c2V0QXNzZXQoUmV0YWluUHRyPGlkPiYmIGFzc2V0KQogICAgIHByb2Nl
c3NDaGFwdGVyVHJhY2tzKCk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8Ym9vbD4gTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6YWxsVHJhY2tzQXJlUGxheWFibGUoKSBjb25zdAorewor
ICAgIGlmIChtX2F2UGxheWVySXRlbSkgeworICAgICAgICBmb3IgKEFWUGxheWVySXRlbVRyYWNr
ICp0cmFjayBpbiBbbV9hdlBsYXllckl0ZW0gdHJhY2tzXSkgeworICAgICAgICAgICAgaWYgKCF0
cmFja0lzUGxheWFibGUodHJhY2suYXNzZXRUcmFjaykpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
aWYgKCFtX2F2QXNzZXQgfHwgW21fYXZBc3NldCBzdGF0dXNPZlZhbHVlRm9yS2V5OkAidHJhY2tz
IiBlcnJvcjpOVUxMXSAhPSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgZm9yIChBVkFzc2V0VHJhY2sgKmFzc2V0VHJhY2sgOiBbbV9h
dkFzc2V0IHRyYWNrc10pIHsKKyAgICAgICAgaWYgKCF0cmFja0lzUGxheWFibGUoYXNzZXRUcmFj
aykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrSXNQbGF5
YWJsZShBVkFzc2V0VHJhY2sqIHRyYWNrKSBjb25zdAoreworICAgIGlmIChwbGF5ZXIoKS0+c2hv
dWxkQ2hlY2tIYXJkd2FyZVN1cHBvcnQoKSAmJiAhYXNzZXRUcmFja01lZXRzSGFyZHdhcmVEZWNv
ZGVSZXF1aXJlbWVudHModHJhY2ssIHBsYXllcigpLT5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmlu
Z0hhcmR3YXJlU3VwcG9ydCgpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBk
ZXNjcmlwdGlvbiA9IHJldGFpblB0cigoX19icmlkZ2UgQ01Gb3JtYXREZXNjcmlwdGlvblJlZil0
cmFjay5mb3JtYXREZXNjcmlwdGlvbnMuZmlyc3RPYmplY3QpOworICAgIGlmICghZGVzY3JpcHRp
b24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gbWVkaWFUeXBlID0gUEFMOjpD
TUZvcm1hdERlc2NyaXB0aW9uR2V0TWVkaWFUeXBlKGRlc2NyaXB0aW9uLmdldCgpKTsKKyAgICBh
dXRvIGNvZGVjVHlwZSA9IEZvdXJDQyB7IFBBTDo6Q01Gb3JtYXREZXNjcmlwdGlvbkdldE1lZGlh
U3ViVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkgfTsKKyAgICBzd2l0Y2ggKFBBTDo6Q01Gb3JtYXRE
ZXNjcmlwdGlvbkdldE1lZGlhVHlwZShkZXNjcmlwdGlvbi5nZXQoKSkpIHsKKyAgICBjYXNlIGtD
TU1lZGlhVHlwZV9WaWRlbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVj
SURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoKTsKKyAgICAgICAgaWYg
KGFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMt
PmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElG
SUVSLCAiVmlkZW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUsICInIG5vdCBj
b250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICBjYXNlIGtDTU1lZGlhVHlwZV9BdWRpbzogeworICAgICAgICBhdXRvJiBhbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzID0gcGxheWVyKCktPmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoKTsKKyAg
ICAgICAgaWYgKGFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgJiYgIWFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNJRHMtPmNvbnRhaW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhM
T0dJREVOVElGSUVSLCAiQXVkaW8gdHJhY2sgd2l0aCBjb2RlYyB0eXBlICciLCBjb2RlY1R5cGUs
ICInIG5vdCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBibG9ja2luZyIpOworICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICBjYXNlIGtDTU1lZGlhVHlwZV9UZXh0OgorICAgIGNhc2Uga0NNTWVkaWFUeXBl
X0Nsb3NlZENhcHRpb246CisgICAgY2FzZSBrQ01NZWRpYVR5cGVfU3VidGl0bGU6IHsKKyAgICAg
ICAgYXV0byYgYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzID0gcGxheWVyKCktPmFsbG93
ZWRNZWRpYUNhcHRpb25Gb3JtYXRUeXBlcygpOworICAgICAgICBpZiAoYWxsb3dlZE1lZGlhQ2Fw
dGlvbkZvcm1hdFR5cGVzICYmICFhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMtPmNvbnRh
aW5zKGNvZGVjVHlwZSkpIHsKKyAgICAgICAgICAgIEVSUk9SX0xPRyhMT0dJREVOVElGSUVSLCAi
VGV4dCB0cmFjayB3aXRoIGNvZGVjIHR5cGUgJyIsIGNvZGVjVHlwZSwgIicgbm90IGNvbnRhaW5l
ZCBpbiBhbGxvd2VkIGNvZGVjIGxpc3Q7IGJsb2NraW5nIik7CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIGNhc2Ug
a0NNTWVkaWFUeXBlX011eGVkOgorICAgIGNhc2Uga0NNTWVkaWFUeXBlX1RpbWVDb2RlOgorICAg
IGNhc2Uga0NNTWVkaWFUeXBlX01ldGFkYXRhOgorICAgICAgICAvLyBOby1vcAorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBFUlJPUl9MT0coTE9HSURFTlRJRklFUiwgIlRyYWNr
IHdpdGggdW51ZXhwZWN0ZWQgbWVkaWEgdHlwZSAnIiwgRm91ckNDKG1lZGlhVHlwZSksICInIG5v
dCBjb250YWluZWQgaW4gYWxsb3dlZCBjb2RlYyBsaXN0OyBpZ25vcmluZyIpOworICAgIHJldHVy
biB0cnVlOworfQorCiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OkFzc2V0U3RhdHVz
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmFzc2V0U3RhdHVzKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fYXZBc3NldCkKQEAgLTE4MDgsMjMgKzE5MTMsMjEgQEAgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjoKICAgICAgICAgbV9jYWNoZWRBc3NldElzTG9hZGVkID0gdHJ1ZTsKICAg
ICB9CiAKLSAgICBpZiAoIXBsYXllcigpLT5zaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpKQot
ICAgICAgICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gdHJ1ZTsKKyAgICAvLyBtX2xvYWRpbmdNZXRh
ZGF0YSB3aWxsIGJlIGZhbHNlIHVudGlsIGFsbCB0cmFja3MnIHByb3BlcnRpZXMgaGF2ZSBmaW5p
c2hlZCBsb2FkaW5nLgorICAgIC8vIFNlZTogYmVnaW5Mb2FkaW5nTWV0YWRhdGEoKS4KKyAgICBp
ZiAobG9hZGluZ01ldGFkYXRhKCkpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRT
dGF0dXNMb2FkaW5nOwogCi0gICAgaWYgKCFtX3RyYWNrc0FyZVBsYXlhYmxlKSB7Ci0gICAgICAg
IG1fdHJhY2tzQXJlUGxheWFibGUgPSB0cnVlOwotICAgICAgICBmb3IgKEFWQXNzZXRUcmFjayAq
dHJhY2sgaW4gW21fYXZBc3NldCB0cmFja3NdKSB7Ci0gICAgICAgICAgICBpZiAoIWFzc2V0VHJh
Y2tNZWV0c0hhcmR3YXJlRGVjb2RlUmVxdWlyZW1lbnRzKHRyYWNrLCBwbGF5ZXIoKS0+bWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQoKSkpIHsKLSAgICAgICAgICAgICAg
ICBtX3RyYWNrc0FyZVBsYXlhYmxlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICBpZiAoIW1fY2FjaGVkVHJhY2tzQXJlUGxheWFi
bGUpIHsKKyAgICAgICAgbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSA9IGFsbFRyYWNrc0FyZVBs
YXlhYmxlKCk7CisgICAgICAgIGlmICghbV9jYWNoZWRUcmFja3NBcmVQbGF5YWJsZSkKKyAgICAg
ICAgICAgIHJldHVybiBNZWRpYVBsYXllckFWQXNzZXRTdGF0dXNMb2FkaW5nOwogICAgIH0KIAog
ICAgIGlmICghbV9jYWNoZWRBc3NldElzUGxheWFibGUpCiAgICAgICAgIG1fY2FjaGVkQXNzZXRJ
c1BsYXlhYmxlID0gW1ttX2F2QXNzZXQgdmFsdWVGb3JLZXk6QCJwbGF5YWJsZSJdIGJvb2xWYWx1
ZV07CiAKLSAgICBpZiAoKm1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlICYmIG1fdHJhY2tzQXJlUGxh
eWFibGUudmFsdWUoKSkKKyAgICBpZiAoKm1fY2FjaGVkQXNzZXRJc1BsYXlhYmxlICYmICptX2Nh
Y2hlZFRyYWNrc0FyZVBsYXlhYmxlKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0
U3RhdHVzUGxheWFibGU7CiAKICAgICByZXR1cm4gTWVkaWFQbGF5ZXJBVkFzc2V0U3RhdHVzTG9h
ZGVkOwpAQCAtMTkyOSw2ICsyMDMyLDkgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzdXBwb3J0c1R5cGVBbmRDb2QKICAgICAg
ICAgcmV0dXJuIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGU6OklzTm90U3VwcG9ydGVkOwogI2Vu
ZGlmCiAKKyAgICBpZiAoIWNvbnRlbnRUeXBlTWVldHNDb250YWluZXJBbmRDb2RlY1R5cGVSZXF1
aXJlbWVudHMocGFyYW1ldGVycy50eXBlLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvbnRhaW5l
clR5cGVzLCBwYXJhbWV0ZXJzLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXMpKQorICAgICAgICByZXR1
cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZTo6SXNOb3RTdXBwb3J0ZWQ7CisKICAgICBhdXRv
IHN1cHBvcnRlZCA9IEFWQXNzZXRNSU1FVHlwZUNhY2hlOjpzaW5nbGV0b24oKS5jYW5EZWNvZGVU
eXBlKHBhcmFtZXRlcnMudHlwZS5yYXcoKSk7CiAgICAgaWYgKHN1cHBvcnRlZCAhPSBNZWRpYVBs
YXllcjo6U3VwcG9ydHNUeXBlOjpJc1N1cHBvcnRlZCkKICAgICAgICAgcmV0dXJuIHN1cHBvcnRl
ZDsKQEAgLTM3MzIsNyArMzgzOCw3IEBAIE5TQXJyYXkqIGl0ZW1LVk9Qcm9wZXJ0aWVzKCkKIAog
TlNBcnJheSogYXNzZXRUcmFja01ldGFkYXRhS2V5TmFtZXMoKQogewotICAgIHN0YXRpYyBOU0Fy
cmF5KiBrZXlzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6QCJ0b3RhbFNhbXBs
ZURhdGFMZW5ndGgiLCBAIm1lZGlhVHlwZSIsIEAiZW5hYmxlZCIsIEAicHJlZmVycmVkVHJhbnNm
b3JtIiwgQCJuYXR1cmFsU2l6ZSIsIG5pbF07CisgICAgc3RhdGljIE5TQXJyYXkqIGtleXMgPSBb
W05TQXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czpAInRvdGFsU2FtcGxlRGF0YUxlbmd0aCIs
IEAibWVkaWFUeXBlIiwgQCJlbmFibGVkIiwgQCJwcmVmZXJyZWRUcmFuc2Zvcm0iLCBAIm5hdHVy
YWxTaXplIiwgQCJmb3JtYXREZXNjcmlwdGlvbnMiLCBuaWxdOwogICAgIHJldHVybiBrZXlzOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA1
ZGE5MWVlMGVhYjRmZGZmOTIxZmM2Nzg3YWEyMzQ0Y2QxY2Y0ZjE4Li5kOTMyMGUxOWVkMGY4MDdj
NjQxMzYzZTZlNDA2NmYyOTgyYTEyNzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTE5Myw2ICsxOTMsOCBAQCB2b2lkIEludGVybmFsU2V0dGlu
Z3M6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQogICAgIG1fYmFja3VwLnJlc3RvcmVUbyhzZXR0
aW5ncygpKTsKICAgICBtX2JhY2t1cCA9IEJhY2t1cCB7IHNldHRpbmdzKCkgfTsKIAorICAgIG1f
cGFnZS0+c2V0dGluZ3MoKS5yZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisKICAgICBJbnRlcm5h
bFNldHRpbmdzR2VuZXJhdGVkOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CiB9CiAKQEAgLTU4
OCw2ICs1OTAsNDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0RGVm
YXVsdEF1ZGlvQ29udGV4dFNhbXBsZVJhdGUoZmxvYXQgc2FtcGwKICAgICByZXR1cm4geyB9Owog
fQogCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyhjb25zdCBTdHJpbmcmIHR5cGVzKQoreworICAgIGlmICghbV9wYWdlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgbV9w
YWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKHR5cGVzKTsKKyAg
ICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKGNvbnN0IFN0cmluZyYgdHlwZXMpCit7CisgICAgaWYg
KCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCkuc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcyh0eXBl
cyk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxTZXR0
aW5nczo6c2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmIHR5cGVzKQor
eworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yIH07CisgICAgbV9wYWdlLT5zZXR0aW5ncygpLnNldEFsbG93ZWRNZWRpYVZpZGVv
Q29kZWNJRHModHlwZXMpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+
IEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoY29uc3QgU3Ry
aW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS5zZXRBbGxv
d2VkTWVkaWFBdWRpb0NvZGVjSURzKHR5cGVzKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNl
cHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9y
bWF0VHlwZXMoY29uc3QgU3RyaW5nJiB0eXBlcykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworICAgIG1fcGFnZS0+
c2V0dGluZ3MoKS5zZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXModHlwZXMpOworICAg
IHJldHVybiB7IH07Cit9CisKKworCiAvLyBJZiB5b3UgYWRkIHRvIHRoaXMgY2xhc3MsIG1ha2Ug
c3VyZSB5b3UgYXJlIG5vdCBkdXBsaWNhdGluZyBmdW5jdGlvbmFsaXR5IGluIHRoZSBnZW5lcmF0
ZWQKIC8vIGJhc2UgY2xhc3MgSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZCBhbmQgdGhhdCB5b3Ug
dXBkYXRlIHRoZSBCYWNrdXAgY2xhc3MgZm9yIHRlc3QgcmVwcm9kdWNhYmlsaXR5LgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGYxYTdlMjIxMTIwZTcx
YTk2OTkxYjMyMzNhMzg1NDMwMzE4OWQ1YjAuLmZiOTRjZTdkZGJlZjNiYzU1YmIzNzYzMWFlZGUx
NmMzZTE1MmU3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CkBAIC0xMjIsNiArMTIyLDEyIEBAIHB1YmxpYzoKICAgICAvLyBBdWRpb0NvbnRleHQKICAgICBF
eGNlcHRpb25Pcjx2b2lkPiBzZXREZWZhdWx0QXVkaW9Db250ZXh0U2FtcGxlUmF0ZShmbG9hdCk7
CiAKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyhj
b25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDb2Rl
Y1R5cGVzKGNvbnN0IFN0cmluZyYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoY29uc3QgU3RyaW5nJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhjb25zdCBTdHJpbmcmKTsKKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRBbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoY29uc3QgU3RyaW5n
Jik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGJiNmI4
ZjUyMTEyZGQ5OTRjYzZiNzc4MzIzMTE5OGU1OTI4YmZjMWUuLmJjNDAxOTUwYTk0NzI4Njk3OGMw
MDhhZmViNjFmNDkwZjhhZGNhMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbApAQCAtOTUsNCArOTUsMTAgQEAgZW51bSBVc2VySW50ZXJmYWNlRGlyZWN0
aW9uUG9saWN5IHsgIkNvbnRlbnQiLCAiU3lzdGVtIiB9OwogCiAgICAgLy8gQXVkaW9Db250ZXh0
CiAgICAgdW5kZWZpbmVkIHNldERlZmF1bHRBdWRpb0NvbnRleHRTYW1wbGVSYXRlKGZsb2F0IHNh
bXBsZVJhdGUpOworCisgICAgdW5kZWZpbmVkIHNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVz
KERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFDb2RlY1R5
cGVzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVkaWFWaWRl
b0NvZGVjSURzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxvd2VkTWVk
aWFBdWRpb0NvZGVjSURzKERPTVN0cmluZz8gdHlwZXMpOworICAgIHVuZGVmaW5lZCBzZXRBbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoRE9NU3RyaW5nPyB0eXBlcyk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggM2Q5ZTAyZTAxOGRkMTE2NDJiYjU2YTMzZmJjZTk1OTgwNWE5NDNlNy4uNTk1
YzU4OTE5ZWExM2ZlYjk1ZDhmYzBkMGI0MzIzMDY4YTgyYTBiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC03Niw2ICs3Niw4IEBAIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlOwogY2xhc3MgTWVkaWFQbGF5
YmFja1RhcmdldENvbnRleHQ7CiAjZW5kaWYKIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlOworCitz
dHJ1Y3QgRm91ckNDOwogfQogCiAjaWYgVVNFKEFWRk9VTkRBVElPTikKQEAgLTI5Myw2ICsyOTUs
MTIgQEAgcHJpdmF0ZToKICAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+JiBt
ZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRDaGVja0hhcmR3YXJlU3VwcG9ydCgpIGNvbnN0IGZp
bmFsOwogCisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4mIGFsbG93ZWRN
ZWRpYUNvbnRhaW5lclR5cGVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9u
LmFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzOyB9OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VmVjdG9yPFN0cmluZz4+JiBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNvZGVjVHlwZXM7IH07CisgICAgY29u
c3Qgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4mIGFsbG93ZWRNZWRpYVZp
ZGVvQ29kZWNJRHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24uYWxsb3dl
ZE1lZGlhVmlkZW9Db2RlY0lEczsgfTsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpGb3VyQ0M+PiYgYWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzOyB9Owor
ICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+JiBhbGxvd2Vk
TWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3Vy
YXRpb24uYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOyB9OworCiAgICAgdm9pZCBzdGFy
dFVwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRT
dGF0ZShib29sID0gZmFsc2UpOwogICAgIHZvaWQgc2VuZENhY2hlZFN0YXRlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eUNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCmluZGV4IDRhY2I0MGUyYzA5ZWM3NWNlOWVl
YmI3MzFlMWRkMWM5YzYzMjE1MGYuLjRmZDY2MWI3ZDA2NzBkYzUwZDFjNzhhZGI1ZjhiYWYyOTYy
ZWUxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50VHlwZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm91ckNDLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybVRleHRUcmFjay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC00MCw2ICs0MSwx
MiBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24gewogICAgIFN0
cmluZyBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7CiAgICAgU3RyaW5nIG5ldHdvcmtJbnRl
cmZhY2VOYW1lOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8
U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXM7CisgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8U3RyaW5nPj4gYWxsb3dlZE1lZGlhQ29kZWNUeXBlczsKKyAgICBzdGQ6Om9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpGb3VyQ0M+PiBhbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzOworICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkZvdXJDQz4+IGFsbG93ZWRNZWRpYUF1ZGlv
Q29kZWNJRHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Rm91ckNDPj4gYWxs
b3dlZE1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzOworCiAgICAgVmVjdG9yPFN0cmluZz4gcHJlZmVy
cmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICBW
ZWN0b3I8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2tEYXRhPiBvdXRPZkJhbmRUcmFja0RhdGE7
CkBAIC01OCw2ICs2NSwxMSBAQCBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3Vy
YXRpb24gewogICAgICAgICBlbmNvZGVyIDw8IHNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcjsK
ICAgICAgICAgZW5jb2RlciA8PCBuZXR3b3JrSW50ZXJmYWNlTmFtZTsKICAgICAgICAgZW5jb2Rl
ciA8PCBtZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKKyAgICAgICAg
ZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDb250YWluZXJUeXBlczsKKyAgICAgICAgZW5jb2RlciA8
PCBhbGxvd2VkTWVkaWFDb2RlY1R5cGVzOworICAgICAgICBlbmNvZGVyIDw8IGFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHM7CisgICAgICAgIGVuY29kZXIgPDwgYWxsb3dlZE1lZGlhQXVkaW9Db2Rl
Y0lEczsKKyAgICAgICAgZW5jb2RlciA8PCBhbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXM7
CiAgICAgICAgIGVuY29kZXIgPDwgcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3M7CiAjaWYg
RU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICAgICAgZW5jb2RlciA8PCBvdXRPZkJhbmRUcmFja0Rh
dGE7CkBAIC03MCw4NiArODIsMjcgQEAgc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25m
aWd1cmF0aW9uIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgRGVjb2Rlcj4KLSAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbj4g
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKQogICAgIHsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IHJlZmVycmVyOwotICAg
ICAgICBkZWNvZGVyID4+IHJlZmVycmVyOwotICAgICAgICBpZiAoIXJlZmVycmVyKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmlu
Zz4gdXNlckFnZW50OwotICAgICAgICBkZWNvZGVyID4+IHVzZXJBZ2VudDsKLSAgICAgICAgaWYg
KCF1c2VyQWdlbnQpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXI7Ci0gICAg
ICAgIGRlY29kZXIgPj4gc291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyOwotICAgICAgICBpZiAo
IXNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IG5ldHdvcmtJbnRlcmZhY2VO
YW1lOwotICAgICAgICBkZWNvZGVyID4+IG5ldHdvcmtJbnRlcmZhY2VOYW1lOwotICAgICAgICBp
ZiAoIW5ldHdvcmtJbnRlcmZhY2VOYW1lKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlwZT4+
IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAgICBkZWNv
ZGVyID4+IG1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwotICAgICAg
ICBpZiAoIW1lZGlhQ29udGVudFR5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0KQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxTdHJpbmc+PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgZGVjb2Rl
ciA+PiBwcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljczsKLSAgICAgICAgaWYgKCFwcmVmZXJy
ZWRBdWRpb0NoYXJhY3RlcmlzdGljcykKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0KLSNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxXZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFja0RhdGE+PiBvdXRPZkJhbmRUcmFja0RhdGE7Ci0g
ICAgICAgIGRlY29kZXIgPj4gb3V0T2ZCYW5kVHJhY2tEYXRhOwotICAgICAgICBpZiAoIW91dE9m
QmFuZFRyYWNrRGF0YSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYK
LQotICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gZG9j
dW1lbnRTZWN1cml0eU9yaWdpbjsKLSAgICAgICAgZGVjb2RlciA+PiBkb2N1bWVudFNlY3VyaXR5
T3JpZ2luOwotICAgICAgICBpZiAoIWRvY3VtZW50U2VjdXJpdHlPcmlnaW4pCi0gICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+
IGxvZ0lkZW50aWZpZXI7Ci0gICAgICAgIGRlY29kZXIgPj4gbG9nSWRlbnRpZmllcjsKLSAgICAg
ICAgaWYgKCFsb2dJZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZTsK
LSAgICAgICAgZGVjb2RlciA+PiBzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGU7Ci0gICAgICAgIGlm
ICghc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGlzVmlkZW87Ci0gICAgICAgIGRl
Y29kZXIgPj4gaXNWaWRlbzsKLSAgICAgICAgaWYgKCFpc1ZpZGVvKQotICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlbmRlcmlu
Z0NhbkJlQWNjZWxlcmF0ZWQ7Ci0gICAgICAgIGRlY29kZXIgPj4gcmVuZGVyaW5nQ2FuQmVBY2Nl
bGVyYXRlZDsKLSAgICAgICAgaWYgKCFyZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgICAgICByZXR1cm4ge3sKLSAgICAgICAg
ICAgIFdURk1vdmUoKnJlZmVycmVyKSwKLSAgICAgICAgICAgIFdURk1vdmUoKnVzZXJBZ2VudCks
Ci0gICAgICAgICAgICBXVEZNb3ZlKCpzb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIpLAotICAg
ICAgICAgICAgV1RGTW92ZSgqbmV0d29ya0ludGVyZmFjZU5hbWUpLAotICAgICAgICAgICAgV1RG
TW92ZSgqbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQpLAotICAgICAg
ICAgICAgV1RGTW92ZSgqcHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpLAorICAgICAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5yZWZlcnJlcikKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24udXNlckFnZW50KQorICAgICAgICAgICAg
JiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5zb3VyY2VBcHBsaWNhdGlvbklkZW50aWZp
ZXIpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm5ldHdvcmtJ
bnRlcmZhY2VOYW1lKQorICAgICAgICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlv
bi5tZWRpYUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydCkKKyAgICAgICAgICAg
ICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0
aW9uLmFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMpCisgICAgICAgICAgICAmJiBkZWNvZGVyLmRl
Y29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMpCisgICAgICAgICAg
ICAmJiBkZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLmFsbG93ZWRNZWRpYUNhcHRpb25Gb3Jt
YXRUeXBlcykKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24ucHJl
ZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MpCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAg
ICAgICAgICAgIFdURk1vdmUoKm91dE9mQmFuZFRyYWNrRGF0YSksCisgICAgICAgICAgICAmJiBk
ZWNvZGVyLmRlY29kZShjb25maWd1cmF0aW9uLm91dE9mQmFuZFRyYWNrRGF0YSkKICNlbmRpZgot
ICAgICAgICAgICAgV1RGTW92ZSgqZG9jdW1lbnRTZWN1cml0eU9yaWdpbiksCi0gICAgICAgICAg
ICAqbG9nSWRlbnRpZmllciwKLSAgICAgICAgICAgICpzaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUs
Ci0gICAgICAgICAgICAqaXNWaWRlbywKLSAgICAgICAgICAgICpyZW5kZXJpbmdDYW5CZUFjY2Vs
ZXJhdGVkLAotICAgICAgICB9fTsKKyAgICAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbmZp
Z3VyYXRpb24uZG9jdW1lbnRTZWN1cml0eU9yaWdpbikKKyAgICAgICAgICAgICYmIGRlY29kZXIu
ZGVjb2RlKGNvbmZpZ3VyYXRpb24ubG9nSWRlbnRpZmllcikKKyAgICAgICAgICAgICYmIGRlY29k
ZXIuZGVjb2RlKGNvbmZpZ3VyYXRpb24uc2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKQorICAgICAg
ICAgICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5pc1ZpZGVvKQorICAgICAgICAg
ICAgJiYgZGVjb2Rlci5kZWNvZGUoY29uZmlndXJhdGlvbi5yZW5kZXJpbmdDYW5CZUFjY2VsZXJh
dGVkKTsKICAgICB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5kZXggNThm
YzFlNGVlMjU1ZWQ1ODMwYzk5NmRmZTY4YmYyYWJkMzUzZWFmOC4uN2M5ZDQ1NjlhNGU1MGIwNzEz
YTc3YThiNGFjMjQwZmFlNDZkZGQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApA
QCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudFR5cGVVdGlsaXRpZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hG
dW5jdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMTY2LDYgKzE2NywxMiBA
QCBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmNyZWF0ZVJlbQogICAgIGF1dG8gZG9jdW1lbnRTZWN1cml0eU9yaWdp
biA9IHBsYXllci0+ZG9jdW1lbnRTZWN1cml0eU9yaWdpbigpOwogICAgIHByb3h5Q29uZmlndXJh
dGlvbi5kb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKIAor
ICAgIHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFDb250YWluZXJUeXBlcyA9IHBsYXll
ci0+YWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24u
YWxsb3dlZE1lZGlhQ29kZWNUeXBlcyA9IHBsYXllci0+YWxsb3dlZE1lZGlhQ29kZWNUeXBlcygp
OworICAgIHByb3h5Q29uZmlndXJhdGlvbi5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzID0gcGxh
eWVyLT5hbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCk7CisgICAgcHJveHlDb25maWd1cmF0aW9u
LmFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMgPSBwbGF5ZXItPmFsbG93ZWRNZWRpYUF1ZGlvQ29k
ZWNJRHMoKTsKKyAgICBwcm94eUNvbmZpZ3VyYXRpb24uYWxsb3dlZE1lZGlhQ2FwdGlvbkZvcm1h
dFR5cGVzID0gcGxheWVyLT5hbGxvd2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoKTsKKwogICAg
IGF1dG8gaWRlbnRpZmllciA9IE1lZGlhUGxheWVySWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKICAg
ICBncHVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFQbGF5ZXIoaWRlbnRpZmllciwg
cmVtb3RlRW5naW5lSWRlbnRpZmllciwgcHJveHlDb25maWd1cmF0aW9uKSwgMCk7CiAKQEAgLTIw
Miw2ICsyMDksMTAgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVAKICAgICBpZiAocGFyYW1ldGVy
cy5pc01lZGlhU3RyZWFtKQogICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZTo6SXNOb3RTdXBwb3J0ZWQ7CiAjZW5kaWYKKworICAgIGlmICghY29udGVudFR5cGVNZWV0c0Nv
bnRhaW5lckFuZENvZGVjVHlwZVJlcXVpcmVtZW50cyhwYXJhbWV0ZXJzLnR5cGUsIHBhcmFtZXRl
cnMuYWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMsIHBhcmFtZXRlcnMuYWxsb3dlZE1lZGlhQ29k
ZWNUeXBlcykpCisgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05v
dFN1cHBvcnRlZDsKKwogICAgIHJldHVybiB0eXBlQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmll
cikuc3VwcG9ydHNUeXBlQW5kQ29kZWNzKHBhcmFtZXRlcnMpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDc2ZDZiN2RlYzU2OTMzYjJj
N2E1NTllZWY0ZDkxMmFhYWVhYzQ4MTcuLjYzYWY5MWZkYmE1ZjIwMTAwNmM3M2M1OWYyOTZiYTIy
ZjNkMzdjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC00MTE2LDYgKzQxMTYsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNl
cyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAgICAgc2V0dGluZ3Muc2V0
TWF0aE1MRW5hYmxlZChmYWxzZSk7CiAjZW5kaWYKICAgICAgICAgc2V0dGluZ3Muc2V0UGRmSlNW
aWV3ZXJFbmFibGVkKHRydWUpOworCisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKHN0b3JlLmdldFN0cmluZ1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjptZWRpYUNvbnRhaW5lclR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOwor
ICAgICAgICBzZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKHN0b3JlLmdldFN0cmlu
Z1ZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjptZWRpYUNvZGVjVHlwZXNBbGxvd2VkSW5D
YXB0aXZlUG9ydGFsTW9kZUtleSgpKSk7CisgICAgICAgIHNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YVZpZGVvQ29kZWNJRHMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6Om1lZGlhVmlkZW9Db2RlY0lEc0FsbG93ZWRJbkNhcHRpdmVQb3J0YWxNb2RlS2V5KCkpKTsK
KyAgICAgICAgc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcyhzdG9yZS5nZXRT
dHJpbmdWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bWVkaWFBdWRpb0NvZGVjSURzQWxs
b3dlZEluQ2FwdGl2ZVBvcnRhbE1vZGVLZXkoKSkpOworICAgICAgICBzZXR0aW5ncy5zZXRBbGxv
d2VkTWVkaWFDYXB0aW9uRm9ybWF0VHlwZXMoc3RvcmUuZ2V0U3RyaW5nVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6Om1lZGlhQ2FwdGlvbkZvcm1hdFR5cGVzQWxsb3dlZEluQ2FwdGl2ZVBv
cnRhbE1vZGVLZXkoKSkpOwogICAgIH0KIAogI2lmIEVOQUJMRShBUktJVF9JTkxJTkVfUFJFVklF
VykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA0Njg2NzRkOTc5NWVhYjllMjdmNzhkNGU2MTkzYTQxMWFlODFhNzU2Li44ZDYx
MWMzYjA4MGJmM2VjZDMyZmY3OWIwNTZjM2MzNWYzMDlhMjU0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMjItMDItMDcgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHNldHRpbmdzIHRvIHJlc3RyaWN0IG1lZGlhIGNvbnRhaW5lcnMgYW5kIGNvZGVjcyB3
aGVuIGluIENhcHRpdmUgUG9ydGFsIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNjI0NQorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbDogQWRk
ZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dl
ZC1jb2RlY3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9tZWRpYS1zb3Vy
Y2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1h
bGxvd2VkLWNvbnRhaW5lcnMuaHRtbDogQWRkZWQuCisKIDIwMjItMDItMTEgIFRydWl0dCBTYXZl
bGwgIDx0c2F2ZWxsQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIGV4cGVjdGF0aW9ucyBm
b3IgY29tcG9zaXRpbmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRt
bCBhcyBpdCBpcyBmYWlsaW5nIG9uIEVXUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVk
aWEtYWxsb3dlZC1jb2RlY3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MGQ1MzlhMmY5MDYz
YWEyYzVjYTA5Mzc0ODc0ZjcxZTRkYmViZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMyBA
QAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKG51
bGwpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURz
KG51bGwpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KG51bGwpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1h
dmMxIikgPT0gJ3Byb2JhYmx5JykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlk
ZW8vbXA0OyBjb2RlY3M9bXA0diIpID09ICdwcm9iYWJseScpIE9LCitSVU4odmlkZW8uc3JjID0g
ImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2FucGxheSkgT0sKK1JVTihpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2RlY0lEcygiYXZjMSIpKQorUlVOKGludGVybmFs
cy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIikpCitSVU4oaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMoImF2YzEsbXA0YS40MCIp
KQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikg
PT0gJ3Byb2JhYmx5JykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0
OyBjb2RlY3M9bXA0diIpID09ICcnKSBPSworUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3Qu
bXA0IikKK0VWRU5UKGNhbnBsYXkpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpKQorUlVOKGludGVybmFscy5zZXR0aW5n
cy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJ2cDA5LG9wdXMiKSkKK0VYUEVDVEVEICh2aWRl
by5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpID09ICcnKSBPSworRVhQRUNU
RUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJycpIE9L
CitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoZXJyb3IpIE9LCitS
VU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEi
KSkKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygi
b3B1cyIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVz
KCJhdmMxLG9wdXMiKSkKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVO
VChlcnJvcikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9D
b2RlY0lEcygidnAwOSIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFB
dWRpb0NvZGVjSURzKCJhYWMgIikpCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYUNvZGVjVHlwZXMoInZwMDksbXA0YS40MCIpKQorUlVOKHZpZGVvLnNyYyA9ICJjb250ZW50
L3Rlc3QubXA0IikKK0VWRU5UKGVycm9yKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtYWxsb3dlZC1jb2RlY3MuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFjN2JjNTAxOTJm
NGJiODljODBlYWRjZjM2N2QxZDRhYmIwZThiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1hbGxvd2VkLWNv
ZGVjczwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9InZpZGVvLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBhc3luYyBl
dmVudCA9PiB7CisgICAgICAgIGlmICghd2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ZmFpbFRlc3QoJ1JlcXVpcmVzIHdpbmRvdy5pbnRlcm5hbHMnKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
dmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlh
VmlkZW9Db2RlY0lEcyhudWxsKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKG51bGwpJyk7CisgICAgICAgIHJ1bignaW50ZXJu
YWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMobnVsbCknKTsKKyAgICAgICAg
dGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIp
JywgJ3Byb2JhYmx5Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUo
InZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsICdwcm9iYWJseScpOworICAgICAgICBydW4oJ3Zp
ZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9taXNlLnJh
Y2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnY2FucGxheScpLCB3YWl0Rm9yQW5kRmFpbCh2
aWRlbywgJ2Vycm9yJyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRN
ZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0
aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJhYWMgIiknKTsKKyAgICAgICAgcnVu
KCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygiYXZjMSxtcDRh
LjQwIiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8v
bXA0OyBjb2RlY3M9YXZjMSIpJywgJ3Byb2JhYmx5Jyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
dmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsICcnKTsKKyAgICAg
ICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdhaXQg
UHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2FpdEZv
ckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5z
ZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IiknKTsKKyAgICAgICAgcnVuKCdpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygib3B1cyIpJyk7Cisg
ICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvZGVjVHlwZXMo
InZwMDksb3B1cyIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUo
InZpZGVvL21wNDsgY29kZWNzPWF2YzEiKScsICcnKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCd2
aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgJycpOworICAgICAg
ICBydW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQ
cm9taXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFu
ZEZhaWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKScpOworICAgICAgICBydW4oJ2ludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIiknKTsKKyAg
ICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygi
YXZjMSxvcHVzIiknKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1w
NCInKTsKKyAgICAgICAgYXdhaXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRl
bywgJ2Vycm9yJyksIHdhaXRGb3JBbmRGYWlsKHZpZGVvLCAnY2FucGxheScpXSk7CisKKyAgICAg
ICAgdmlkZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgICAgICBydW4o
J2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5Iikn
KTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9D
b2RlY0lEcygiYWFjICIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUNvZGVjVHlwZXMoInZwMDksbXA0YS40MCIpJyk7CisgICAgICAgIHJ1bigndmlk
ZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFj
ZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdlcnJvcicpLCB3YWl0Rm9yQW5kRmFpbCh2aWRl
bywgJ2NhbnBsYXknKV0pOworCisgICAgICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWFsbG93ZWQt
Y29udGFpbmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1hbGxvd2Vk
LWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3MDI3Y2U4YjU3NWI5NDU1MjJl
NWZiYzc3NTUzZGE3OTExMzY3NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS9tZWRpYS1hbGxvd2VkLWNvbnRhaW5lcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVs
bCkpCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpID09ICdtYXliZScp
IE9LCitFWFBFQ1RFRCAodmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpID09ICdtYXliZScp
IE9LCitSVU4odmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiKQorRVZFTlQoY2FucGxheSkg
T0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMo
ImF1ZGlvL21wMyIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKSA9
PSAnbWF5YmUnKSBPSworRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJ2aWRlby9tcDQiKSA9
PSAnJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChlcnJv
cikgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlw
ZXMoInZpZGVvL21wNCIpKQorRVhQRUNURUQgKHZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMi
KSA9PSAnJykgT0sKK0VYUEVDVEVEICh2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0IikgPT0g
J21heWJlJykgT0sKK1JVTih2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCIpCitFVkVOVChj
YW5wbGF5KSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1h
bGxvd2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmZmMmQ5OTZjMzU1M2ExMzRlYTNi
NjM3NTYxNDAxNGMwN2E0YmU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1hbGxvd2VkLWNvbnRhaW5l
cnM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSJ2aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZl
bnQgPT4geworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZh
aWxUZXN0KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Zp
ZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNv
bnRhaW5lclR5cGVzKG51bGwpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8uY2FuUGxh
eVR5cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJ21heWJlJyk7CisgICAgICAgIHJ1bigndmlk
ZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiJyk7CisgICAgICAgIGF3YWl0IFByb21pc2UucmFj
ZShbd2FpdEZvckFuZFN1Y2NlZWQodmlkZW8sICdjYW5wbGF5JyksIHdhaXRGb3JBbmRGYWlsKHZp
ZGVvLCAnZXJyb3InKV0pOworCisgICAgICAgIHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgndmlkZW8nKTsKKyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1l
ZGlhQ29udGFpbmVyVHlwZXMoImF1ZGlvL21wMyIpJyk7CisgICAgICAgIHRlc3RFeHBlY3RlZCgn
dmlkZW8uY2FuUGxheVR5cGUoImF1ZGlvL21wMyIpJywgJ21heWJlJyk7CisgICAgICAgIHRlc3RF
eHBlY3RlZCgndmlkZW8uY2FuUGxheVR5cGUoInZpZGVvL21wNCIpJywgJycpOworICAgICAgICBy
dW4oJ3ZpZGVvLnNyYyA9ICJjb250ZW50L3Rlc3QubXA0IicpOworICAgICAgICBhd2FpdCBQcm9t
aXNlLnJhY2UoW3dhaXRGb3JBbmRTdWNjZWVkKHZpZGVvLCAnZXJyb3InKSwgd2FpdEZvckFuZEZh
aWwodmlkZW8sICdjYW5wbGF5JyldKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFs
bG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKScpOworICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3ZpZGVvLmNhblBsYXlUeXBlKCJhdWRpby9tcDMiKScsICcnKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCd2aWRlby5jYW5QbGF5VHlwZSgidmlkZW8vbXA0IiknLCAnbWF5YmUnKTsKKyAg
ICAgICAgcnVuKCd2aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCInKTsKKyAgICAgICAgYXdh
aXQgUHJvbWlzZS5yYWNlKFt3YWl0Rm9yQW5kU3VjY2VlZCh2aWRlbywgJ2NhbnBsYXknKSwgd2Fp
dEZvckFuZEZhaWwodmlkZW8sICdlcnJvcicpXSk7CisKKyAgICAgICAgZW5kVGVzdCgpOworICAg
IH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjVjYzNiZDZjZTA4N2MyMDIwZWM5ZjhmMWZjYjA1
ZTE5ZDAyMzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291
cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvZGVjcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
OCBAQAorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURz
KG51bGwpKQorRVhQRUNURUQgKE1lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0
OyBjb2RlY3M9YXZjMSIpID09ICd0cnVlJykgT0sKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5
cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKSA9PSAndHJ1ZScpIE9LCitSVU4o
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMoImF2YzEiKSkK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQXVkaW9Db2RlY0lEcygiYWFj
ICIpKQorUlVOKGludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJh
dmMxLG1wNGEuNDAiKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZp
ZGVvL21wNDsgY29kZWNzPWF2YzEiKSA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAoTWVkaWFTb3Vy
Y2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikgPT0gJ2ZhbHNlJykg
T0sKK0VWRU5UKHNvdXJjZW9wZW4pCitSVU4oc291cmNlQnVmZmVyID0gbWVkaWFTb3VyY2UuYWRk
U291cmNlQnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikpCitURVNUKHNvdXJjZUJ1ZmZl
ci5jaGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNvZGVjcz1tcDR2IikpIFRIUk9XUygiTm90U3VwcG9y
dGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKSBPSworUlVOKGludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFWaWRlb0NvZGVjSURzKCJ2cDA5IikpCitSVU4o
aW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoIm9wdXMiKSkK
K1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxv
cHVzIikpCitFWFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQ7
IGNvZGVjcz1hdmMxIikgPT0gJ2ZhbHNlJykgT0sKK1RFU1QobWVkaWFTb3VyY2UuYWRkU291cmNl
QnVmZmVyKCJ2aWRlby9tcDQ7IGNvZGVjcz1hdmMxIikpIFRIUk9XUygiTm90U3VwcG9ydGVkRXJy
b3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iKSBPSworRU5EIE9GIFRFU1QKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1h
bGxvd2VkLWNvZGVjcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
LXNvdXJjZS1hbGxvd2VkLWNvZGVjcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhN2E1MDRhNWYyMjE5NWRk
MzhmN2Q4OWVkYjY2YWUwOTg4NTRmNjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29kZWNzLmh0bWwKQEAgLTAs
MCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5t
ZWRpYS1zb3VyY2UtYWxsb3dlZC1jb250YWluZXJzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignbG9hZCcsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgaWYgKCF3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBmYWlsVGVzdCgnUmVxdWlyZXMgd2luZG93Lmlu
dGVybmFscycpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmlk
ZW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworCisgICAgICAgIHJ1bignaW50
ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYVZpZGVvQ29kZWNJRHMobnVsbCknKTsKKyAg
ICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21w
NDsgY29kZWNzPWF2YzEiKScsIHRydWUpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291
cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9bXA0diIpJywgdHJ1ZSk7CisK
KyAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhVmlkZW9Db2Rl
Y0lEcygiYXZjMSIpJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYUF1ZGlvQ29kZWNJRHMoImFhYyAiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFDb2RlY1R5cGVzKCJhdmMxLG1wNGEuNDAiKScpOworCisg
ICAgICAgIHRlc3RFeHBlY3RlZCgnTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9t
cDQ7IGNvZGVjcz1hdmMxIiknLCB0cnVlKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNDsgY29kZWNzPW1wNHYiKScsIGZhbHNlKTsK
KworICAgICAgICBtZWRpYVNvdXJjZSA9IG5ldyBNZWRpYVNvdXJjZSgpOworICAgICAgICB2aWRl
by5zcmNPYmplY3QgPSBtZWRpYVNvdXJjZTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcihtZWRpYVNv
dXJjZSwgJ3NvdXJjZW9wZW4nKTsKKworICAgICAgICBydW4oJ3NvdXJjZUJ1ZmZlciA9IG1lZGlh
U291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJyk7CisgICAg
ICAgIHRlc3RFeGNlcHRpb24oJ3NvdXJjZUJ1ZmZlci5jaGFuZ2VUeXBlKCJ2aWRlby9tcDQ7IGNv
ZGVjcz1tcDR2IiknLCAnIk5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBz
dXBwb3J0ZWQuIicpOworCisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
ZWRNZWRpYVZpZGVvQ29kZWNJRHMoInZwMDkiKScpOworICAgICAgICBydW4oJ2ludGVybmFscy5z
ZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFBdWRpb0NvZGVjSURzKCJvcHVzIiknKTsKKyAgICAgICAg
cnVuKCdpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29kZWNUeXBlcygidnAwOSxv
cHVzIiknKTsKKworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBv
cnRlZCgidmlkZW8vbXA0OyBjb2RlY3M9YXZjMSIpJywgZmFsc2UpOworCisgICAgICAgIHRlc3RF
eGNlcHRpb24oJ21lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcigidmlkZW8vbXA0OyBjb2RlY3M9
YXZjMSIpJywgJyJOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLiInKTsKKworICAgICAgICBlbmRUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291
cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFsbG93ZWQtY29udGFpbmVycy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDFlOTY2OWZiOGJkMjk4MTc5Y2VlZGFiMmM3YWY0YjNiYjA5MzFkZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2UtYWxsb3dlZC1jb250YWluZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1JVTihp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxsb3dlZE1lZGlhQ29udGFpbmVyVHlwZXMobnVsbCkpCitF
WFBFQ1RFRCAoTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCJ2aWRlby9tcDQiKSA9PSAndHJ1
ZScpIE9LCitSVU4oaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5
cGVzKCJ2aWRlby9tcDQiKSkKK0VYUEVDVEVEIChNZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQo
InZpZGVvL21wNCIpID09ICd0cnVlJykgT0sKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0QWxs
b3dlZE1lZGlhQ29udGFpbmVyVHlwZXMoInZpZGVvL3dlYm0iKSkKK0VYUEVDVEVEIChNZWRpYVNv
dXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpID09ICdmYWxzZScpIE9LCitFTkQgT0Yg
VEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWEt
c291cmNlLWFsbG93ZWQtY29udGFpbmVycy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
c291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MzQ5YTI5YTY3OTMxNmQ2Zjc2YmMxYjFmMjNjZGE3NDVhNWVkOTMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1hbGxvd2VkLWNv
bnRhaW5lcnMuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHRpdGxlPm1lZGlhLXNvdXJjZS1hbGxvd2VkLWNvbnRhaW5lcnM8L3RpdGxl
PgorICAgIDxzY3JpcHQgc3JjPSIuLi92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgYXN5bmMgZXZlbnQgPT4g
eworICAgICAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0
KCdSZXF1aXJlcyB3aW5kb3cuaW50ZXJuYWxzJyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBydW4oJ2ludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd2VkTWVkaWFD
b250YWluZXJUeXBlcyhudWxsKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNl
LmlzVHlwZVN1cHBvcnRlZCgidmlkZW8vbXA0IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxz
LnNldHRpbmdzLnNldEFsbG93ZWRNZWRpYUNvbnRhaW5lclR5cGVzKCJ2aWRlby9tcDQiKScpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ01lZGlhU291cmNlLmlzVHlwZVN1cHBvcnRlZCgidmlkZW8v
bXA0IiknLCB0cnVlKTsKKworICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J3ZpZGVvJyk7CisgICAgICAgIHJ1bignaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93ZWRNZWRp
YUNvbnRhaW5lclR5cGVzKCJ2aWRlby93ZWJtIiknKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCdN
ZWRpYVNvdXJjZS5pc1R5cGVTdXBwb3J0ZWQoInZpZGVvL21wNCIpJywgZmFsc2UpOworCisgICAg
ICAgIGVuZFRlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by10ZXN0LmpzCmluZGV4IGEzYjZjYjdjMzE3MmYwMTE3MzJkZDk5OWFhZjdiNDQzNjVjNmRiNWUu
LmJkZTJhMzdiMDJkMDM1ODlmYmNhNWJlOTRlNTM4YWQyNDY4NmY0ZGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tdGVzdC5qcwpAQCAtMjE3LDE2ICsyMTcsMzIgQEAgZnVuY3Rpb24gd2FpdEZvckV2ZW50V2l0
aFRpbWVvdXQoZWxlbWVudCwgdHlwZSwgdGltZSwgbWVzc2FnZSkgewogICAgIH0pOwogfQogCi1m
dW5jdGlvbiB3YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIHNpbGVudCkgeworZnVuY3Rpb24gd2FpdEZv
cihlbGVtZW50LCB0eXBlLCBzaWxlbnQsIHN1Y2Nlc3MpIHsKICAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBl
dmVudCA9PiB7Ci0gICAgICAgICAgICBpZiAoIXNpbGVudCkKKyAgICAgICAgICAgIGlmIChzaWxl
bnQpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGV2ZW50KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWNjZXNzICE9PSB1bmRl
ZmluZWQpCisgICAgICAgICAgICAgICAgbG9nUmVzdWx0KHN1Y2Nlc3MsIGBFVkVOVCgke2V2ZW50
LnR5cGV9KWApOworICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZShgRVZFTlQoJHtldmVudC50eXBlfSlgKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgcmVz
b2x2ZShldmVudCk7CiAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKICAgICB9KTsKIH0KIAor
ZnVuY3Rpb24gd2FpdEZvckFuZFN1Y2NlZWQoZWxlbWVudCwgdHlwZSkgeworICAgIHJldHVybiB3
YWl0Rm9yKGVsZW1lbnQsIHR5cGUsIGZhbHNlLCB0cnVlKTsKK30KKworZnVuY3Rpb24gd2FpdEZv
ckFuZEZhaWwoZWxlbWVudCwgdHlwZSkgeworICAgIHJldHVybiB3YWl0Rm9yKGVsZW1lbnQsIHR5
cGUsIGZhbHNlLCBmYWxzZSk7Cit9CisKIGZ1bmN0aW9uIHdhaXRGb3JFdmVudE9uY2UoZXZlbnRO
YW1lLCBmdW5jLCBlbmRpdCkKIHsKICAgICB3YWl0Rm9yRXZlbnQoZXZlbnROYW1lLCBmdW5jLCBl
bmRpdCwgdHJ1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYjBkMjlkNDk5YjQ2ZWNiYjMwMGJjOTk1MzYzNjM2N2NiY2Y2ZTM3Mi4uZGUyODk1MmMwZmVk
ODRjOGYyMTA0OTA3NTAxNjRkNWJiZTE5Y2NkYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NTAsMyArMTg1MCw1IEBAIHdlYmtpdC5vcmcvYi8xNjAx
MTkgZmFzdC9yZXBhaW50L3NlbGVjdGlvbi1nYXAtZmxpcHBlZC1maXhlZC1jaGlsZC5odG1sIFsg
RmFpbHVyCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiAjIFRoZXNlIHRlc3Rz
IHJlcXVpcmUgcGxhdGZvcm0gc3VwcG9ydC4KK21lZGlhL21lZGlhLWFsbG93ZWQtY29kZWNzLmh0
bWwKK21lZGlhL21lZGlhLWFsbG93ZWQtY29udGFpbmVycy5odG1sClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA4OGM3ODE1ZmJmYTZjMTVhZTkwM2ViZjA4ZjQwNzJiNTMzZjc0ZWU3Li5lZDJhZTMyMmEyNmY2
ZDI0OTY0NjU4ZGM4NDY4ZmYyZjNkNWNmZWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQ0MCw0ICsyNDQwLDcgQEAgZmFzdC90ZXh0L2ZvbnQtbG9v
a3VwLWRvdC1wcmVmaXgtY2FzZS1zZW5zaXRpdmUuaHRtbCBbIFBhc3MgXQogWyBDYXRhbGluYSBC
aWdTdXIgTW9udGVyZXkgXSBmYXN0L3RleHQvbG9jYWxlLXNoYXBpbmctMy5odG1sIFsgUGFzcyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIAogI3JkYXI6Ly84MDMzMzA3MQotWyBCaWdTdXIrIF0gY29tcG9z
aXRpbmcvaWZyYW1lcy9ib3JkZXItcmFkaXVzLWNvbXBvc2l0ZWQtZnJhbWUuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK1sgQmlnU3VyKyBdIGNv
bXBvc2l0aW5nL2lmcmFtZXMvYm9yZGVyLXJhZGl1cy1jb21wb3NpdGVkLWZyYW1lLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KKworIyByZGFyOi8vODQ1NTY4MzEgCitbIENhdGFsaW5hIF0gbWVk
aWEvbWVkaWEtYWxsb3dlZC1jb250YWluZXJzLmh0bWwgWyBTa2lwIF0KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>