<?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>225788</bug_id>
          
          <creation_ts>2021-05-13 16:45:23 -0700</creation_ts>
          <short_desc>Add a way to create `&quot;wheel&quot;` events from gesture/touch events</short_desc>
          <delta_ts>2021-09-21 10:18:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>eoconnor</cc>
    
    <cc>evan.exe</cc>
    
    <cc>hi</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759897</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-13 16:45:23 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759898</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-13 16:45:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/76714308&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759905</commentid>
    <comment_count>2</comment_count>
      <attachid>428577</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-13 16:54:27 -0700</bug_when>
    <thetext>Created attachment 428577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759974</commentid>
    <comment_count>3</comment_count>
      <attachid>428577</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-13 19:43:23 -0700</bug_when>
    <thetext>Comment on attachment 428577
Patch

This needs some tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761456</commentid>
    <comment_count>4</comment_count>
      <attachid>429027</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-18 20:16:52 -0700</bug_when>
    <thetext>Created attachment 429027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761473</commentid>
    <comment_count>5</comment_count>
      <attachid>429032</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-18 22:45:18 -0700</bug_when>
    <thetext>Created attachment 429032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761587</commentid>
    <comment_count>6</comment_count>
      <attachid>429032</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-19 10:21:57 -0700</bug_when>
    <thetext>Comment on attachment 429032
Patch

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

&gt; Source/WebCore/platform/PlatformWheelEvent.cpp:49
&gt; +    platformWheelEvent.m_timestamp = platformGestureEvent.timestamp();
&gt; +    platformWheelEvent.m_modifiers = platformGestureEvent.modifiers() | PlatformEvent::Modifier::ControlKey;

Can we give PlatformWheelEvent a PlatformEvent copy ctor that initializes the shared members? Otherwise someone will add something in future and not know to fix this code path.

&gt; Source/WebCore/platform/PlatformWheelEvent.cpp:61
&gt; +        platformWheelEvent.m_phase = deltaY ? PlatformWheelEventPhase::Began : PlatformWheelEventPhase::MayBegin;

This only makes sense if the first event has deltaY=0 and no subsequent event does (MayBegin should only ever be followed by Began or Canceled).

&gt; Source/WebCore/platform/PlatformWheelEvent.cpp:62
&gt; +        platformWheelEvent.m_momentumPhase = deltaY ? PlatformWheelEventPhase::Began : PlatformWheelEventPhase::None;

It doesn&apos;t make sense to have an event where both m_phase and m_momentumPhase are PlatformWheelEventPhase::Began. m_phase and m_momentumPhase are really mutually exclusive. There are no momentum phases in this gesture, I think.

&gt; Tools/ChangeLog:42
&gt; +        Make sure to pass all feature flags when generating JS files from IDL files.

Oh finally! But what about DumpRenderTree?

&gt; Tools/WebKitTestRunner/DerivedSources.make:43
&gt; +FRAMEWORK_FLAGS := $(shell echo $(BUILT_PRODUCTS_DIR) $(FRAMEWORK_SEARCH_PATHS) $(SYSTEM_FRAMEWORK_SEARCH_PATHS) | $(PERL) -e &apos;print &quot;-F &quot; . join(&quot; -F &quot;, split(&quot; &quot;, &lt;&gt;));&apos;)
&gt; +HEADER_FLAGS := $(shell echo $(BUILT_PRODUCTS_DIR) $(HEADER_SEARCH_PATHS) $(SYSTEM_HEADER_SEARCH_PATHS) | $(PERL) -e &apos;print &quot;-I&quot; . join(&quot; -I&quot;, split(&quot; &quot;, &lt;&gt;));&apos;)
&gt; +FEATURE_AND_PLATFORM_DEFINES := $(shell $(CC) -std=gnu++1z -x c++ -E -P -dM $(SDK_FLAGS) $(TARGET_TRIPLE_FLAGS) $(FRAMEWORK_FLAGS) $(HEADER_FLAGS) -include &quot;wtf/Platform.h&quot; /dev/null | $(PERL) -ne &quot;print if s/\#define ((HAVE_|USE_|ENABLE_|WTF_PLATFORM_)\w+) 1/\1/&quot;)

Someone else should review this.

&gt; Tools/WebKitTestRunner/EventSenderProxy.h:94
&gt; +    void scaleGestureStart(double scale);
&gt; +    void scaleGestureChange(double scale);
&gt; +    void scaleGestureEnd(double scale);

Don&apos;t these have an origin too?

&gt; Tools/WebKitTestRunner/mac/EventSenderProxy.mm:133
&gt; +    CGEventSetIntegerValueField(cgEvent.get(), kCGEventGestureHIDType, 8 /* kIOHIDEventTypeZoom */);

Should we put kIOHIDEventTypeZoom in an SPI header?

&gt; Tools/WebKitTestRunner/mac/EventSenderProxy.mm:910
&gt; +    auto event = adoptNS([[EventSenderSyntheticEvent alloc] initMagnifyEventAtLocation:NSMakePoint(m_position.x, m_position.y)

Maybe pull [m_testController-&gt;mainWebView()-&gt;platformView() into a local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761670</commentid>
    <comment_count>7</comment_count>
      <attachid>429032</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-19 13:21:23 -0700</bug_when>
    <thetext>Comment on attachment 429032
Patch

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

&gt;&gt; Source/WebCore/platform/PlatformWheelEvent.cpp:62
&gt;&gt; +        platformWheelEvent.m_momentumPhase = deltaY ? PlatformWheelEventPhase::Began : PlatformWheelEventPhase::None;
&gt; 
&gt; It doesn&apos;t make sense to have an event where both m_phase and m_momentumPhase are PlatformWheelEventPhase::Began. m_phase and m_momentumPhase are really mutually exclusive. There are no momentum phases in this gesture, I think.

Ah good catch.  I misread `momentumPhaseForEvent` as using `[event phase]` not `[event momentumPhase]`.  I&apos;ll double check this.

&gt;&gt; Tools/ChangeLog:42
&gt;&gt; +        Make sure to pass all feature flags when generating JS files from IDL files.
&gt; 
&gt; Oh finally! But what about DumpRenderTree?

I didn&apos;t see any IDL files in `DumpRenderTree`.  I can add it though.

&gt;&gt; Tools/WebKitTestRunner/DerivedSources.make:43
&gt;&gt; +FEATURE_AND_PLATFORM_DEFINES := $(shell $(CC) -std=gnu++1z -x c++ -E -P -dM $(SDK_FLAGS) $(TARGET_TRIPLE_FLAGS) $(FRAMEWORK_FLAGS) $(HEADER_FLAGS) -include &quot;wtf/Platform.h&quot; /dev/null | $(PERL) -ne &quot;print if s/\#define ((HAVE_|USE_|ENABLE_|WTF_PLATFORM_)\w+) 1/\1/&quot;)
&gt; 
&gt; Someone else should review this.

FYI this is a copypasta from `WebCore/DerivedSources.make`.

&gt;&gt; Tools/WebKitTestRunner/EventSenderProxy.h:94
&gt;&gt; +    void scaleGestureEnd(double scale);
&gt; 
&gt; Don&apos;t these have an origin too?

The most recent mouse location is the origin.  I was matching how force events are simulated in that it requires a `moveMouseTo` beforehand.

&gt;&gt; Tools/WebKitTestRunner/mac/EventSenderProxy.mm:133
&gt;&gt; +    CGEventSetIntegerValueField(cgEvent.get(), kCGEventGestureHIDType, 8 /* kIOHIDEventTypeZoom */);
&gt; 
&gt; Should we put kIOHIDEventTypeZoom in an SPI header?

It&apos;s actually already in `Source/WebCore/PAL/pal/spi/cocoa/IOKitSPI.h`.  I&apos;ll just include it in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761731</commentid>
    <comment_count>8</comment_count>
      <attachid>429101</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-19 15:29:19 -0700</bug_when>
    <thetext>Created attachment 429101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761734</commentid>
    <comment_count>9</comment_count>
      <attachid>429102</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-19 15:32:11 -0700</bug_when>
    <thetext>Created attachment 429102
Patch

oops forgot test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761808</commentid>
    <comment_count>10</comment_count>
      <attachid>429102</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-05-19 19:04:54 -0700</bug_when>
    <thetext>Comment on attachment 429102
Patch

test failures are probably unrelated as this patch doesn&apos;t actually have an functional changes (other than to how the test runner is compiled)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761810</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-19 19:26:16 -0700</bug_when>
    <thetext>Committed r277772 (237933@main): &lt;https://commits.webkit.org/237933@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429102.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1781858</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-08-04 02:44:00 -0700</bug_when>
    <thetext>*** Bug 145214 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795627</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-21 10:18:22 -0700</bug_when>
    <thetext>*** Bug 230545 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428577</attachid>
            <date>2021-05-13 16:54:27 -0700</date>
            <delta_ts>2021-05-18 20:16:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225788-20210513175426.patch</filename>
            <type>text/plain</type>
            <size>6643</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZmNmOWNkNDg3MDY2OTVmZWQyM2I1MGExYTljYzQzMzBlYzU3M2IxLi43
YTFlMmRlMTY0Nzc4NDBmNGRiMGEyMzk5OWZhNjdmNTg3NDYwMGUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjEtMDUtMTMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIHdheSB0byBjcmVhdGUgYCJ3aGVlbCJgIGV2ZW50cyBmcm9tIGdl
c3R1cmUvdG91Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NzE0MzA4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE90aGVyIGJyb3dz
ZXJzIGhhdmUgdGFrZW4gdGhlIGFwcHJvYWNoIG9mIGRpc3BhdGNoaW5nIGAid2hlZWwiYCBldmVu
dHMgd2l0aCBgY3RybEtleWAgYW5kCisgICAgICAgIGBkZWx0YVlgIHdoZW4gaGFuZGxpbmcgbXVs
dGktdG91Y2ggcGluY2gtdG8tem9vbSBnZXN0dXJlcy4gQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8g
ZG8gdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVdoZWVsRXZlbnQ6OmNyZWF0ZUZyb21HZXN0dXJlKTogQWRkZWQuCisKIDIwMjEt
MDUtMTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgdGV4dEluZGljYXRvciBib3VuY2UgZm9yIEFwcEhpZ2hsaWdodHMgb24gc2Nyb2xsLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKaW5kZXgg
YTRiMDE3ZmZkNjFlN2VkNjI5OTFiMTQ2NzExYmQzNTkzYzhmNjhhMC4uZjg4ZDkzODgwZWUwZjdm
ZmUzNDk3NjRmOWViMTUwZTJhZmZiMjNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCkBAIC0yNiwxMCArMjYsMTE1IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAKKyNpbmNsdWRlICJT
Y3JvbGxiYXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKKyNpZiBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0Zm9ybVRvdWNoRXZlbnRJT1MuaCIK
KyNlbmRpZgorCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVFdmVudE1hYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
I2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK1BsYXRmb3JtV2hlZWxFdmVudCBQbGF0
Zm9ybVdoZWVsRXZlbnQ6OmNyZWF0ZUZyb21HZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2
ZW50JiBwbGF0Zm9ybUdlc3R1cmVFdmVudCwgZG91YmxlIGRlbHRhWSkKK3sKKyAgICAvLyBUaGlz
IHRyaWVzIHRvIG1hdGNoIGFzIG11Y2ggb2YgdGhlIGJlaGF2aW9yIG9mIGBXZWJLaXQ6OldlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudGAgYXMKKyAgICAvLyBwb3NzaWJsZSBhc3N1
bWluZyBgLVtOU0V2ZW50IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXNdYCBhbmQgbm8gYC1bTlNF
dmVudCBfc2Nyb2xsQ291bnRdYC4KKworICAgIFBsYXRmb3JtV2hlZWxFdmVudCBwbGF0Zm9ybVdo
ZWVsRXZlbnQ7CisKKyAgICAvLyBQbGF0Zm9ybUV2ZW50CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50
Lm1fdGltZXN0YW1wID0gcGxhdGZvcm1HZXN0dXJlRXZlbnQudGltZXN0YW1wKCk7CisgICAgcGxh
dGZvcm1XaGVlbEV2ZW50Lm1fbW9kaWZpZXJzID0gcGxhdGZvcm1HZXN0dXJlRXZlbnQubW9kaWZp
ZXJzKCkgJiBQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcjo6Q29udHJvbEtleTsKKworICAgIC8vIFBs
YXRmb3JtV2hlZWxFdmVudAorICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX3Bvc2l0aW9uID0gcGxh
dGZvcm1HZXN0dXJlRXZlbnQucG9zKCk7CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fZ2xvYmFs
UG9zaXRpb24gPSBwbGF0Zm9ybUdlc3R1cmVFdmVudC5nbG9iYWxQb3NpdGlvbigpOworICAgIHBs
YXRmb3JtV2hlZWxFdmVudC5tX2RlbHRhWSA9IGRlbHRhWTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZl
bnQubV93aGVlbFRpY2tzWSA9IGRlbHRhWSAvIHN0YXRpY19jYXN0PGZsb2F0PihTY3JvbGxiYXI6
OnBpeGVsc1BlckxpbmVTdGVwKCkpOworICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX2hhc1ByZWNp
c2VTY3JvbGxpbmdEZWx0YXMgPSB0cnVlOworCisjaWYgRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5H
KQorICAgIHN3aXRjaCAocGxhdGZvcm1HZXN0dXJlRXZlbnQudHlwZSgpKSB7CisgICAgY2FzZSBQ
bGF0Zm9ybUV2ZW50OjpHZXN0dXJlU3RhcnQ6CisgICAgICAgIHBsYXRmb3JtV2hlZWxFdmVudC5t
X3BoYXNlID0gZGVsdGFZID8gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2FuIDogUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2U6Ok1heUJlZ2luOworICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQu
bV9tb21lbnR1bVBoYXNlID0gZGVsdGFZID8gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2Fu
IDogUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUGxhdGZvcm1FdmVudDo6R2VzdHVyZUNoYW5nZToKKyAgICAgICAgcGxhdGZvcm1XaGVlbEV2
ZW50Lm1fcGhhc2UgPSBwbGF0Zm9ybVdoZWVsRXZlbnQubV9tb21lbnR1bVBoYXNlID0gZGVsdGFZ
ID8gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQgOiBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZTo6U3RhdGlvbmFyeTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50
OjpHZXN0dXJlRW5kOgorICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9waGFzZSA9IHBsYXRm
b3JtV2hlZWxFdmVudC5tX21vbWVudHVtUGhhc2UgPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6
RW5kZWQ7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEtJTkVU
SUNfU0NST0xMSU5HKQorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgcGxhdGZvcm1XaGVlbEV2
ZW50Lm1fdW5hY2NlbGVyYXRlZFNjcm9sbGluZ0RlbHRhWSA9IGRlbHRhWTsKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKKworICAgIHJldHVybiBwbGF0Zm9ybVdoZWVsRXZlbnQ7Cit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorCisjaWYgRU5BQkxFKElPU19HRVNU
VVJFX0VWRU5UUykKKworUGxhdGZvcm1XaGVlbEV2ZW50IFBsYXRmb3JtV2hlZWxFdmVudDo6Y3Jl
YXRlRnJvbUdlc3R1cmUoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiBwbGF0Zm9ybVRvdWNoRXZl
bnQsIGRvdWJsZSBkZWx0YVkpCit7CisgICAgLy8gVGhpcyB0cmllcyB0byBtYXRjaCBhcyBtdWNo
IG9mIHRoZSBiZWhhdmlvciBvZiBgV2ViS2l0OjpXZWJJT1NFdmVudEZhY3Rvcnk6OmNyZWF0ZVdl
YldoZWVsRXZlbnRgIGFzIHBvc3NpYmxlLgorCisgICAgUGxhdGZvcm1XaGVlbEV2ZW50IHBsYXRm
b3JtV2hlZWxFdmVudDsKKworICAgIC8vIFBsYXRmb3JtRXZlbnQKKyAgICBwbGF0Zm9ybVdoZWVs
RXZlbnQubV90aW1lc3RhbXAgPSBwbGF0Zm9ybVRvdWNoRXZlbnQudGltZXN0YW1wKCk7CisgICAg
cGxhdGZvcm1XaGVlbEV2ZW50Lm1fbW9kaWZpZXJzID0gcGxhdGZvcm1Ub3VjaEV2ZW50Lm1vZGlm
aWVycygpICYgUGxhdGZvcm1FdmVudDo6TW9kaWZpZXI6OkNvbnRyb2xLZXk7CisKKyAgICAvLyBQ
bGF0Zm9ybVdoZWVsRXZlbnQKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9wb3NpdGlvbiA9IHBs
YXRmb3JtVG91Y2hFdmVudC5wb3MoKTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9nbG9iYWxQ
b3NpdGlvbiA9IHBsYXRmb3JtVG91Y2hFdmVudC5nbG9iYWxQb3NpdGlvbigpOworICAgIHBsYXRm
b3JtV2hlZWxFdmVudC5tX2RlbHRhWSA9IGRlbHRhWTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQu
bV93aGVlbFRpY2tzWSA9IGRlbHRhWSAvIHN0YXRpY19jYXN0PGZsb2F0PihTY3JvbGxiYXI6OnBp
eGVsc1BlckxpbmVTdGVwKCkpOworICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX2hhc1ByZWNpc2VT
Y3JvbGxpbmdEZWx0YXMgPSB0cnVlOworCisjaWYgRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQor
ICAgIHN3aXRjaCAocGxhdGZvcm1Ub3VjaEV2ZW50LnR5cGUoKSkgeworICAgIGNhc2UgUGxhdGZv
cm1FdmVudDo6VG91Y2hTdGFydDoKKyAgICAgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fcGhhc2Ug
PSBkZWx0YVkgPyBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gOiBQbGF0Zm9ybVdoZWVs
RXZlbnRQaGFzZTo6TWF5QmVnaW47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6VG91Y2hNb3ZlOgorICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9waGFzZSA9IGRl
bHRhWSA/IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkIDogUGxhdGZvcm1XaGVlbEV2
ZW50UGhhc2U6OlN0YXRpb25hcnk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1F
dmVudDo6VG91Y2hFbmQ6CisgICAgICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX3BoYXNlID0gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVuZGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBs
YXRmb3JtRXZlbnQ6OlRvdWNoQ2FuY2VsOgorICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9w
aGFzZSA9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDYW5jZWxsZWQ7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fc2Nyb2xsQ291bnQgPSAx
OworICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YVkg
PSBkZWx0YVk7CisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCisKKyAgICByZXR1cm4gcGxhdGZv
cm1XaGVlbEV2ZW50OworfQorCisjZW5kaWYgLy8gRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykK
KwogI2lmIEVOQUJMRShLSU5FVElDX1NDUk9MTElORykKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCmluZGV4IGQ3MTY5MzQ2YTI0
MDIzYzJhNDc4N2FlMzQ1NDBhMzc2MDdjMGEyZDUuLjMwNTc1MmUwNzRkYTIwMDNlNDZiMjYwMDI2
OTFmOTI0OTQ0MWI1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hl
ZWxFdmVudC5oCkBAIC0zNiw2ICszNiw5IEBAIGNsYXNzIFRleHRTdHJlYW07CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CitjbGFzcyBQbGF0Zm9y
bVRvdWNoRXZlbnQ7CisKIGVudW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVp
bnQ4X3QgewogICAgIFNjcm9sbGluZ1RocmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PSAxIDw8IDAsCiAgICAgTWFpblRocmVhZEZvclNjcm9sbGluZyAgICAgICAgICAgICAgICAgICAg
ICA9IDEgPDwgMSwKQEAgLTEwNiw2ICsxMDksMTQgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAK
KyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAgIHN0YXRpYyBQbGF0Zm9ybVdoZWVs
RXZlbnQgY3JlYXRlRnJvbUdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmLCBkb3Vi
bGUgZGVsdGFZKTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKKyAg
ICBzdGF0aWMgUGxhdGZvcm1XaGVlbEV2ZW50IGNyZWF0ZUZyb21HZXN0dXJlKGNvbnN0IFBsYXRm
b3JtVG91Y2hFdmVudCYsIGRvdWJsZSBkZWx0YVkpOworI2VuZGlmCisKICAgICBQbGF0Zm9ybVdo
ZWVsRXZlbnQgY29weVN3YXBwaW5nRGlyZWN0aW9uKCkgY29uc3QKICAgICB7CiAgICAgICAgIFBs
YXRmb3JtV2hlZWxFdmVudCBjb3B5ID0gKnRoaXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429027</attachid>
            <date>2021-05-18 20:16:52 -0700</date>
            <delta_ts>2021-05-18 22:45:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225788-20210518211651.patch</filename>
            <type>text/plain</type>
            <size>36097</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYTU2NzVkZDc3ZjgxMzQ5ZjdlMDhmZmY1YmVmNmM3MWVhYjM4ODIzLi4z
MDlkMjEzMmNjZTQxMTUwZGQ4NDVjMDg2OGI4MzdhZTdjODA2NGJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjEtMDUtMTggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIHdheSB0byBjcmVhdGUgYCJ3aGVlbCJgIGV2ZW50cyBmcm9tIGdl
c3R1cmUvdG91Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NzE0MzA4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZXZlbnRzL2dlc3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLmh0bWwKKworICAgICAgICBPdGhlciBi
cm93c2VycyBoYXZlIHRha2VuIHRoZSBhcHByb2FjaCBvZiBkaXNwYXRjaGluZyBgIndoZWVsImAg
ZXZlbnRzIHdpdGggYGN0cmxLZXlgIGFuZAorICAgICAgICBgZGVsdGFZYCB3aGVuIGhhbmRsaW5n
IG11bHRpLXRvdWNoIHBpbmNoLXRvLXpvb20gZ2VzdHVyZXMuIEFkZCBoZWxwZXIgZnVuY3Rpb25z
IHRvIGRvIHRoaXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpjcmVhdGVGcm9tR2VzdHVyZSk6IEFkZGVkLgorCiAy
MDIxLTA1LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IFVURi04IGludGVybmFsbHkgZnJvbSBTdHJpbmdzIGluc2lkZSBTUUxpdGVTdGF0ZW1lbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCmluZGV4IGE0
YjAxN2ZmZDYxZTdlZDYyOTkxYjE0NjcxMWJkMzU5M2M4ZjY4YTAuLjAwM2RmMzVmZTlmNTk1ZGZm
Njg0YjkyOTM4Y2Q1ZTk2ZGNlNzcyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1XaGVlbEV2ZW50LmNwcApAQCAtMjYsMTAgKzI2LDYyIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAKKyNpbmNsdWRlICJTY3Jv
bGxiYXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKKyNpZiBFTkFCTEUo
TUFDX0dFU1RVUkVfRVZFTlRTKQorI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50TWFjLmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJF
X0VWRU5UUykKKworUGxhdGZvcm1XaGVlbEV2ZW50IFBsYXRmb3JtV2hlZWxFdmVudDo6Y3JlYXRl
RnJvbUdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQmIHBsYXRmb3JtR2VzdHVyZUV2
ZW50LCBkb3VibGUgZGVsdGFZKQoreworICAgIC8vIFRoaXMgdHJpZXMgdG8gbWF0Y2ggYXMgbXVj
aCBvZiB0aGUgYmVoYXZpb3Igb2YgYFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJX
aGVlbEV2ZW50YCBhcworICAgIC8vIHBvc3NpYmxlIGFzc3VtaW5nIGAtW05TRXZlbnQgaGFzUHJl
Y2lzZVNjcm9sbGluZ0RlbHRhc11gIGFuZCBubyBgLVtOU0V2ZW50IF9zY3JvbGxDb3VudF1gLgor
CisgICAgUGxhdGZvcm1XaGVlbEV2ZW50IHBsYXRmb3JtV2hlZWxFdmVudDsKKworICAgIC8vIFBs
YXRmb3JtRXZlbnQKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV90aW1lc3RhbXAgPSBwbGF0Zm9y
bUdlc3R1cmVFdmVudC50aW1lc3RhbXAoKTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9tb2Rp
ZmllcnMgPSBwbGF0Zm9ybUdlc3R1cmVFdmVudC5tb2RpZmllcnMoKSB8IFBsYXRmb3JtRXZlbnQ6
Ok1vZGlmaWVyOjpDb250cm9sS2V5OworCisgICAgLy8gUGxhdGZvcm1XaGVlbEV2ZW50CisgICAg
cGxhdGZvcm1XaGVlbEV2ZW50Lm1fcG9zaXRpb24gPSBwbGF0Zm9ybUdlc3R1cmVFdmVudC5wb3Mo
KTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9nbG9iYWxQb3NpdGlvbiA9IHBsYXRmb3JtR2Vz
dHVyZUV2ZW50Lmdsb2JhbFBvc2l0aW9uKCk7CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fZGVs
dGFZID0gZGVsdGFZOworICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX3doZWVsVGlja3NZID0gZGVs
dGFZIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7
CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1faGFzUHJlY2lzZVNjcm9sbGluZ0RlbHRhcyA9IHRy
dWU7CisKKyNpZiBFTkFCTEUoS0lORVRJQ19TQ1JPTExJTkcpCisgICAgc3dpdGNoIChwbGF0Zm9y
bUdlc3R1cmVFdmVudC50eXBlKCkpIHsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVT
dGFydDoKKyAgICAgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fcGhhc2UgPSBkZWx0YVkgPyBQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gOiBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6TWF5
QmVnaW47CisgICAgICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX21vbWVudHVtUGhhc2UgPSBkZWx0
YVkgPyBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6QmVnYW4gOiBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZTo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0
dXJlQ2hhbmdlOgorICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9waGFzZSA9IHBsYXRmb3Jt
V2hlZWxFdmVudC5tX21vbWVudHVtUGhhc2UgPSBkZWx0YVkgPyBQbGF0Zm9ybVdoZWVsRXZlbnRQ
aGFzZTo6Q2hhbmdlZCA6IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpTdGF0aW9uYXJ5OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVFbmQ6CisgICAgICAg
IHBsYXRmb3JtV2hlZWxFdmVudC5tX3BoYXNlID0gcGxhdGZvcm1XaGVlbEV2ZW50Lm1fbW9tZW50
dW1QaGFzZSA9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpFbmRlZDsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyNlbmRpZiAvLyBFTkFCTEUoS0lORVRJQ19TQ1JPTExJTkcpCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV91bmFjY2VsZXJhdGVkU2Ny
b2xsaW5nRGVsdGFZID0gZGVsdGFZOworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQorCisgICAg
cmV0dXJuIHBsYXRmb3JtV2hlZWxFdmVudDsKK30KKworI2VuZGlmIC8vIEVOQUJMRShNQUNfR0VT
VFVSRV9FVkVOVFMpCisKICNpZiBFTkFCTEUoS0lORVRJQ19TQ1JPTExJTkcpCiAKIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHBo
YXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAppbmRl
eCBkNzE2OTM0NmEyNDAyM2MyYTQ3ODdhZTM0NTQwYTM3NjA3YzBhMmQ1Li5jNzQ4ODcwNGM4ZmQ2
NDA2ZTU2MTE5ZWM1YmRmMjgwNjRmOGRkMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVdoZWVsRXZlbnQuaApAQCAtMzYsNiArMzYsOCBAQCBjbGFzcyBUZXh0U3RyZWFt
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFBsYXRmb3JtR2VzdHVyZUV2ZW50Owor
CiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90IHsKICAgICBT
Y3JvbGxpbmdUaHJlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAogICAg
IE1haW5UaHJlYWRGb3JTY3JvbGxpbmcgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDEsCkBA
IC0xMDYsNiArMTA4LDEwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisjaWYgRU5BQkxFKE1B
Q19HRVNUVVJFX0VWRU5UUykKKyAgICBzdGF0aWMgUGxhdGZvcm1XaGVlbEV2ZW50IGNyZWF0ZUZy
b21HZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiwgZG91YmxlIGRlbHRhWSk7Cisj
ZW5kaWYKKwogICAgIFBsYXRmb3JtV2hlZWxFdmVudCBjb3B5U3dhcHBpbmdEaXJlY3Rpb24oKSBj
b25zdAogICAgIHsKICAgICAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IGNvcHkgPSAqdGhpczsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMDhkZWMz
MTVhZDhiNWU4ZDBiYmIxY2I1MTc2NGIyOTRiOTkxMWVlLi4yZjdmMGY4NGNiZDJlODdmNTQ1OTJk
NmY4ZGY3OTAxZDJmNWIyMWY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMDUtMTggIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIHdheSB0byBjcmVhdGUgYCJ3aGVl
bCJgIGV2ZW50cyBmcm9tIGdlc3R1cmUvdG91Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzc2NzE0MzA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNl
bmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1cmVTdGFydCk6IEFkZGVkLgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1cmVDaGFuZ2Up
OiBBZGRlZC4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0
dXJlRW5kKTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0V2ZW50U2VuZGVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL21hYy9FdmVu
dFNlbmRlclByb3h5Lm1tOgorICAgICAgICAoRXZlbnRTZW5kZXJDR0dlc3R1cmVQaGFzZUZyb21O
U0V2ZW50UGhhc2UpOgorICAgICAgICAoLVtFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGluaXRQ
cmVzc3VyZUV2ZW50QXRMb2NhdGlvbjpnbG9iYWxMb2NhdGlvbjpzdGFnZTpwcmVzc3VyZTpzdGFn
ZVRyYW5zaXRpb246cGhhc2U6dGltZTpldmVudE51bWJlcjp3aW5kb3c6XSk6CisgICAgICAgICgt
W0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246Z2xv
YmFsTG9jYXRpb246bWFnbmlmaWNhdGlvbjpwaGFzZTp0aW1lOmV2ZW50TnVtYmVyOndpbmRvdzpd
KTogQWRkZWQuCisgICAgICAgICgtW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgbWFnbmlmaWNh
dGlvbl0pOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3du
KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCk6CisgICAgICAgIChX
VFI6OkV2ZW50U2VuZGVyUHJveHk6OnNlbmRNb3VzZURvd25Ub1N0YXJ0UHJlc3N1cmVFdmVudHMp
OgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpiZWdpblByZXNzdXJlRXZlbnQpOgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpwcmVzc3VyZUNoYW5nZUV2ZW50KToKKyAg
ICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VGb3JjZUNsaWNrKToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xpY2spOgor
ICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZU1vdmVUbyk6CisgICAgICAgIChX
VFI6OkV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZVN0YXJ0KTogQWRkZWQuCisgICAgICAg
IChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZUNoYW5nZSk6IEFkZGVkLgorICAg
ICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVFbmQpOiBBZGRlZC4KKyAg
ICAgICAgQWxsb3cgdGVzdHMgdG8gc3ludGhlc2l6ZSBzY2FsZSAoYS5rLmEuIG1hZ25pZnkpIGdl
c3R1cmUgZXZlbnRzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQ
cm94eTo6RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgYGV2ZW50
TnVtYmVyYCB0byBgbV9ldmVudE51bWJlcmAgc2luY2UgaXQncyBhIG1lbWJlciB2YXJpYWJsZS4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNv
dXJjZXMuc2g6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9EZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICBNYWtlIHN1cmUgdG8gcGFzcyBhbGwgZmVhdHVyZSBmbGFncyB3aGVuIGdlbmVy
YXRpbmcgSlMgZmlsZXMgZnJvbSBJREwgZmlsZXMuCisKIDIwMjEtMDUtMTggIEpvbmF0aGFuIEJl
ZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtsaW50LXRlc3QtZXhwZWN0YXRp
b25zXSBDaGFuZ2Ugc2hlYmFuZyB0byBQeXRob24gMwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9EZXJpdmVkU291cmNlcy5tYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRmNjJjYjliNzcxYjc2OTkyOTczYTU3NzdmZjYxZTA0
OGNjNTY1YjQuLmExMDkzZTIxYWQ1MjI5ZWMwNjhiYmU0OWY0YjQ2OTNmOWVhNWIzODEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI2LDggKzI2LDIy
IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0VGVzdFJ1bm5lcikvLi4vVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MgXAogIwogCitQRVJMID0gcGVybAogUlVCWSA9IHJ1
YnkKIAoraWZuZXEgKCQoU0RLUk9PVCksKQorICAgIFNES19GTEFHUyA9IC1pc3lzcm9vdCAkKFNE
S1JPT1QpCitlbmRpZgorCitpZmVxICgkKFVTRV9MTFZNX1RBUkdFVF9UUklQTEVTX0ZPUl9DTEFO
RyksWUVTKQorICAgIFdLX0NVUlJFTlRfQVJDSCA9ICQod29yZCAxLCAkKEFSQ0hTKSkKKyAgICBU
QVJHRVRfVFJJUExFX0ZMQUdTID0gLXRhcmdldCAkKFdLX0NVUlJFTlRfQVJDSCktJChMTFZNX1RB
UkdFVF9UUklQTEVfVkVORE9SKS0kKExMVk1fVEFSR0VUX1RSSVBMRV9PU19WRVJTSU9OKSQoTExW
TV9UQVJHRVRfVFJJUExFX1NVRkZJWCkKK2VuZGlmCisKK0ZSQU1FV09SS19GTEFHUyA6PSAkKHNo
ZWxsIGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykg
JChTWVNURU1fRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCAkKFBFUkwpIC1lICdwcmludCAiLUYg
IiAuIGpvaW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKK0hFQURFUl9GTEFHUyA6PSAkKHNo
ZWxsIGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoSEVBREVSX1NFQVJDSF9QQVRIUykgJChT
WVNURU1fSEVBREVSX1NFQVJDSF9QQVRIUykgfCAkKFBFUkwpIC1lICdwcmludCAiLUkiIC4gam9p
bigiIC1JIiwgc3BsaXQoIiAiLCA8PikpOycpCitGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVT
IDo9ICQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzF6IC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxB
R1MpICQoVEFSR0VUX1RSSVBMRV9GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZM
QUdTKSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8ICQoUEVSTCkgLW5lICJw
cmludCBpZiBzL1wjZGVmaW5lICgoSEFWRV98VVNFX3xFTkFCTEVffFdURl9QTEFURk9STV8pXHcr
KSAxL1wxLyIpCisKIFdFQl9QUkVGRVJFTkNFUyA9IFwKICAgICAke1dURl9CVUlMRF9TQ1JJUFRT
X0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCBcCiAgICAgJHtXVEZfQlVJTERf
U0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVidWcueWFtbCBcCkBAIC03
NSw3ICs4OSw4IEBAIElETF9BVFRSSUJVVEVTX0ZJTEUgPSAkKFdlYkNvcmVTY3JpcHRzKS9JRExB
dHRyaWJ1dGVzLmpzb24KIAogSlMlLmggSlMlLmNwcCA6ICUuaWRsICQoU0NSSVBUUykgJChJRExf
QVRUUklCVVRFU19GSUxFKQogCUBlY2hvIEdlbmVyYXRpbmcgYmluZGluZ3MgZm9yICQqLi4uCi0J
QHBlcmwgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChXZWJLaXRUZXN0UnVubmVyKS9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncyAtSSAkKFdlYktpdFRlc3RSdW5uZXIpL1VJU2NyaXB0Q29udGV4dC9C
aW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMg
IiIgLS1pbmNsdWRlIEluamVjdGVkQnVuZGxlL0JpbmRpbmdzIC0taW5jbHVkZSBVSVNjcmlwdENv
bnRleHQvQmluZGluZ3MgLS1vdXRwdXREaXIgLiAtLWdlbmVyYXRvciBUZXN0UnVubmVyIC0taWRs
QXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAkPAorCUBlY2hvIEZFQVRVUkVf
QU5EX1BMQVRGT1JNX0RFRklORVMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykiCisJ
JChQRVJMKSAtSSAkKFdlYkNvcmVTY3JpcHRzKSAtSSAkKFdlYktpdFRlc3RSdW5uZXIpL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzIC1JICQoV2ViS2l0VGVzdFJ1bm5lcikvVUlTY3JpcHRDb250ZXh0
L0JpbmRpbmdzICQoV2ViQ29yZVNjcmlwdHMpL2dlbmVyYXRlLWJpbmRpbmdzLnBsIC0tZGVmaW5l
cyAiJChGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTKSIgLS1pbmNsdWRlIEluamVjdGVkQnVu
ZGxlL0JpbmRpbmdzIC0taW5jbHVkZSBVSVNjcmlwdENvbnRleHQvQmluZGluZ3MgLS1vdXRwdXRE
aXIgLiAtLWdlbmVyYXRvciBUZXN0UnVubmVyIC0taWRsQXR0cmlidXRlc0ZpbGUgJChJRExfQVRU
UklCVVRFU19GSUxFKSAkPAogCiBhbGwgOiBcCiAgICAgJChJTkpFQ1RFRF9CVU5ETEVfSU5URVJG
QUNFUzolPUpTJS5oKSBcCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50
U2VuZGVyUHJveHkuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5o
CmluZGV4IDFhMTk4NzQzNTY3YThhNmVjZDRkNGVlZTY4MTE3MTg5YWJkZmM5ZjIuLjE4ZmE4OTJl
NDI3YzAwMGNkMzU3ZmUxMWQ4NDVlYzIwOWNmMjExZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvRXZlbnRTZW5kZXJQcm94eS5oCkBAIC04Nyw2ICs4NywxMyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjYW5jZWxUb3VjaFBvaW50KGludCBpbmRleCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNQUNf
R0VTVFVSRV9FVkVOVFMpCisgICAgLy8gR2VzdHVyZSBldmVudHMuCisgICAgdm9pZCBzY2FsZUdl
c3R1cmVTdGFydChkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGVHZXN0dXJlQ2hhbmdlKGRv
dWJsZSBzY2FsZSk7CisgICAgdm9pZCBzY2FsZUdlc3R1cmVFbmQoZG91YmxlIHNjYWxlKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIFRlc3RDb250cm9sbGVyKiBtX3Rlc3RDb250cm9sbGVyOwog
CkBAIC0xMjEsNyArMTI4LDcgQEAgcHJpdmF0ZToKICAgICBXS0V2ZW50TW91c2VCdXR0b24gbV9j
bGlja0J1dHRvbiB7IGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbiB9OwogICAgIHVuc2lnbmVk
IG1fbW91c2VCdXR0b25zQ3VycmVudGx5RG93biB7IDAgfTsKICNpZiBQTEFURk9STShDT0NPQSkK
LSAgICBpbnQgZXZlbnROdW1iZXIgeyAwIH07CisgICAgaW50IG1fZXZlbnROdW1iZXIgeyAwIH07
CiAjZW5kaWYKICNpZiBQTEFURk9STShXUEUpCiAgICAgdWludDMyX3QgbV9idXR0b25TdGF0ZSB7
IDAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCmlu
ZGV4IGMxZDJjNDg3MWI3NmFlZGE2NmJhNWU4YzBkOTI5Y2NhMGIzZDkzZjcuLmM5MDIzZTEyN2Zj
NWUzNGM4NTk3NWRlNzQyMjI2NjhmMGUwZDk1OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9F
dmVudFNlbmRpbmdDb250cm9sbGVyLmlkbApAQCAtNzEsNSArNzEsMTIgQEAgaW50ZXJmYWNlIEV2
ZW50U2VuZGluZ0NvbnRyb2xsZXIgewogICAgIHVuZGVmaW5lZCByZWxlYXNlVG91Y2hQb2ludChs
b25nIGluZGV4KTsKICAgICB1bmRlZmluZWQgY2FuY2VsVG91Y2hQb2ludChsb25nIGluZGV4KTsK
ICNlbmRpZgorCisjaWYgZGVmaW5lZChFTkFCTEVfTUFDX0dFU1RVUkVfRVZFTlRTKSAmJiBFTkFC
TEVfTUFDX0dFU1RVUkVfRVZFTlRTCisgICAgLy8gR2VzdHVyZSBldmVudHMuCisgICAgdW5kZWZp
bmVkIHNjYWxlR2VzdHVyZVN0YXJ0KGRvdWJsZSBzY2FsZSk7CisgICAgdW5kZWZpbmVkIHNjYWxl
R2VzdHVyZUNoYW5nZShkb3VibGUgc2NhbGUpOworICAgIHVuZGVmaW5lZCBzY2FsZUdlc3R1cmVF
bmQoZG91YmxlIHNjYWxlKTsKKyNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5jcHAKaW5kZXggZjc0MTA2M2E4ZDUxNGQ5ZmRjODNhNDk2MjI3NDIyYzBmM2ZjNjQ5NS4uMmFl
OTY3OGQ3NzdjMjg5Nzk1NjgzMTBlNGVhNGRiNDMxNGU5MzRkMiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGlu
Z0NvbnRyb2xsZXIuY3BwCkBAIC02MTgsNiArNjE4LDM0IEBAIHZvaWQgRXZlbnRTZW5kaW5nQ29u
dHJvbGxlcjo6Y2FuY2VsVG91Y2hQb2ludChpbnQgaW5kZXgpCiAKICNlbmRpZgogCisjaWYgRU5B
QkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwordm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpz
Y2FsZUdlc3R1cmVTdGFydChkb3VibGUgc2NhbGUpCit7CisgICAgYXV0byBib2R5ID0gYWRvcHRX
SyhXS011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOworICAgIHNldFZhbHVlKGJvZHksICJTdWJN
ZXNzYWdlIiwgIlNjYWxlR2VzdHVyZVN0YXJ0Iik7CisgICAgc2V0VmFsdWUoYm9keSwgIlNjYWxl
Iiwgc2NhbGUpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJFdmVudFNlbmRlciIs
IGJvZHkpOworfQorCit2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OnNjYWxlR2VzdHVyZUNo
YW5nZShkb3VibGUgc2NhbGUpCit7CisgICAgYXV0byBib2R5ID0gYWRvcHRXSyhXS011dGFibGVE
aWN0aW9uYXJ5Q3JlYXRlKCkpOworICAgIHNldFZhbHVlKGJvZHksICJTdWJNZXNzYWdlIiwgIlNj
YWxlR2VzdHVyZUNoYW5nZSIpOworICAgIHNldFZhbHVlKGJvZHksICJTY2FsZSIsIHNjYWxlKTsK
KyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiRXZlbnRTZW5kZXIiLCBib2R5KTsKK30K
Kwordm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1cmVFbmQoZG91YmxlIHNj
YWxlKQoreworICAgIGF1dG8gYm9keSA9IGFkb3B0V0soV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0
ZSgpKTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU3ViTWVzc2FnZSIsICJTY2FsZUdlc3R1cmVFbmQi
KTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU2NhbGUiLCBzY2FsZSk7CisgICAgcG9zdFN5bmNocm9u
b3VzUGFnZU1lc3NhZ2UoIkV2ZW50U2VuZGVyIiwgYm9keSk7Cit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorCiAvLyBPYmplY3QgQ3JlYXRpb24KIAogdm9pZCBFdmVu
dFNlbmRpbmdDb250cm9sbGVyOjptYWtlV2luZG93T2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVu
dFNlbmRpbmdDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAppbmRleCA2OWMyODZmODMyNWI0YWVjN2UxZWZi
N2U2MWNmNTQzZDdmMTgyNGFmLi45ZWFlZjZhYWI3MWE5NjFjMDRkNTAxN2JmZjExMTMxYTFiNTc0
ZjhlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2
ZW50U2VuZGluZ0NvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaApAQCAtODksNiArODksMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgY2FuY2VsVG91Y2hQb2ludChpbnQgaW5kZXgpOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAgIHZvaWQgc2NhbGVHZXN0dXJlU3RhcnQo
ZG91YmxlIHNjYWxlKTsKKyAgICB2b2lkIHNjYWxlR2VzdHVyZUNoYW5nZShkb3VibGUgc2NhbGUp
OworICAgIHZvaWQgc2NhbGVHZXN0dXJlRW5kKGRvdWJsZSBzY2FsZSk7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBFdmVudFNlbmRpbmdDb250cm9sbGVyKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNlbmRl
clByb3h5SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
RXZlbnRTZW5kZXJQcm94eUlPUy5tbQppbmRleCBjMTFjOTdmY2UzNDE3NTJiYzQ3ZTE3OTJjZjFl
ZGFmNjJjOTI1ZDdhLi42MTQ0Mjg5MjgwOTBlOTQ0ZjVjMjYxN2M5YTRjOTEwY2ZjZTY5OWNmIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVu
dFNlbmRlclByb3h5SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KQEAgLTM5LDcgKzM5LDcgQEAgRXZlbnRT
ZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xs
ZXIpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG1fdGVzdENvbnRyb2xsZXIpOwogICAgIFVOVVNFRF9Q
QVJBTShtX2xlZnRNb3VzZUJ1dHRvbkRvd24pOwotICAgIFVOVVNFRF9QQVJBTShldmVudE51bWJl
cik7CisgICAgVU5VU0VEX1BBUkFNKG1fZXZlbnROdW1iZXIpOwogfQogCiBFdmVudFNlbmRlclBy
b3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2ggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCmlu
ZGV4IDU4ZDVmNzg2YWZiOTNkODAxMDc4YzM2NDRiMzgyNmEzZjc1YmYyNTAuLjlhNzY1YmEzMGI5
NjFlZjRjYzEzZGNmMTU0OWZlMmJkY2JhOGZlM2MgMTAwNzU1Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2gKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaApAQCAt
MTUsNSArMTUsNSBAQCBpZiBbICEgJENDIF07IHRoZW4KIGZpCiAKIGlmIFsgIiR7QUNUSU9OfSIg
PSAiYnVpbGQiIC1vICIke0FDVElPTn0iID0gImluc3RhbGwiIC1vICIke0FDVElPTn0iID0gImlu
c3RhbGxoZHJzIiBdOyB0aGVuCi0gICAgbWFrZSAtZiAiJHtXZWJLaXRUZXN0UnVubmVyfS9EZXJp
dmVkU291cmNlcy5tYWtlIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgICIk
e0FSR1NbQF19IgorICAgIG1ha2UgLWYgIiR7V2ViS2l0VGVzdFJ1bm5lcn0vRGVyaXZlZFNvdXJj
ZXMubWFrZSIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCBTREtST09UPSIk
e1NES1JPT1R9IiAiJHtBUkdTW0BdfSIKIGZpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCmluZGV4IGE1NWZhMGUyNGM3YzcwOWViNGRhMmFmMWFkMTlkZjZhMWUyMDAw
Y2UuLjE4MTc3M2M0NTE4MGQ0ZDE1MjQzYmE4ZTJkMDc2NWM5ODc3ZTRmYzggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNzc3LDYgKzE3NzcsMjcgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZShXS1N0cmluZ1JlZgogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKG51bGxwdHIpOwogICAgICAgICB9CiAjZW5kaWYKKworI2lmIEVOQUJMRShNQUNfR0VTVFVS
RV9FVkVOVFMpCisgICAgICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKHN1Yk1l
c3NhZ2VOYW1lLCAiU2NhbGVHZXN0dXJlU3RhcnQiKSkgeworICAgICAgICAgICAgYXV0byBzY2Fs
ZSA9IGRvdWJsZVZhbHVlKGRpY3Rpb25hcnksICJTY2FsZSIpOworICAgICAgICAgICAgbV9ldmVu
dFNlbmRlclByb3h5LT5zY2FsZUdlc3R1cmVTdGFydChzY2FsZSk7CisgICAgICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlNjYWxlR2VzdHVy
ZUNoYW5nZSIpKSB7CisgICAgICAgICAgICBhdXRvIHNjYWxlID0gZG91YmxlVmFsdWUoZGljdGlv
bmFyeSwgIlNjYWxlIik7CisgICAgICAgICAgICBtX2V2ZW50U2VuZGVyUHJveHktPnNjYWxlR2Vz
dHVyZUNoYW5nZShzY2FsZSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
bnVsbHB0cik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlNjYWxlR2VzdHVyZUVuZCIpKSB7CisgICAgICAgICAg
ICBhdXRvIHNjYWxlID0gZG91YmxlVmFsdWUoZGljdGlvbmFyeSwgIlNjYWxlIik7CisgICAgICAg
ICAgICBtX2V2ZW50U2VuZGVyUHJveHktPnNjYWxlR2VzdHVyZUVuZChzY2FsZSk7CisgICAgICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgICAgIH0KKyNlbmRp
ZiAvLyBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorCiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
RXZlbnRTZW5kZXJQcm94eS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2Vu
ZGVyUHJveHkubW0KaW5kZXggOGU5OTQ3YjBiMzI0MGYzZmMwOWIzYzZhZGI2NWU4ZjJlMDJjZmVk
NC4uODM5ZDUwODI3ZGQyZjFiM2Q2ZTkzYzAxMmViM2NkYmI4MWE2MzlhZiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCkBAIC01NCw2ICs1NCw3
IEBAIEBwdWJsaWMKICAgICBOU1BvaW50IF9ldmVudFNlbmRlcl9sb2NhdGlvbjsKICAgICBOU0lu
dGVnZXIgX2V2ZW50U2VuZGVyX3N0YWdlOwogICAgIGZsb2F0IF9ldmVudFNlbmRlcl9wcmVzc3Vy
ZTsKKyAgICBDR0Zsb2F0IF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9uOwogICAgIENHRmxvYXQg
X2V2ZW50U2VuZGVyX3N0YWdlVHJhbnNpdGlvbjsKICAgICBOU0V2ZW50UGhhc2UgX2V2ZW50U2Vu
ZGVyX3BoYXNlOwogICAgIE5TRXZlbnRQaGFzZSBfZXZlbnRTZW5kZXJfbW9tZW50dW1QaGFzZTsK
QEAgLTY1LDQwICs2Niw0MiBAQCBAcHVibGljCiB9CiAKIC0gKGlkKWluaXRQcmVzc3VyZUV2ZW50
QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlNQb2ludClnbG9i
YWxMb2NhdGlvbiBzdGFnZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNzdXJlOihmbG9hdClwcmVzc3Vy
ZSBzdGFnZVRyYW5zaXRpb246KGZsb2F0KXN0YWdlVHJhbnNpdGlvbiBwaGFzZTooTlNFdmVudFBo
YXNlKXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdl
cilldmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93OworLSAoaWQpaW5pdE1hZ25p
ZnlFdmVudEF0TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9p
bnQpZ2xvYmFsTG9jYXRpb24gbWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIHBo
YXNlOihOU0V2ZW50UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51
bWJlcjooTlNJbnRlZ2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7CiAt
IChOU1RpbWVJbnRlcnZhbCl0aW1lc3RhbXA7CiBAZW5kCiAKK3N0YXRpYyBDR1NHZXN0dXJlUGhh
c2UgRXZlbnRTZW5kZXJDR0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UoTlNFdmVudFBoYXNl
IHBoYXNlKQoreworICAgIHN3aXRjaCAocGhhc2UpIHsKKyAgICBjYXNlIE5TRXZlbnRQaGFzZU1h
eUJlZ2luOgorICAgICAgICByZXR1cm4ga0NHU0dlc3R1cmVQaGFzZU1heUJlZ2luOworCisgICAg
Y2FzZSBOU0V2ZW50UGhhc2VCZWdhbjoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VC
ZWdhbjsKKworICAgIGNhc2UgTlNFdmVudFBoYXNlQ2hhbmdlZDoKKyAgICAgICAgcmV0dXJuIGtD
R1NHZXN0dXJlUGhhc2VDaGFuZ2VkOworCisgICAgY2FzZSBOU0V2ZW50UGhhc2VDYW5jZWxsZWQ6
CisgICAgICAgIHJldHVybiBrQ0dTR2VzdHVyZVBoYXNlQ2FuY2VsbGVkOworCisgICAgY2FzZSBO
U0V2ZW50UGhhc2VFbmRlZDoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VFbmRlZDsK
KworICAgIGNhc2UgTlNFdmVudFBoYXNlTm9uZToKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1
cm4ga0NHU0dlc3R1cmVQaGFzZU5vbmU7CisgICAgfQorfQorCiBAaW1wbGVtZW50YXRpb24gRXZl
bnRTZW5kZXJTeW50aGV0aWNFdmVudAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFByZXNzdXJlRXZl
bnRBdExvY2F0aW9uOihOU1BvaW50KWxvY2F0aW9uIGdsb2JhbExvY2F0aW9uOihOU1BvaW50KWds
b2JhbExvY2F0aW9uIHN0YWdlOihOU0ludGVnZXIpc3RhZ2UgcHJlc3N1cmU6KGZsb2F0KXByZXNz
dXJlIHN0YWdlVHJhbnNpdGlvbjooZmxvYXQpc3RhZ2VUcmFuc2l0aW9uIHBoYXNlOihOU0V2ZW50
UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRl
Z2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKIHsKLSAgICBDR1NHZXN0
dXJlUGhhc2UgZ2VzdHVyZVBoYXNlOwotICAgIHN3aXRjaCAocGhhc2UpIHsKLSAgICBjYXNlIE5T
RXZlbnRQaGFzZU1heUJlZ2luOgotICAgICAgICBnZXN0dXJlUGhhc2UgPSBrQ0dTR2VzdHVyZVBo
YXNlTWF5QmVnaW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlQmVnYW46
Ci0gICAgICAgIGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VCZWdhbjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBOU0V2ZW50UGhhc2VDaGFuZ2VkOgotICAgICAgICBnZXN0dXJlUGhh
c2UgPSBrQ0dTR2VzdHVyZVBoYXNlQ2hhbmdlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBO
U0V2ZW50UGhhc2VDYW5jZWxsZWQ6Ci0gICAgICAgIGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJl
UGhhc2VDYW5jZWxsZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlRW5k
ZWQ6Ci0gICAgICAgIGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VFbmRlZDsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBOU0V2ZW50UGhhc2VOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VOb25lOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0KICAgICBhdXRvIGNnRXZlbnQgPSBhZG9wdENGKENHRXZlbnRDcmVhdGUobnVsbHB0
cikpOwogICAgIENHRXZlbnRTZXRUeXBlKGNnRXZlbnQuZ2V0KCksIChDR0V2ZW50VHlwZSlrQ0dT
RXZlbnRHZXN0dXJlKTsKLSAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5n
ZXQoKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSwgMzIpOwotICAgIENHRXZlbnRTZXRJbnRlZ2Vy
VmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVQaGFzZSwgZ2VzdHVyZVBo
YXNlKTsKKyAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NH
RXZlbnRHZXN0dXJlSElEVHlwZSwga0lPSElERXZlbnRUeXBlRm9yY2UpOworICAgIENHRXZlbnRT
ZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVQaGFzZSwg
RXZlbnRTZW5kZXJDR0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UocGhhc2UpKTsKICAgICBD
R0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudFN0YWdlUHJl
c3N1cmUsIHByZXNzdXJlKTsKICAgICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChjZ0V2ZW50
LmdldCgpLCBrQ0dFdmVudFRyYW5zaXRpb25Qcm9ncmVzcywgcHJlc3N1cmUpOwogICAgIENHRXZl
bnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVTdGFn
ZSwgc3RhZ2VUcmFuc2l0aW9uKTsKQEAgLTEyMyw2ICsxMjYsMjkgQEAgLSAoaW5zdGFuY2V0eXBl
KWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2Nh
dGlvbjooTlMKICAgICByZXR1cm4gc2VsZjsKIH0KIAorLSAoaWQpaW5pdE1hZ25pZnlFdmVudEF0
TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFs
TG9jYXRpb24gbWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIHBoYXNlOihOU0V2
ZW50UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJ
bnRlZ2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBhdXRv
IGNnRXZlbnQgPSBhZG9wdENGKENHRXZlbnRDcmVhdGUobnVsbHB0cikpOworICAgIENHRXZlbnRT
ZXRUeXBlKGNnRXZlbnQuZ2V0KCksIChDR0V2ZW50VHlwZSlrQ0dTRXZlbnRHZXN0dXJlKTsKKyAg
ICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0
dXJlSElEVHlwZSwga0lPSElERXZlbnRUeXBlWm9vbSk7CisgICAgQ0dFdmVudFNldEludGVnZXJW
YWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVBoYXNlLCBFdmVudFNlbmRl
ckNHR2VzdHVyZVBoYXNlRnJvbU5TRXZlbnRQaGFzZShwaGFzZSkpOworICAgIENHRXZlbnRTZXRE
b3VibGVWYWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSwg
bWFnbmlmaWNhdGlvbik7CisKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIF9pbml0V2l0aENHRXZl
bnQ6Y2dFdmVudC5nZXQoKSBldmVudFJlZjpudWxscHRyXSkpCisgICAgICAgIHJldHVybiBuaWw7
CisKKyAgICBfZXZlbnRTZW5kZXJfbG9jYXRpb24gPSBsb2NhdGlvbjsKKyAgICBfZXZlbnRTZW5k
ZXJfbG9jYXRpb25JbldpbmRvdyA9IGdsb2JhbExvY2F0aW9uOworICAgIF9ldmVudFNlbmRlcl9t
YWduaWZpY2F0aW9uID0gbWFnbmlmaWNhdGlvbjsKKyAgICBfZXZlbnRTZW5kZXJfcGhhc2UgPSBw
aGFzZTsKKyAgICBfZXZlbnRTZW5kZXJfdGltZXN0YW1wID0gdGltZTsKKyAgICBfZXZlbnRTZW5k
ZXJfZXZlbnROdW1iZXIgPSBldmVudE51bWJlcjsKKyAgICBfZXZlbnRTZW5kZXJfd2luZG93ID0g
d2luZG93OworICAgIF9ldmVudFNlbmRlcl90eXBlID0gTlNFdmVudFR5cGVNYWduaWZ5OworCisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKENHRmxvYXQpc3RhZ2VUcmFuc2l0aW9uCiB7CiAgICAg
cmV0dXJuIF9ldmVudFNlbmRlcl9zdGFnZVRyYW5zaXRpb247CkBAIC0xNjMsNiArMTg5LDExIEBA
IC0gKGZsb2F0KXByZXNzdXJlCiAgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9wcmVzc3VyZTsKIH0K
IAorLSAoQ0dGbG9hdCltYWduaWZpY2F0aW9uCit7CisgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9t
YWduaWZpY2F0aW9uOworfQorCiAtIChOU0V2ZW50UGhhc2UpcGhhc2UKIHsKICAgICByZXR1cm4g
X2V2ZW50U2VuZGVyX3BoYXNlOwpAQCAtMzA4LDcgKzMzOSw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VEb3duKHVuc2lnbmVkIGJ1dHRvbk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBt
b2RpZmllCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6
YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV90ZXN0Q29udHJvbGxlci0+
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
dmVudE51bWJlcjorK2V2ZW50TnVtYmVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJlciAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtMzM0LDcgKzM2
NSw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCBidXR0b25OdW1i
ZXIsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRF
dmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051
bWJlcjpbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSB3
aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjorK2V2ZW50TnVtYmVyIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJl
ciAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDptX2Ns
aWNrQ291bnQgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1
cmU6MC4wXTsKIApAQCAtMzY2LDcgKzM5Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2Vu
ZE1vdXNlRG93blRvU3RhcnRQcmVzc3VyZUV2ZW50cygpCiAgICAgICAgIHRpbWVzdGFtcDphYnNv
bHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQogICAgICAgICB3aW5kb3dO
dW1iZXI6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkg
d2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF0KLSAgICAgICAgZXZlbnROdW1iZXI6KytldmVudE51bWJlcgorICAgICAgICBldmVu
dE51bWJlcjorK21fZXZlbnROdW1iZXIKICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQK
ICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtMzkwLDcgKzQyMSw3IEBAIFJldGFpblB0cjxO
U0V2ZW50PiBFdmVudFNlbmRlclByb3h5OjpiZWdpblByZXNzdXJlRXZlbnQoaW50IHN0YWdlKQog
ICAgICAgICBzdGFnZVRyYW5zaXRpb246MAogICAgICAgICBwaGFzZTpOU0V2ZW50UGhhc2VCZWdh
bgogICAgICAgICB0aW1lOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1l
KCkpCi0gICAgICAgIGV2ZW50TnVtYmVyOisrZXZlbnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1i
ZXI6KyttX2V2ZW50TnVtYmVyCiAgICAgICAgIHdpbmRvdzpbbV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgd2luZG93XV0pOwogCiAgICAgcmV0dXJuIGV2ZW50
OwpAQCAtNDA1LDcgKzQzNiw3IEBAIFJldGFpblB0cjxOU0V2ZW50PiBFdmVudFNlbmRlclByb3h5
OjpwcmVzc3VyZUNoYW5nZUV2ZW50KGludCBzdGFnZSwgZmxvYXQgcHJlc3N1CiAgICAgICAgIHN0
YWdlVHJhbnNpdGlvbjpkaXJlY3Rpb24gPT0gUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkluY3Jl
YXNpbmcgPyAwLjUgOiAtMC41CiAgICAgICAgIHBoYXNlOk5TRXZlbnRQaGFzZUNoYW5nZWQKICAg
ICAgICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQot
ICAgICAgICBldmVudE51bWJlcjorK2V2ZW50TnVtYmVyCisgICAgICAgIGV2ZW50TnVtYmVyOisr
bV9ldmVudE51bWJlcgogICAgICAgICB3aW5kb3c6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtVmlldygpIHdpbmRvd11dKTsKIAogICAgIHJldHVybiBldmVudDsKQEAg
LTQzMCw3ICs0NjEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygp
CiAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50
VGltZSgpKQogICAgICAgICB3aW5kb3dOdW1iZXI6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtV2luZG93KCkgd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0KLSAgICAgICAgZXZlbnROdW1iZXI6Kytl
dmVudE51bWJlcgorICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKICAgICAgICAg
Y2xpY2tDb3VudDptX2NsaWNrQ291bnQKICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtNDY2
LDcgKzQ5Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZv
cmNlQ2xpY2soKQogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1
cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgd2luZG93TnVtYmVyOlttX3Rlc3RDb250cm9sbGVy
LT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIHdpbmRvd051bWJlcl0KICAgICAgICAg
Y29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCi0gICAgICAgIGV2ZW50
TnVtYmVyOisrZXZlbnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVy
CiAgICAgICAgIGNsaWNrQ291bnQ6bV9jbGlja0NvdW50CiAgICAgICAgIHByZXNzdXJlOjAuMF07
CiAKQEAgLTU2Nyw3ICs1OTgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgV0tTdHJpbmdSZWYgcG9pbnRlclR5cGUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZl
bnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvd051bWJlcjp2aWV3LndpbmRvdy53aW5kb3dOdW1iZXIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2
ZW50TnVtYmVyOisrZXZlbnROdW1iZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVyIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGlja0NvdW50OihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBtX2Ns
aWNrQ291bnQgOiAwKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZTowXTsKIApAQCAtODcyLDQgKzkwMyw2OCBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGlu
dAogICAgIH0KIH0KIAorI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6c2NhbGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKQoreworICAgIGF1
dG8gZXZlbnQgPSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBhbGxvY10gaW5p
dE1hZ25pZnlFdmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0
aW9uLnkpCisgICAgICAgIGdsb2JhbExvY2F0aW9uOihbbV90ZXN0Q29udHJvbGxlci0+bWFpbldl
YlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFrZVJlY3Qo
bV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pCisgICAgICAgIG1hZ25p
ZmljYXRpb246c2NhbGUKKyAgICAgICAgcGhhc2U6TlNFdmVudFBoYXNlQmVnYW4KKyAgICAgICAg
dGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQorICAgICAg
ICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKKyAgICAgICAgd2luZG93OlttX3Rlc3RDb250
cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddXSk7CisKKyAgICBp
ZiAoTlNWaWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCkt
PnBsYXRmb3JtVmlldygpIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkgeworICAg
ICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07CisgICAgICAgIFt0YXJn
ZXRWaWV3IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICBbTlNBcHAgX3Nl
dEN1cnJlbnRFdmVudDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9pbnQgd2luZG93
TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIFdURkxvZ0Fsd2F5
cygiZ2VzdHVyZVN0YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmlldyBhdCAlZiwlZlxu
Iiwgd2luZG93TG9jYXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7CisgICAgfQorfQorCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZUNoYW5nZShkb3VibGUgc2NhbGUpCit7Cisg
ICAgYXV0byBldmVudCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9j
XSBpbml0TWFnbmlmeUV2ZW50QXRMb2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1f
cG9zaXRpb24ueSkKKyAgICAgICAgZ2xvYmFsTG9jYXRpb246KFttX3Rlc3RDb250cm9sbGVyLT5t
YWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtl
UmVjdChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdpbikKKyAgICAgICAg
bWFnbmlmaWNhdGlvbjpzY2FsZQorICAgICAgICBwaGFzZTpOU0V2ZW50UGhhc2VDaGFuZ2VkCisg
ICAgICAgIHRpbWU6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkK
KyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVyCisgICAgICAgIHdpbmRvdzpbbV90
ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgd2luZG93XV0pOwor
CisgICAgaWYgKE5TVmlldyAqdGFyZ2V0VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2Vi
VmlldygpLT5wbGF0Zm9ybVZpZXcoKSBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV0p
IHsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAg
ICBbdGFyZ2V0VmlldyBtYWduaWZ5V2l0aEV2ZW50OmV2ZW50LmdldCgpXTsKKyAgICAgICAgW05T
QXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9IGVsc2UgeworICAgICAgICBOU1BvaW50
IHdpbmRvd0xvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOworICAgICAgICBXVEZM
b2dBbHdheXMoImdlc3R1cmVTdGFydCBmYWlsZWQgdG8gZmluZCB0aGUgdGFyZ2V0IHZpZXcgYXQg
JWYsJWZcbiIsIHdpbmRvd0xvY2F0aW9uLngsIHdpbmRvd0xvY2F0aW9uLnkpOworICAgIH0KK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVFbmQoZG91YmxlIHNjYWxlKQor
eworICAgIGF1dG8gZXZlbnQgPSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBh
bGxvY10gaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54
LCBtX3Bvc2l0aW9uLnkpCisgICAgICAgIGdsb2JhbExvY2F0aW9uOihbbV90ZXN0Q29udHJvbGxl
ci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5T
TWFrZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pCisgICAg
ICAgIG1hZ25pZmljYXRpb246c2NhbGUKKyAgICAgICAgcGhhc2U6TlNFdmVudFBoYXNlRW5kZWQK
KyAgICAgICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgp
KQorICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKKyAgICAgICAgd2luZG93Oltt
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddXSk7
CisKKyAgICBpZiAoTlNWaWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENvbnRyb2xsZXItPm1haW5X
ZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
XSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07CisgICAg
ICAgIFt0YXJnZXRWaWV3IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICBb
TlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9p
bnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiZ2VzdHVyZVN0YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmlldyBh
dCAlZiwlZlxuIiwgd2luZG93TG9jYXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7CisgICAgfQor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogfSAvLyBuYW1lc3Bh
Y2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZGVlZTI5NjUzMjAwNTk5N2UyODI3OWNlMDNlNDU0MWM5YTkyNDQ3Yy4u
MTQ3YjkzYjAzMzQxODAyYWFmNGI0OWUzMWM5YjhkYWM0MDNkN2Y2YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTA1LTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgYSB3YXkgdG8gY3JlYXRlIGAid2hlZWwiYCBldmVudHMgZnJvbSBnZXN0dXJl
L3RvdWNoIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI1Nzg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjcxNDMwOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2dl
c3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL2dlc3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAg
ICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA1LTE4ICBLZWl0aCBNaWxsZXIgIDxr
ZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlbXBvcmFyaWx5IHJldmVydCByMjc2
NTkyIGFzIGl0IGJyZWFrcyBzb21lIG5hdGl2ZSBhcHBzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2
ZTA3ZTk3ZjZhNjk2NjkxMjQwZjY1Y2FmNjdlNDM2OWNmZGMwYzljLi4yZDY4N2FjOTYzYzZjNDJh
MWM3MDI3ZGY3YzUxNjRiYjZiMGQxMTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUzLDYgKzUz
LDcgQEAgZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zLyBbIFNraXAgXQogZmFzdC9kZXZpY2Utb3Jp
ZW50YXRpb24gWyBTa2lwIF0KIGh0dHAvdGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBd
CiBmYXN0L2V2ZW50cy9jdXJzb3JzIFsgU2tpcCBdCitmYXN0L2V2ZW50cy9nZXN0dXJlIFsgU2tp
cCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBTa2lw
IF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIvaW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlZWI5YmE5NGZlZmQ2YzE2MGE0NDk1MmZlMjgwOTkwZDFl
ODdlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2dlc3R1cmUv
d2hlZWwtZnJvbS1nZXN0dXJlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU3IEBACitUZXN0cyB3
aGVlbCBldmVudCBkaXNwYXRjaGluZyBmb3IgZ2VzdHVyZSBldmVudHMuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitUZXN0IHRoYXQgd2hlZWwgZXZlbnRzIGFyZSBub3QgZGlzcGF0
Y2hlZCBpZiBnZXN0dXJlIGV2ZW50cyBhcmUgbm90IHByZXZlbnREZWZhdWx0LgorCitEaXNwYXRj
aGluZyAnZ2VzdHVyZXN0YXJ0Jy4uLgorSGFuZGxpbmcgJ2dlc3R1cmVzdGFydCcgZXZlbnQuLi4K
K0hhbmRsaW5nICd3aGVlbCcgZXZlbnQuLi4KK1BBU1MgZXZlbnQuY3RybEtleSBpcyB0cnVlCitQ
QVNTIGV2ZW50LmRlbHRhWSBpcyB3aXRoaW4gMC4wMSBvZiAtMQorCitEaXNwYXRjaGluZyAnZ2Vz
dHVyZWNoYW5nZScuLi4KK0hhbmRsaW5nICdnZXN0dXJlY2hhbmdlJyBldmVudC4uLgorSGFuZGxp
bmcgJ3doZWVsJyBldmVudC4uLgorUEFTUyBldmVudC5jdHJsS2V5IGlzIHRydWUKK1BBU1MgZXZl
bnQuZGVsdGFZIGlzIHdpdGhpbiAwLjAxIG9mIC0yCisKK0Rpc3BhdGNoaW5nICdnZXN0dXJlY2hh
bmdlJy4uLgorSGFuZGxpbmcgJ2dlc3R1cmVjaGFuZ2UnIGV2ZW50Li4uCitIYW5kbGluZyAnd2hl
ZWwnIGV2ZW50Li4uCitQQVNTIGV2ZW50LmN0cmxLZXkgaXMgdHJ1ZQorUEFTUyBldmVudC5kZWx0
YVkgaXMgd2l0aGluIDAuMDEgb2YgLTMKKworRGlzcGF0Y2hpbmcgJ2dlc3R1cmVlbmQnLi4uCitI
YW5kbGluZyAnZ2VzdHVyZWVuZCcgZXZlbnQuLi4KK0hhbmRsaW5nICd3aGVlbCcgZXZlbnQuLi4K
K1BBU1MgZXZlbnQuY3RybEtleSBpcyB0cnVlCitQQVNTIGV2ZW50LmRlbHRhWSBpcyB3aXRoaW4g
MC4wMSBvZiAtNAorCitUZXN0IHRoYXQgd2hlZWwgZXZlbnRzIGFyZSBub3QgZGlzcGF0Y2hlZCBp
ZiBnZXN0dXJlIGV2ZW50cyBhcmUgcHJldmVudERlZmF1bHQuCisKK0Rpc3BhdGNoaW5nICdnZXN0
dXJlc3RhcnQnLi4uCitIYW5kbGluZyAnZ2VzdHVyZXN0YXJ0JyBldmVudC4uLgorQ2FsbGluZyBg
cHJldmVudERlZmF1bHRgLi4uCitQQVNTIGRpZERpc3BhdGNoV2hlZWwgaXMgZmFsc2UKKworRGlz
cGF0Y2hpbmcgJ2dlc3R1cmVjaGFuZ2UnLi4uCitIYW5kbGluZyAnZ2VzdHVyZWNoYW5nZScgZXZl
bnQuLi4KK0NhbGxpbmcgYHByZXZlbnREZWZhdWx0YC4uLgorUEFTUyBkaWREaXNwYXRjaFdoZWVs
IGlzIGZhbHNlCisKK0Rpc3BhdGNoaW5nICdnZXN0dXJlY2hhbmdlJy4uLgorSGFuZGxpbmcgJ2dl
c3R1cmVjaGFuZ2UnIGV2ZW50Li4uCitDYWxsaW5nIGBwcmV2ZW50RGVmYXVsdGAuLi4KK1BBU1Mg
ZGlkRGlzcGF0Y2hXaGVlbCBpcyBmYWxzZQorCitEaXNwYXRjaGluZyAnZ2VzdHVyZWVuZCcuLi4K
K0hhbmRsaW5nICdnZXN0dXJlZW5kJyBldmVudC4uLgorQ2FsbGluZyBgcHJldmVudERlZmF1bHRg
Li4uCitQQVNTIGRpZERpc3BhdGNoV2hlZWwgaXMgZmFsc2UKKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2dlc3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjczN2RhNDljOGIzODY0ZjUyM2YxMDQ0ODliNTA5YWJkZjVmMmJiNGYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5o
dG1sCkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisjdGFyZ2V0IHsKKyAgICBib3JkZXI6IDFweCBzb2xpZDsKKyAgICB3aWR0aDogMTAw
cHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgZXhw
ZWN0ZWRTY2FsZSA9IE5hTjsKK3ZhciBkaWREaXNwYXRjaFdoZWVsID0gZmFsc2U7CisKK2pzVGVz
dElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBkaXNwYXRjaEFuZEhhbmRsZUdlc3R1cmVFdmVu
dChldmVudFRvV2FpdEZvciwgc2NhbGUsIHNob3VsZFByZXZlbnREZWZhdWx0KSB7CisgICAgZGVi
dWcoIiIpOworCisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
KyAgICAgICAgZnVuY3Rpb24gd2hlZWxIYW5kbGVyKGV2ZW50KSB7CisgICAgICAgICAgICBkZWJ1
ZygiSGFuZGxpbmcgJ3doZWVsJyBldmVudC4uLiIpOworCisgICAgICAgICAgICBzaG91bGRCZVRy
dWUoImV2ZW50LmN0cmxLZXkiKTsKKyAgICAgICAgICAgIHNob3VsZEJlQ2xvc2VUbygiZXZlbnQu
ZGVsdGFZIiwgc2NhbGUgKiAtMTAwLCAwLjAxKTsKKworICAgICAgICAgICAgaWYgKCFzaG91bGRQ
cmV2ZW50RGVmYXVsdCkKKyAgICAgICAgICAgICAgICBoYW5kbGVkKCk7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBnZXN0dXJlSGFuZGxlcihldmVudCkgeworICAgICAgICAgICAgZGVi
dWcoYEhhbmRsaW5nICcke2V2ZW50LnR5cGV9JyBldmVudC4uLmApOworCisgICAgICAgICAgICBp
ZiAoIXNob3VsZFByZXZlbnREZWZhdWx0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgZGVidWcoIkNhbGxpbmcgYHByZXZlbnREZWZhdWx0YC4uLiIpOworICAgICAgICAg
ICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKworICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUg
PT09IGV2ZW50VG9XYWl0Rm9yKSB7CisgICAgICAgICAgICAgICAgZGlkRGlzcGF0Y2hXaGVlbCA9
IGZhbHNlOworICAgICAgICAgICAgICAgIC8vIEdpdmUgdGltZSBmb3IgYSBgIndoZWVsImAgZXZl
bnQgdG8gYmUgZGlzcGF0Y2hlZCBzbyBmYWlsdXJlcyBjYW4gYmUgZm91bmQuCisgICAgICAgICAg
ICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRmFs
c2UoImRpZERpc3BhdGNoV2hlZWwiKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCgpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gaGFuZGxlZCgpIHsKKyAgICAgICAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3Rl
bmVyKCJ3aGVlbCIsIHdoZWVsSGFuZGxlcik7CisgICAgICAgICAgICB0YXJnZXQucmVtb3ZlRXZl
bnRMaXN0ZW5lcigiZ2VzdHVyZXN0YXJ0IiwgZ2VzdHVyZUhhbmRsZXIpOworICAgICAgICAgICAg
dGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImdlc3R1cmVjaGFuZ2UiLCBnZXN0dXJlSGFuZGxl
cik7CisgICAgICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZ2VzdHVyZWVuZCIs
IGdlc3R1cmVIYW5kbGVyKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsIHdoZWVsSGFuZGxlciwge29u
Y2U6IHRydWV9KTsKKworICAgICAgICAvLyBBZGQgbGlzdGVuZXJzIGZvciBlYWNoIHBoYXNlIGp1
c3QgaW4gY2FzZSBtdWx0aXBsZSBhcmUgZGlzcGF0Y2hlZCAod2hpY2ggd291bGQgYmUgd3Jvbmcp
LgorICAgICAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZ2VzdHVyZXN0YXJ0IiwgZ2VzdHVy
ZUhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7CisgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVy
KCJnZXN0dXJlY2hhbmdlIiwgZ2VzdHVyZUhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7CisgICAgICAg
IHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJnZXN0dXJlZW5kIiwgZ2VzdHVyZUhhbmRsZXIsIHtv
bmNlOiB0cnVlfSk7CisKKyAgICAgICAgZGVidWcoYERpc3BhdGNoaW5nICcke2V2ZW50VG9XYWl0
Rm9yfScuLi5gKTsKKyAgICAgICAgc3dpdGNoIChldmVudFRvV2FpdEZvcikgeworICAgICAgICBj
YXNlICJnZXN0dXJlc3RhcnQiOgorICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVHZXN0dXJl
U3RhcnQoc2NhbGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgImdlc3R1cmVj
aGFuZ2UiOgorICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVHZXN0dXJlQ2hhbmdlKHNjYWxl
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJnZXN0dXJlZW5kIjoKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlR2VzdHVyZUVuZChzY2FsZSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgIH0pOworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkg
eworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGRlYnVnKCJGQUlMOiBU
aGlzIHRlc3QgcmVxdWlyZXMgd2luZG93LmV2ZW50U2VuZGVyLiIpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0Lm9mZnNldExlZnQg
KyAodGFyZ2V0Lm9mZnNldFdpZHRoIC8gMiksIHRhcmdldC5vZmZzZXRUb3AgKyAodGFyZ2V0Lm9m
ZnNldEhlaWdodCAvIDIpKTsKKworICAgIGRlYnVnKCJUZXN0IHRoYXQgd2hlZWwgZXZlbnRzIGFy
ZSBub3QgZGlzcGF0Y2hlZCBpZiBnZXN0dXJlIGV2ZW50cyBhcmUgbm90IHByZXZlbnREZWZhdWx0
LiIpOworICAgIGF3YWl0IGRpc3BhdGNoQW5kSGFuZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJlc3Rh
cnQiLCAwLjAxLCBmYWxzZSk7CisgICAgYXdhaXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZl
bnQoImdlc3R1cmVjaGFuZ2UiLCAwLjAyLCBmYWxzZSk7CisgICAgYXdhaXQgZGlzcGF0Y2hBbmRI
YW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1cmVjaGFuZ2UiLCAwLjAzLCBmYWxzZSk7CisgICAgYXdh
aXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1cmVlbmQiLCAwLjA0LCBmYWxz
ZSk7CisKKyAgICBkZWJ1ZygiIik7CisKKyAgICBkZWJ1ZygiVGVzdCB0aGF0IHdoZWVsIGV2ZW50
cyBhcmUgbm90IGRpc3BhdGNoZWQgaWYgZ2VzdHVyZSBldmVudHMgYXJlIHByZXZlbnREZWZhdWx0
LiIpOworICAgIGF3YWl0IGRpc3BhdGNoQW5kSGFuZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJlc3Rh
cnQiLCAwLjAxLCB0cnVlKTsKKyAgICBhd2FpdCBkaXNwYXRjaEFuZEhhbmRsZUdlc3R1cmVFdmVu
dCgiZ2VzdHVyZWNoYW5nZSIsIDAuMDIsIHRydWUpOworICAgIGF3YWl0IGRpc3BhdGNoQW5kSGFu
ZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJlY2hhbmdlIiwgMC4wMywgdHJ1ZSk7CisgICAgYXdhaXQg
ZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1cmVlbmQiLCAwLjA0LCB0cnVlKTsK
KworICAgIGRlYnVnKCIiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHdoZWVsIGV2ZW50IGRpc3BhdGNo
aW5nIGZvciBnZXN0dXJlIGV2ZW50cy4iKTsKKworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429032</attachid>
            <date>2021-05-18 22:45:18 -0700</date>
            <delta_ts>2021-05-19 15:29:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225788-20210518234517.patch</filename>
            <type>text/plain</type>
            <size>36130</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MDBhZGVjNDRiYTNmOTE4ZWE2MmRjODYxNzExNjMzMjdjNWY0OGExLi4y
YjJmNjIyMTdkNzc2MTA5MzAwYzJlNWMyNTk0MTBiZTVjY2M1MThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjEtMDUtMTggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIHdheSB0byBjcmVhdGUgYCJ3aGVlbCJgIGV2ZW50cyBmcm9tIGdl
c3R1cmUvdG91Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NzE0MzA4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZXZlbnRzL2dlc3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLmh0bWwKKworICAgICAgICBPdGhlciBi
cm93c2VycyBoYXZlIHRha2VuIHRoZSBhcHByb2FjaCBvZiBkaXNwYXRjaGluZyBgIndoZWVsImAg
ZXZlbnRzIHdpdGggYGN0cmxLZXlgIGFuZAorICAgICAgICBgZGVsdGFZYCB3aGVuIGhhbmRsaW5n
IG11bHRpLXRvdWNoIHBpbmNoLXRvLXpvb20gZ2VzdHVyZXMuIEFkZCBoZWxwZXIgZnVuY3Rpb25z
IHRvIGRvIHRoaXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50OjpjcmVhdGVGcm9tR2VzdHVyZSk6IEFkZGVkLgorCiAy
MDIxLTA1LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IFdURjo6TG9ja2VyIGZvciBsb2NraW5nIEJhc2VBdWRpb0NvbnRleHQncyBncmFwaCBsb2NrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAppbmRleCBh
NGIwMTdmZmQ2MWU3ZWQ2Mjk5MWIxNDY3MTFiZDM1OTNjOGY2OGEwLi4wMDNkZjM1ZmU5ZjU5NWRm
ZjY4NGI5MjkzOGNkNWU5NmRjZTc3MjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKQEAgLTI2LDEwICsyNiw2MiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogCisjaW5jbHVkZSAiU2Ny
b2xsYmFyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCisjaWYgRU5BQkxF
KE1BQ19HRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudE1hYy5o
IgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShNQUNfR0VTVFVS
RV9FVkVOVFMpCisKK1BsYXRmb3JtV2hlZWxFdmVudCBQbGF0Zm9ybVdoZWVsRXZlbnQ6OmNyZWF0
ZUZyb21HZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBwbGF0Zm9ybUdlc3R1cmVF
dmVudCwgZG91YmxlIGRlbHRhWSkKK3sKKyAgICAvLyBUaGlzIHRyaWVzIHRvIG1hdGNoIGFzIG11
Y2ggb2YgdGhlIGJlaGF2aW9yIG9mIGBXZWJLaXQ6OldlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
V2hlZWxFdmVudGAgYXMKKyAgICAvLyBwb3NzaWJsZSBhc3N1bWluZyBgLVtOU0V2ZW50IGhhc1By
ZWNpc2VTY3JvbGxpbmdEZWx0YXNdYCBhbmQgbm8gYC1bTlNFdmVudCBfc2Nyb2xsQ291bnRdYC4K
KworICAgIFBsYXRmb3JtV2hlZWxFdmVudCBwbGF0Zm9ybVdoZWVsRXZlbnQ7CisKKyAgICAvLyBQ
bGF0Zm9ybUV2ZW50CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fdGltZXN0YW1wID0gcGxhdGZv
cm1HZXN0dXJlRXZlbnQudGltZXN0YW1wKCk7CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fbW9k
aWZpZXJzID0gcGxhdGZvcm1HZXN0dXJlRXZlbnQubW9kaWZpZXJzKCkgfCBQbGF0Zm9ybUV2ZW50
OjpNb2RpZmllcjo6Q29udHJvbEtleTsKKworICAgIC8vIFBsYXRmb3JtV2hlZWxFdmVudAorICAg
IHBsYXRmb3JtV2hlZWxFdmVudC5tX3Bvc2l0aW9uID0gcGxhdGZvcm1HZXN0dXJlRXZlbnQucG9z
KCk7CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fZ2xvYmFsUG9zaXRpb24gPSBwbGF0Zm9ybUdl
c3R1cmVFdmVudC5nbG9iYWxQb3NpdGlvbigpOworICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX2Rl
bHRhWSA9IGRlbHRhWTsKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV93aGVlbFRpY2tzWSA9IGRl
bHRhWSAvIHN0YXRpY19jYXN0PGZsb2F0PihTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkp
OworICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX2hhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXMgPSB0
cnVlOworCisjaWYgRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQorICAgIHN3aXRjaCAocGxhdGZv
cm1HZXN0dXJlRXZlbnQudHlwZSgpKSB7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJl
U3RhcnQ6CisgICAgICAgIHBsYXRmb3JtV2hlZWxFdmVudC5tX3BoYXNlID0gZGVsdGFZID8gUGxh
dGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2FuIDogUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6Ok1h
eUJlZ2luOworICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9tb21lbnR1bVBoYXNlID0gZGVs
dGFZID8gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkJlZ2FuIDogUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2U6Ok5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUGxhdGZvcm1FdmVudDo6R2Vz
dHVyZUNoYW5nZToKKyAgICAgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fcGhhc2UgPSBwbGF0Zm9y
bVdoZWVsRXZlbnQubV9tb21lbnR1bVBoYXNlID0gZGVsdGFZID8gUGxhdGZvcm1XaGVlbEV2ZW50
UGhhc2U6OkNoYW5nZWQgOiBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6U3RhdGlvbmFyeTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlRW5kOgorICAgICAg
ICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9waGFzZSA9IHBsYXRmb3JtV2hlZWxFdmVudC5tX21vbWVu
dHVtUGhhc2UgPSBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZTo6RW5kZWQ7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQorCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgcGxhdGZvcm1XaGVlbEV2ZW50Lm1fdW5hY2NlbGVyYXRlZFNj
cm9sbGluZ0RlbHRhWSA9IGRlbHRhWTsKKyNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKKworICAg
IHJldHVybiBwbGF0Zm9ybVdoZWVsRXZlbnQ7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUFDX0dF
U1RVUkVfRVZFTlRTKQorCiAjaWYgRU5BQkxFKEtJTkVUSUNfU0NST0xMSU5HKQogCiBUZXh0U3Ry
ZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBw
aGFzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxF
dmVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKaW5k
ZXggZDcxNjkzNDZhMjQwMjNjMmE0Nzg3YWUzNDU0MGEzNzYwN2MwYTJkNS4uYzc0ODg3MDRjOGZk
NjQwNmU1NjExOWVjNWJkZjI4MDY0ZjhkZDJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmgKQEAgLTM2LDYgKzM2LDggQEAgY2xhc3MgVGV4dFN0cmVh
bTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQbGF0Zm9ybUdlc3R1cmVFdmVudDsK
KwogZW51bSBjbGFzcyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzIDogdWludDhfdCB7CiAgICAg
U2Nyb2xsaW5nVGhyZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKICAg
ICBNYWluVGhyZWFkRm9yU2Nyb2xsaW5nICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLApA
QCAtMTA2LDYgKzEwOCwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAorI2lmIEVOQUJMRShN
QUNfR0VTVFVSRV9FVkVOVFMpCisgICAgc3RhdGljIFBsYXRmb3JtV2hlZWxFdmVudCBjcmVhdGVG
cm9tR2VzdHVyZShjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYsIGRvdWJsZSBkZWx0YVkpOwor
I2VuZGlmCisKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgY29weVN3YXBwaW5nRGlyZWN0aW9uKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIFBsYXRmb3JtV2hlZWxFdmVudCBjb3B5ID0gKnRoaXM7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjU5OWFi
M2UwYzE4MzllYWY5ODM2NTljOTlkMTU0NmI1MDMxYjYyYi4uY2YwZmU4NTYzZjZlYWRlZTAxYjg0
NWFlYTQ0ZDQ0OGI0MjJkNDRhNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIxLTA1LTE4ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSB3YXkgdG8gY3JlYXRlIGAid2hl
ZWwiYCBldmVudHMgZnJvbSBnZXN0dXJlL3RvdWNoIGV2ZW50cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1Nzg4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83NjcxNDMwOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRT
ZW5kaW5nQ29udHJvbGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0dXJlU3RhcnQpOiBBZGRlZC4K
KyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0dXJlQ2hhbmdl
KTogQWRkZWQuCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OnNjYWxlR2Vz
dHVyZUVuZCk6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZVN5bmNocm9u
b3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9FdmVudFNlbmRlclByb3h5Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZl
bnRTZW5kZXJQcm94eS5tbToKKyAgICAgICAgKEV2ZW50U2VuZGVyQ0dHZXN0dXJlUGhhc2VGcm9t
TlNFdmVudFBoYXNlKToKKyAgICAgICAgKC1bRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBpbml0
UHJlc3N1cmVFdmVudEF0TG9jYXRpb246Z2xvYmFsTG9jYXRpb246c3RhZ2U6cHJlc3N1cmU6c3Rh
Z2VUcmFuc2l0aW9uOnBoYXNlOnRpbWU6ZXZlbnROdW1iZXI6d2luZG93Ol0pOgorICAgICAgICAo
LVtFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGluaXRNYWduaWZ5RXZlbnRBdExvY2F0aW9uOmds
b2JhbExvY2F0aW9uOm1hZ25pZmljYXRpb246cGhhc2U6dGltZTpldmVudE51bWJlcjp3aW5kb3c6
XSk6IEFkZGVkLgorICAgICAgICAoLVtFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IG1hZ25pZmlj
YXRpb25dKTogQWRkZWQuCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRG93
bik6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXApOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5OjpzZW5kTW91c2VEb3duVG9TdGFydFByZXNzdXJlRXZlbnRz
KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6YmVnaW5QcmVzc3VyZUV2ZW50KToK
KyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6cHJlc3N1cmVDaGFuZ2VFdmVudCk6Cisg
ICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljayk6CisgICAgICAg
IChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKToK
KyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8pOgorICAgICAgICAo
V1RSOjpFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVTdGFydCk6IEFkZGVkLgorICAgICAg
ICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVDaGFuZ2UpOiBBZGRlZC4KKyAg
ICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c2NhbGVHZXN0dXJlRW5kKTogQWRkZWQuCisg
ICAgICAgIEFsbG93IHRlc3RzIHRvIHN5bnRoZXNpemUgc2NhbGUgKGEuay5hLiBtYWduaWZ5KSBn
ZXN0dXJlIGV2ZW50cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW06CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OkV2ZW50U2VuZGVyUHJveHkpOgorICAgICAgICBEcml2ZS1ieTogUmVuYW1lIGBldmVu
dE51bWJlcmAgdG8gYG1fZXZlbnROdW1iZXJgIHNpbmNlIGl0J3MgYSBtZW1iZXIgdmFyaWFibGUu
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1z
b3VyY2VzLnNoOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgTWFrZSBzdXJlIHRvIHBhc3MgYWxsIGZlYXR1cmUgZmxhZ3Mgd2hlbiBnZW5l
cmF0aW5nIEpTIGZpbGVzIGZyb20gSURMIGZpbGVzLgorCiAyMDIxLTA1LTE4ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI3NzY3NS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMubWFr
ZQppbmRleCA0ZjYyY2I5Yjc3MWI3Njk5Mjk3M2E1Nzc3ZmY2MWUwNDhjYzU2NWI0Li5hMTA5M2Uy
MWFkNTIyOWVjMDY4YmJlNDlmNGI0NjkzZjllYTViMzgxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yNiw4ICsyNiwyMiBAQCBWUEFUSCA9IFwKICAg
ICAkKFdlYktpdFRlc3RSdW5uZXIpLy4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L0JpbmRpbmdzIFwKICMKIAorUEVSTCA9IHBlcmwKIFJVQlkgPSBydWJ5CiAKK2lmbmVxICgkKFNE
S1JPT1QpLCkKKyAgICBTREtfRkxBR1MgPSAtaXN5c3Jvb3QgJChTREtST09UKQorZW5kaWYKKwor
aWZlcSAoJChVU0VfTExWTV9UQVJHRVRfVFJJUExFU19GT1JfQ0xBTkcpLFlFUykKKyAgICBXS19D
VVJSRU5UX0FSQ0ggPSAkKHdvcmQgMSwgJChBUkNIUykpCisgICAgVEFSR0VUX1RSSVBMRV9GTEFH
UyA9IC10YXJnZXQgJChXS19DVVJSRU5UX0FSQ0gpLSQoTExWTV9UQVJHRVRfVFJJUExFX1ZFTkRP
UiktJChMTFZNX1RBUkdFVF9UUklQTEVfT1NfVkVSU0lPTikkKExMVk1fVEFSR0VUX1RSSVBMRV9T
VUZGSVgpCitlbmRpZgorCitGUkFNRVdPUktfRkxBR1MgOj0gJChzaGVsbCBlY2hvICQoQlVJTFRf
UFJPRFVDVFNfRElSKSAkKEZSQU1FV09SS19TRUFSQ0hfUEFUSFMpICQoU1lTVEVNX0ZSQU1FV09S
S19TRUFSQ0hfUEFUSFMpIHwgJChQRVJMKSAtZSAncHJpbnQgIi1GICIgLiBqb2luKCIgLUYgIiwg
c3BsaXQoIiAiLCA8PikpOycpCitIRUFERVJfRkxBR1MgOj0gJChzaGVsbCBlY2hvICQoQlVJTFRf
UFJPRFVDVFNfRElSKSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpICQoU1lTVEVNX0hFQURFUl9TRUFS
Q0hfUEFUSFMpIHwgJChQRVJMKSAtZSAncHJpbnQgIi1JIiAuIGpvaW4oIiAtSSIsIHNwbGl0KCIg
IiwgPD4pKTsnKQorRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUyA6PSAkKHNoZWxsICQoQ0Mp
IC1zdGQ9Z251KysxeiAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAkKFRBUkdFVF9UUklQ
TEVfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLWluY2x1ZGUgInd0
Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCAkKFBFUkwpIC1uZSAicHJpbnQgaWYgcy9cI2RlZmlu
ZSAoKEhBVkVffFVTRV98RU5BQkxFX3xXVEZfUExBVEZPUk1fKVx3KykgMS9cMS8iKQorCiBXRUJf
UFJFRkVSRU5DRVMgPSBcCiAgICAgJHtXVEZfQlVJTERfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzLnlhbWwgXAogICAgICR7V1RGX0JVSUxEX1NDUklQVFNfRElSfS9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwgXApAQCAtNzUsNyArODksOCBAQCBJRExf
QVRUUklCVVRFU19GSUxFID0gJChXZWJDb3JlU2NyaXB0cykvSURMQXR0cmlidXRlcy5qc29uCiAK
IEpTJS5oIEpTJS5jcHAgOiAlLmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkK
IAlAZWNobyBHZW5lcmF0aW5nIGJpbmRpbmdzIGZvciAkKi4uLgotCUBwZXJsIC1JICQoV2ViQ29y
ZVNjcmlwdHMpIC1JICQoV2ViS2l0VGVzdFJ1bm5lcikvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mg
LUkgJChXZWJLaXRUZXN0UnVubmVyKS9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MgJChXZWJDb3Jl
U2NyaXB0cykvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVzICIiIC0taW5jbHVkZSBJbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncyAtLWluY2x1ZGUgVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzIC0t
b3V0cHV0RGlyIC4gLS1nZW5lcmF0b3IgVGVzdFJ1bm5lciAtLWlkbEF0dHJpYnV0ZXNGaWxlICQo
SURMX0FUVFJJQlVURVNfRklMRSkgJDwKKwlAZWNobyBGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJ
TkVTICIkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMpIgorCSQoUEVSTCkgLUkgJChXZWJD
b3JlU2NyaXB0cykgLUkgJChXZWJLaXRUZXN0UnVubmVyKS9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cyAtSSAkKFdlYktpdFRlc3RSdW5uZXIpL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncyAkKFdlYkNv
cmVTY3JpcHRzKS9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiQoRkVBVFVSRV9BTkRf
UExBVEZPUk1fREVGSU5FUykiIC0taW5jbHVkZSBJbmplY3RlZEJ1bmRsZS9CaW5kaW5ncyAtLWlu
Y2x1ZGUgVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzIC0tb3V0cHV0RGlyIC4gLS1nZW5lcmF0b3Ig
VGVzdFJ1bm5lciAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgJDwK
IAogYWxsIDogXAogICAgICQoSU5KRUNURURfQlVORExFX0lOVEVSRkFDRVM6JT1KUyUuaCkgXApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAppbmRleCAxYTE5ODc0MzU2
N2E4YTZlY2Q0ZDRlZWU2ODExNzE4OWFiZGZjOWYyLi4xOGZhODkyZTQyN2MwMDBjZDM1N2ZlMTFk
ODQ1ZWMyMDljZjIxMWQzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50
U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJv
eHkuaApAQCAtODcsNiArODcsMTMgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsVG91Y2hQb2lu
dChpbnQgaW5kZXgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQor
ICAgIC8vIEdlc3R1cmUgZXZlbnRzLgorICAgIHZvaWQgc2NhbGVHZXN0dXJlU3RhcnQoZG91Ymxl
IHNjYWxlKTsKKyAgICB2b2lkIHNjYWxlR2VzdHVyZUNoYW5nZShkb3VibGUgc2NhbGUpOworICAg
IHZvaWQgc2NhbGVHZXN0dXJlRW5kKGRvdWJsZSBzY2FsZSk7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBUZXN0Q29udHJvbGxlciogbV90ZXN0Q29udHJvbGxlcjsKIApAQCAtMTIxLDcgKzEyOCw3
IEBAIHByaXZhdGU6CiAgICAgV0tFdmVudE1vdXNlQnV0dG9uIG1fY2xpY2tCdXR0b24geyBrV0tF
dmVudE1vdXNlQnV0dG9uTm9CdXR0b24gfTsKICAgICB1bnNpZ25lZCBtX21vdXNlQnV0dG9uc0N1
cnJlbnRseURvd24geyAwIH07CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaW50IGV2ZW50TnVt
YmVyIHsgMCB9OworICAgIGludCBtX2V2ZW50TnVtYmVyIHsgMCB9OwogI2VuZGlmCiAjaWYgUExB
VEZPUk0oV1BFKQogICAgIHVpbnQzMl90IG1fYnV0dG9uU3RhdGUgeyAwIH07CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbAppbmRleCBjMWQyYzQ4NzFiNzZh
ZWRhNjZiYTVlOGMwZDkyOWNjYTBiM2Q5M2Y3Li5jOTAyM2UxMjdmYzVlMzRjODU5NzVkZTc0MjIy
NjY4ZjBlMGQ5NTkzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvRXZlbnRTZW5kaW5nQ29udHJv
bGxlci5pZGwKQEAgLTcxLDUgKzcxLDEyIEBAIGludGVyZmFjZSBFdmVudFNlbmRpbmdDb250cm9s
bGVyIHsKICAgICB1bmRlZmluZWQgcmVsZWFzZVRvdWNoUG9pbnQobG9uZyBpbmRleCk7CiAgICAg
dW5kZWZpbmVkIGNhbmNlbFRvdWNoUG9pbnQobG9uZyBpbmRleCk7CiAjZW5kaWYKKworI2lmIGRl
ZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYgRU5BQkxFX01BQ19HRVNUVVJFX0VW
RU5UUworICAgIC8vIEdlc3R1cmUgZXZlbnRzLgorICAgIHVuZGVmaW5lZCBzY2FsZUdlc3R1cmVT
dGFydChkb3VibGUgc2NhbGUpOworICAgIHVuZGVmaW5lZCBzY2FsZUdlc3R1cmVDaGFuZ2UoZG91
YmxlIHNjYWxlKTsKKyAgICB1bmRlZmluZWQgc2NhbGVHZXN0dXJlRW5kKGRvdWJsZSBzY2FsZSk7
CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGY3NDEw
NjNhOGQ1MTRkOWZkYzgzYTQ5NjIyNzQyMmMwZjNmYzY0OTUuLjJhZTk2NzhkNzc3YzI4OTc5NTY4
MzEwZTRlYTRkYjQzMTRlOTM0ZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcApA
QCAtNjE4LDYgKzYxOCwzNCBAQCB2b2lkIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXI6OmNhbmNlbFRv
dWNoUG9pbnQoaW50IGluZGV4KQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCisKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0dXJlU3RhcnQo
ZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8gYm9keSA9IGFkb3B0V0soV0tNdXRhYmxlRGljdGlv
bmFyeUNyZWF0ZSgpKTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU3ViTWVzc2FnZSIsICJTY2FsZUdl
c3R1cmVTdGFydCIpOworICAgIHNldFZhbHVlKGJvZHksICJTY2FsZSIsIHNjYWxlKTsKKyAgICBw
b3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiRXZlbnRTZW5kZXIiLCBib2R5KTsKK30KKwordm9p
ZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1cmVDaGFuZ2UoZG91YmxlIHNjYWxl
KQoreworICAgIGF1dG8gYm9keSA9IGFkb3B0V0soV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgp
KTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU3ViTWVzc2FnZSIsICJTY2FsZUdlc3R1cmVDaGFuZ2Ui
KTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU2NhbGUiLCBzY2FsZSk7CisgICAgcG9zdFN5bmNocm9u
b3VzUGFnZU1lc3NhZ2UoIkV2ZW50U2VuZGVyIiwgYm9keSk7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
aW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0dXJlRW5kKGRvdWJsZSBzY2FsZSkKK3sKKyAgICBhdXRv
IGJvZHkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CisgICAgc2V0VmFs
dWUoYm9keSwgIlN1Yk1lc3NhZ2UiLCAiU2NhbGVHZXN0dXJlRW5kIik7CisgICAgc2V0VmFsdWUo
Ym9keSwgIlNjYWxlIiwgc2NhbGUpOworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJF
dmVudFNlbmRlciIsIGJvZHkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VW
RU5UUykKKwogLy8gT2JqZWN0IENyZWF0aW9uCiAKIHZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxl
cjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29udGV4dCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdD
b250cm9sbGVyLmgKaW5kZXggNjljMjg2ZjgzMjViNGFlYzdlMWVmYjdlNjFjZjU0M2Q3ZjE4MjRh
Zi4uOWVhZWY2YWFiNzFhOTYxYzA0ZDUwMTdiZmYxMTEzMWExYjU3NGY4ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNl
bmRpbmdDb250cm9sbGVyLmgKQEAgLTg5LDYgKzg5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGNh
bmNlbFRvdWNoUG9pbnQoaW50IGluZGV4KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKE1BQ19HRVNU
VVJFX0VWRU5UUykKKyAgICB2b2lkIHNjYWxlR2VzdHVyZVN0YXJ0KGRvdWJsZSBzY2FsZSk7Cisg
ICAgdm9pZCBzY2FsZUdlc3R1cmVDaGFuZ2UoZG91YmxlIHNjYWxlKTsKKyAgICB2b2lkIHNjYWxl
R2VzdHVyZUVuZChkb3VibGUgc2NhbGUpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgRXZlbnRT
ZW5kaW5nQ29udHJvbGxlcigpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0V2ZW50U2VuZGVyUHJveHlJ
T1MubW0KaW5kZXggYzExYzk3ZmNlMzQxNzUyYmM0N2UxNzkyY2YxZWRhZjYyYzkyNWQ3YS4uNjE0
NDI4OTI4MDkwZTk0NGY1YzI2MTdjOWE0YzkxMGNmY2U2OTljZiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5t
bQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9FdmVudFNl
bmRlclByb3h5SU9TLm1tCkBAIC0zOSw3ICszOSw3IEBAIEV2ZW50U2VuZGVyUHJveHk6OkV2ZW50
U2VuZGVyUHJveHkoVGVzdENvbnRyb2xsZXIqIHRlc3RDb250cm9sbGVyKQogewogICAgIFVOVVNF
RF9QQVJBTShtX3Rlc3RDb250cm9sbGVyKTsKICAgICBVTlVTRURfUEFSQU0obV9sZWZ0TW91c2VC
dXR0b25Eb3duKTsKLSAgICBVTlVTRURfUEFSQU0oZXZlbnROdW1iZXIpOworICAgIFVOVVNFRF9Q
QVJBTShtX2V2ZW50TnVtYmVyKTsKIH0KIAogRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVy
UHJveHkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Nj
cmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaAppbmRleCA1OGQ1Zjc4NmFmYjkz
ZDgwMTA3OGMzNjQ0YjM4MjZhM2Y3NWJmMjUwLi45YTc2NWJhMzBiOTYxZWY0Y2MxM2RjZjE1NDlm
ZTJiZGNiYThmZTNjIDEwMDc1NQotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1NjcmlwdHMv
Z2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
U2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2gKQEAgLTE1LDUgKzE1LDUgQEAgaWYg
WyAhICRDQyBdOyB0aGVuCiBmaQogCiBpZiBbICIke0FDVElPTn0iID0gImJ1aWxkIiAtbyAiJHtB
Q1RJT059IiA9ICJpbnN0YWxsIiAtbyAiJHtBQ1RJT059IiA9ICJpbnN0YWxsaGRycyIgXTsgdGhl
bgotICAgIG1ha2UgLWYgIiR7V2ViS2l0VGVzdFJ1bm5lcn0vRGVyaXZlZFNvdXJjZXMubWFrZSIg
LWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1YCAiJHtBUkdTW0BdfSIKKyAgICBt
YWtlIC1mICIke1dlYktpdFRlc3RSdW5uZXJ9L0Rlcml2ZWRTb3VyY2VzLm1ha2UiIC1qIGAvdXNy
L3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD0iJHtTREtST09UfSIgIiR7QVJH
U1tAXX0iCiBmaQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRl
eCBhNTVmYTBlMjRjN2M3MDllYjRkYTJhZjFhZDE5ZGY2YTFlMjAwMGNlLi4xODE3NzNjNDUxODBk
NGQxNTI0M2JhOGUyZDA3NjVjOTg3N2U0ZmM4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcApAQCAtMTc3Nyw2ICsxNzc3LDI3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJp
bmdSZWYKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKICAg
ICAgICAgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAgICAg
ICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhzdWJNZXNzYWdlTmFtZSwgIlNjYWxl
R2VzdHVyZVN0YXJ0IikpIHsKKyAgICAgICAgICAgIGF1dG8gc2NhbGUgPSBkb3VibGVWYWx1ZShk
aWN0aW9uYXJ5LCAiU2NhbGUiKTsKKyAgICAgICAgICAgIG1fZXZlbnRTZW5kZXJQcm94eS0+c2Nh
bGVHZXN0dXJlU3RhcnQoc2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTY2FsZUdlc3R1cmVDaGFuZ2UiKSkgeworICAg
ICAgICAgICAgYXV0byBzY2FsZSA9IGRvdWJsZVZhbHVlKGRpY3Rpb25hcnksICJTY2FsZSIpOwor
ICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5zY2FsZUdlc3R1cmVDaGFuZ2Uoc2NhbGUp
OworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2Fn
ZU5hbWUsICJTY2FsZUdlc3R1cmVFbmQiKSkgeworICAgICAgICAgICAgYXV0byBzY2FsZSA9IGRv
dWJsZVZhbHVlKGRpY3Rpb25hcnksICJTY2FsZSIpOworICAgICAgICAgICAgbV9ldmVudFNlbmRl
clByb3h5LT5zY2FsZUdlc3R1cmVFbmQoc2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICB9CisjZW5kaWYgLy8gRU5BQkxFKE1BQ19H
RVNUVVJFX0VWRU5UUykKKwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHku
bW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tCmluZGV4
IDhlOTk0N2IwYjMyNDBmM2ZjMDliM2M2YWRiNjVlOGYyZTAyY2ZlZDQuLmE5MjNjN2NkNmJmOTM1
NmY3NDVmYmQ1YWRkYmUzZjlhN2EzYTNkOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpAQCAtNTQsNiArNTQsNyBAQCBAcHVibGljCiAgICAg
TlNQb2ludCBfZXZlbnRTZW5kZXJfbG9jYXRpb247CiAgICAgTlNJbnRlZ2VyIF9ldmVudFNlbmRl
cl9zdGFnZTsKICAgICBmbG9hdCBfZXZlbnRTZW5kZXJfcHJlc3N1cmU7CisgICAgQ0dGbG9hdCBf
ZXZlbnRTZW5kZXJfbWFnbmlmaWNhdGlvbjsKICAgICBDR0Zsb2F0IF9ldmVudFNlbmRlcl9zdGFn
ZVRyYW5zaXRpb247CiAgICAgTlNFdmVudFBoYXNlIF9ldmVudFNlbmRlcl9waGFzZTsKICAgICBO
U0V2ZW50UGhhc2UgX2V2ZW50U2VuZGVyX21vbWVudHVtUGhhc2U7CkBAIC02NSw0MCArNjYsNDIg
QEAgQHB1YmxpYwogfQogCiAtIChpZClpbml0UHJlc3N1cmVFdmVudEF0TG9jYXRpb246KE5TUG9p
bnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFsTG9jYXRpb24gc3RhZ2U6
KE5TSW50ZWdlcilzdGFnZSBwcmVzc3VyZTooZmxvYXQpcHJlc3N1cmUgc3RhZ2VUcmFuc2l0aW9u
OihmbG9hdClzdGFnZVRyYW5zaXRpb24gcGhhc2U6KE5TRXZlbnRQaGFzZSlwaGFzZSB0aW1lOihO
U1RpbWVJbnRlcnZhbCl0aW1lIGV2ZW50TnVtYmVyOihOU0ludGVnZXIpZXZlbnROdW1iZXIgd2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdzsKKy0gKGlkKWluaXRNYWduaWZ5RXZlbnRBdExvY2F0aW9u
OihOU1BvaW50KWxvY2F0aW9uIGdsb2JhbExvY2F0aW9uOihOU1BvaW50KWdsb2JhbExvY2F0aW9u
IG1hZ25pZmljYXRpb246KENHRmxvYXQpbWFnbmlmaWNhdGlvbiBwaGFzZTooTlNFdmVudFBoYXNl
KXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcill
dmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93OwogLSAoTlNUaW1lSW50ZXJ2YWwp
dGltZXN0YW1wOwogQGVuZAogCitzdGF0aWMgQ0dTR2VzdHVyZVBoYXNlIEV2ZW50U2VuZGVyQ0dH
ZXN0dXJlUGhhc2VGcm9tTlNFdmVudFBoYXNlKE5TRXZlbnRQaGFzZSBwaGFzZSkKK3sKKyAgICBz
d2l0Y2ggKHBoYXNlKSB7CisgICAgY2FzZSBOU0V2ZW50UGhhc2VNYXlCZWdpbjoKKyAgICAgICAg
cmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VNYXlCZWdpbjsKKworICAgIGNhc2UgTlNFdmVudFBoYXNl
QmVnYW46CisgICAgICAgIHJldHVybiBrQ0dTR2VzdHVyZVBoYXNlQmVnYW47CisKKyAgICBjYXNl
IE5TRXZlbnRQaGFzZUNoYW5nZWQ6CisgICAgICAgIHJldHVybiBrQ0dTR2VzdHVyZVBoYXNlQ2hh
bmdlZDsKKworICAgIGNhc2UgTlNFdmVudFBoYXNlQ2FuY2VsbGVkOgorICAgICAgICByZXR1cm4g
a0NHU0dlc3R1cmVQaGFzZUNhbmNlbGxlZDsKKworICAgIGNhc2UgTlNFdmVudFBoYXNlRW5kZWQ6
CisgICAgICAgIHJldHVybiBrQ0dTR2VzdHVyZVBoYXNlRW5kZWQ7CisKKyAgICBjYXNlIE5TRXZl
bnRQaGFzZU5vbmU6CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhh
c2VOb25lOworICAgIH0KK30KKwogQGltcGxlbWVudGF0aW9uIEV2ZW50U2VuZGVyU3ludGhldGlj
RXZlbnQKIAogLSAoaW5zdGFuY2V0eXBlKWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjooTlNQ
b2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlNQb2ludClnbG9iYWxMb2NhdGlvbiBzdGFn
ZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNzdXJlOihmbG9hdClwcmVzc3VyZSBzdGFnZVRyYW5zaXRp
b246KGZsb2F0KXN0YWdlVHJhbnNpdGlvbiBwaGFzZTooTlNFdmVudFBoYXNlKXBoYXNlIHRpbWU6
KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcilldmVudE51bWJlciB3
aW5kb3c6KE5TV2luZG93ICopd2luZG93CiB7Ci0gICAgQ0dTR2VzdHVyZVBoYXNlIGdlc3R1cmVQ
aGFzZTsKLSAgICBzd2l0Y2ggKHBoYXNlKSB7Ci0gICAgY2FzZSBOU0V2ZW50UGhhc2VNYXlCZWdp
bjoKLSAgICAgICAgZ2VzdHVyZVBoYXNlID0ga0NHU0dlc3R1cmVQaGFzZU1heUJlZ2luOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIE5TRXZlbnRQaGFzZUJlZ2FuOgotICAgICAgICBnZXN0dXJl
UGhhc2UgPSBrQ0dTR2VzdHVyZVBoYXNlQmVnYW47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
TlNFdmVudFBoYXNlQ2hhbmdlZDoKLSAgICAgICAgZ2VzdHVyZVBoYXNlID0ga0NHU0dlc3R1cmVQ
aGFzZUNoYW5nZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlQ2FuY2Vs
bGVkOgotICAgICAgICBnZXN0dXJlUGhhc2UgPSBrQ0dTR2VzdHVyZVBoYXNlQ2FuY2VsbGVkOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIE5TRXZlbnRQaGFzZUVuZGVkOgotICAgICAgICBnZXN0
dXJlUGhhc2UgPSBrQ0dTR2VzdHVyZVBoYXNlRW5kZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgTlNFdmVudFBoYXNlTm9uZToKLSAgICBkZWZhdWx0OgotICAgICAgICBnZXN0dXJlUGhhc2Ug
PSBrQ0dTR2VzdHVyZVBoYXNlTm9uZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCiAgICAgYXV0
byBjZ0V2ZW50ID0gYWRvcHRDRihDR0V2ZW50Q3JlYXRlKG51bGxwdHIpKTsKICAgICBDR0V2ZW50
U2V0VHlwZShjZ0V2ZW50LmdldCgpLCAoQ0dFdmVudFR5cGUpa0NHU0V2ZW50R2VzdHVyZSk7Ci0g
ICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2Vz
dHVyZUhJRFR5cGUsIDMyKTsKLSAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVu
dC5nZXQoKSwga0NHRXZlbnRHZXN0dXJlUGhhc2UsIGdlc3R1cmVQaGFzZSk7CisgICAgQ0dFdmVu
dFNldEludGVnZXJWYWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUsIDMyIC8qIGtJT0hJREV2ZW50VHlwZUZvcmNlICovKTsKKyAgICBDR0V2ZW50U2V0SW50ZWdl
clZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0dXJlUGhhc2UsIEV2ZW50U2Vu
ZGVyQ0dHZXN0dXJlUGhhc2VGcm9tTlNFdmVudFBoYXNlKHBoYXNlKSk7CiAgICAgQ0dFdmVudFNl
dERvdWJsZVZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRTdGFnZVByZXNzdXJlLCBw
cmVzc3VyZSk7CiAgICAgQ0dFdmVudFNldERvdWJsZVZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwg
a0NHRXZlbnRUcmFuc2l0aW9uUHJvZ3Jlc3MsIHByZXNzdXJlKTsKICAgICBDR0V2ZW50U2V0SW50
ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0dXJlU3RhZ2UsIHN0YWdl
VHJhbnNpdGlvbik7CkBAIC0xMjMsNiArMTI2LDI5IEBAIC0gKGluc3RhbmNldHlwZSlpbml0UHJl
c3N1cmVFdmVudEF0TG9jYXRpb246KE5TUG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5T
CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKGlkKWluaXRNYWduaWZ5RXZlbnRBdExvY2F0aW9u
OihOU1BvaW50KWxvY2F0aW9uIGdsb2JhbExvY2F0aW9uOihOU1BvaW50KWdsb2JhbExvY2F0aW9u
IG1hZ25pZmljYXRpb246KENHRmxvYXQpbWFnbmlmaWNhdGlvbiBwaGFzZTooTlNFdmVudFBoYXNl
KXBoYXNlIHRpbWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcill
dmVudE51bWJlciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93Cit7CisgICAgYXV0byBjZ0V2ZW50
ID0gYWRvcHRDRihDR0V2ZW50Q3JlYXRlKG51bGxwdHIpKTsKKyAgICBDR0V2ZW50U2V0VHlwZShj
Z0V2ZW50LmdldCgpLCAoQ0dFdmVudFR5cGUpa0NHU0V2ZW50R2VzdHVyZSk7CisgICAgQ0dFdmVu
dFNldEludGVnZXJWYWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZUhJRFR5
cGUsIDggLyoga0lPSElERXZlbnRUeXBlWm9vbSAqLyk7CisgICAgQ0dFdmVudFNldEludGVnZXJW
YWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVBoYXNlLCBFdmVudFNlbmRl
ckNHR2VzdHVyZVBoYXNlRnJvbU5TRXZlbnRQaGFzZShwaGFzZSkpOworICAgIENHRXZlbnRTZXRE
b3VibGVWYWx1ZUZpZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSwg
bWFnbmlmaWNhdGlvbik7CisKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIF9pbml0V2l0aENHRXZl
bnQ6Y2dFdmVudC5nZXQoKSBldmVudFJlZjpudWxscHRyXSkpCisgICAgICAgIHJldHVybiBuaWw7
CisKKyAgICBfZXZlbnRTZW5kZXJfbG9jYXRpb24gPSBsb2NhdGlvbjsKKyAgICBfZXZlbnRTZW5k
ZXJfbG9jYXRpb25JbldpbmRvdyA9IGdsb2JhbExvY2F0aW9uOworICAgIF9ldmVudFNlbmRlcl9t
YWduaWZpY2F0aW9uID0gbWFnbmlmaWNhdGlvbjsKKyAgICBfZXZlbnRTZW5kZXJfcGhhc2UgPSBw
aGFzZTsKKyAgICBfZXZlbnRTZW5kZXJfdGltZXN0YW1wID0gdGltZTsKKyAgICBfZXZlbnRTZW5k
ZXJfZXZlbnROdW1iZXIgPSBldmVudE51bWJlcjsKKyAgICBfZXZlbnRTZW5kZXJfd2luZG93ID0g
d2luZG93OworICAgIF9ldmVudFNlbmRlcl90eXBlID0gTlNFdmVudFR5cGVNYWduaWZ5OworCisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKENHRmxvYXQpc3RhZ2VUcmFuc2l0aW9uCiB7CiAgICAg
cmV0dXJuIF9ldmVudFNlbmRlcl9zdGFnZVRyYW5zaXRpb247CkBAIC0xNjMsNiArMTg5LDExIEBA
IC0gKGZsb2F0KXByZXNzdXJlCiAgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9wcmVzc3VyZTsKIH0K
IAorLSAoQ0dGbG9hdCltYWduaWZpY2F0aW9uCit7CisgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9t
YWduaWZpY2F0aW9uOworfQorCiAtIChOU0V2ZW50UGhhc2UpcGhhc2UKIHsKICAgICByZXR1cm4g
X2V2ZW50U2VuZGVyX3BoYXNlOwpAQCAtMzA4LDcgKzMzOSw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VEb3duKHVuc2lnbmVkIGJ1dHRvbk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBt
b2RpZmllCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6
YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV90ZXN0Q29udHJvbGxlci0+
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0
IGN1cnJlbnRDb250ZXh0XSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
dmVudE51bWJlcjorK2V2ZW50TnVtYmVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJlciAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtMzM0LDcgKzM2
NSw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCBidXR0b25OdW1i
ZXIsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRF
dmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051
bWJlcjpbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSB3
aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjorK2V2ZW50TnVtYmVyIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJl
ciAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDptX2Ns
aWNrQ291bnQgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1
cmU6MC4wXTsKIApAQCAtMzY2LDcgKzM5Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2Vu
ZE1vdXNlRG93blRvU3RhcnRQcmVzc3VyZUV2ZW50cygpCiAgICAgICAgIHRpbWVzdGFtcDphYnNv
bHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQogICAgICAgICB3aW5kb3dO
dW1iZXI6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkg
d2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50
Q29udGV4dF0KLSAgICAgICAgZXZlbnROdW1iZXI6KytldmVudE51bWJlcgorICAgICAgICBldmVu
dE51bWJlcjorK21fZXZlbnROdW1iZXIKICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQK
ICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtMzkwLDcgKzQyMSw3IEBAIFJldGFpblB0cjxO
U0V2ZW50PiBFdmVudFNlbmRlclByb3h5OjpiZWdpblByZXNzdXJlRXZlbnQoaW50IHN0YWdlKQog
ICAgICAgICBzdGFnZVRyYW5zaXRpb246MAogICAgICAgICBwaGFzZTpOU0V2ZW50UGhhc2VCZWdh
bgogICAgICAgICB0aW1lOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1l
KCkpCi0gICAgICAgIGV2ZW50TnVtYmVyOisrZXZlbnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1i
ZXI6KyttX2V2ZW50TnVtYmVyCiAgICAgICAgIHdpbmRvdzpbbV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgd2luZG93XV0pOwogCiAgICAgcmV0dXJuIGV2ZW50
OwpAQCAtNDA1LDcgKzQzNiw3IEBAIFJldGFpblB0cjxOU0V2ZW50PiBFdmVudFNlbmRlclByb3h5
OjpwcmVzc3VyZUNoYW5nZUV2ZW50KGludCBzdGFnZSwgZmxvYXQgcHJlc3N1CiAgICAgICAgIHN0
YWdlVHJhbnNpdGlvbjpkaXJlY3Rpb24gPT0gUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkluY3Jl
YXNpbmcgPyAwLjUgOiAtMC41CiAgICAgICAgIHBoYXNlOk5TRXZlbnRQaGFzZUNoYW5nZWQKICAg
ICAgICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQot
ICAgICAgICBldmVudE51bWJlcjorK2V2ZW50TnVtYmVyCisgICAgICAgIGV2ZW50TnVtYmVyOisr
bV9ldmVudE51bWJlcgogICAgICAgICB3aW5kb3c6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtVmlldygpIHdpbmRvd11dKTsKIAogICAgIHJldHVybiBldmVudDsKQEAg
LTQzMCw3ICs0NjEsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygp
CiAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50
VGltZSgpKQogICAgICAgICB3aW5kb3dOdW1iZXI6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtV2luZG93KCkgd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0OltO
U0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0KLSAgICAgICAgZXZlbnROdW1iZXI6Kytl
dmVudE51bWJlcgorICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKICAgICAgICAg
Y2xpY2tDb3VudDptX2NsaWNrQ291bnQKICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtNDY2
LDcgKzQ5Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZv
cmNlQ2xpY2soKQogICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1
cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgd2luZG93TnVtYmVyOlttX3Rlc3RDb250cm9sbGVy
LT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIHdpbmRvd051bWJlcl0KICAgICAgICAg
Y29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCi0gICAgICAgIGV2ZW50
TnVtYmVyOisrZXZlbnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVy
CiAgICAgICAgIGNsaWNrQ291bnQ6bV9jbGlja0NvdW50CiAgICAgICAgIHByZXNzdXJlOjAuMF07
CiAKQEAgLTU2Nyw3ICs1OTgsNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRv
KGRvdWJsZSB4LCBkb3VibGUgeSwgV0tTdHJpbmdSZWYgcG9pbnRlclR5cGUpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZl
bnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpbmRvd051bWJlcjp2aWV3LndpbmRvdy53aW5kb3dOdW1iZXIKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQg
Y3VycmVudENvbnRleHRdIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2
ZW50TnVtYmVyOisrZXZlbnROdW1iZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVyIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGlja0NvdW50OihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBtX2Ns
aWNrQ291bnQgOiAwKSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmVzc3VyZTowXTsKIApAQCAtODcyLDQgKzkwMyw2OCBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6
Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGlu
dAogICAgIH0KIH0KIAorI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6c2NhbGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKQoreworICAgIGF1
dG8gZXZlbnQgPSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBhbGxvY10gaW5p
dE1hZ25pZnlFdmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0
aW9uLnkpCisgICAgICAgIGdsb2JhbExvY2F0aW9uOihbbV90ZXN0Q29udHJvbGxlci0+bWFpbldl
YlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFrZVJlY3Qo
bV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pCisgICAgICAgIG1hZ25p
ZmljYXRpb246c2NhbGUKKyAgICAgICAgcGhhc2U6TlNFdmVudFBoYXNlQmVnYW4KKyAgICAgICAg
dGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQorICAgICAg
ICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKKyAgICAgICAgd2luZG93OlttX3Rlc3RDb250
cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddXSk7CisKKyAgICBp
ZiAoTlNWaWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCkt
PnBsYXRmb3JtVmlldygpIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkgeworICAg
ICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07CisgICAgICAgIFt0YXJn
ZXRWaWV3IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICBbTlNBcHAgX3Nl
dEN1cnJlbnRFdmVudDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9pbnQgd2luZG93
TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIFdURkxvZ0Fsd2F5
cygiZ2VzdHVyZVN0YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmlldyBhdCAlZiwlZlxu
Iiwgd2luZG93TG9jYXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7CisgICAgfQorfQorCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZUNoYW5nZShkb3VibGUgc2NhbGUpCit7Cisg
ICAgYXV0byBldmVudCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9j
XSBpbml0TWFnbmlmeUV2ZW50QXRMb2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1f
cG9zaXRpb24ueSkKKyAgICAgICAgZ2xvYmFsTG9jYXRpb246KFttX3Rlc3RDb250cm9sbGVyLT5t
YWluV2ViVmlldygpLT5wbGF0Zm9ybVdpbmRvdygpIGNvbnZlcnRSZWN0VG9TY3JlZW46TlNNYWtl
UmVjdChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgMSwgMSldLm9yaWdpbikKKyAgICAgICAg
bWFnbmlmaWNhdGlvbjpzY2FsZQorICAgICAgICBwaGFzZTpOU0V2ZW50UGhhc2VDaGFuZ2VkCisg
ICAgICAgIHRpbWU6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkK
KyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVyCisgICAgICAgIHdpbmRvdzpbbV90
ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkgd2luZG93XV0pOwor
CisgICAgaWYgKE5TVmlldyAqdGFyZ2V0VmlldyA9IFttX3Rlc3RDb250cm9sbGVyLT5tYWluV2Vi
VmlldygpLT5wbGF0Zm9ybVZpZXcoKSBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93XV0p
IHsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAg
ICBbdGFyZ2V0VmlldyBtYWduaWZ5V2l0aEV2ZW50OmV2ZW50LmdldCgpXTsKKyAgICAgICAgW05T
QXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9IGVsc2UgeworICAgICAgICBOU1BvaW50
IHdpbmRvd0xvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOworICAgICAgICBXVEZM
b2dBbHdheXMoImdlc3R1cmVTdGFydCBmYWlsZWQgdG8gZmluZCB0aGUgdGFyZ2V0IHZpZXcgYXQg
JWYsJWZcbiIsIHdpbmRvd0xvY2F0aW9uLngsIHdpbmRvd0xvY2F0aW9uLnkpOworICAgIH0KK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVFbmQoZG91YmxlIHNjYWxlKQor
eworICAgIGF1dG8gZXZlbnQgPSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBh
bGxvY10gaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54
LCBtX3Bvc2l0aW9uLnkpCisgICAgICAgIGdsb2JhbExvY2F0aW9uOihbbV90ZXN0Q29udHJvbGxl
ci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSBjb252ZXJ0UmVjdFRvU2NyZWVuOk5T
TWFrZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIDEsIDEpXS5vcmlnaW4pCisgICAg
ICAgIG1hZ25pZmljYXRpb246c2NhbGUKKyAgICAgICAgcGhhc2U6TlNFdmVudFBoYXNlRW5kZWQK
KyAgICAgICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgp
KQorICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKKyAgICAgICAgd2luZG93Oltt
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSB3aW5kb3ddXSk7
CisKKyAgICBpZiAoTlNWaWV3ICp0YXJnZXRWaWV3ID0gW21fdGVzdENvbnRyb2xsZXItPm1haW5X
ZWJWaWV3KCktPnBsYXRmb3JtVmlldygpIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3dd
XSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07CisgICAg
ICAgIFt0YXJnZXRWaWV3IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICBb
TlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9p
bnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIFdU
RkxvZ0Fsd2F5cygiZ2VzdHVyZVN0YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmlldyBh
dCAlZiwlZlxuIiwgd2luZG93TG9jYXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7CisgICAgfQor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogfSAvLyBuYW1lc3Bh
Y2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjEyYzk5MzZjOWQ1YjJhYzMyODU5OGIyYTQ4ZjM2MDJmYWVlODBjMS4u
YzAyNWFhZWIwZGJjYTJhZWI5NTg4ODhkNjNjNDliMTIwYzRjZWY1MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTA1LTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgYSB3YXkgdG8gY3JlYXRlIGAid2hlZWwiYCBldmVudHMgZnJvbSBnZXN0dXJl
L3RvdWNoIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI1Nzg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjcxNDMwOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2dl
c3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL2dlc3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAg
ICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA1LTE4ICBEaWVnbyBQaW5vIEdhcmNp
YSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVW5yZXZpZXdlZCB0ZXN0IGdh
cmRlbmluZy4gVXBkYXRlIHR3byBiYXNlbGluZXMgb2YgaW5zcGVjdG9yIHRlc3QgdGhhdCB3ZXJl
IGZhaWxpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2ZTA3ZTk3ZjZhNjk2NjkxMjQwZjY1Y2Fm
NjdlNDM2OWNmZGMwYzljLi4yZDY4N2FjOTYzYzZjNDJhMWM3MDI3ZGY3YzUxNjRiYjZiMGQxMTRm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUzLDYgKzUzLDcgQEAgZmFzdC92aXN1YWwtdmlld3Bv
cnQvaW9zLyBbIFNraXAgXQogZmFzdC9kZXZpY2Utb3JpZW50YXRpb24gWyBTa2lwIF0KIGh0dHAv
dGVzdHMvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9jdXJzb3JzIFsg
U2tpcCBdCitmYXN0L2V2ZW50cy9nZXN0dXJlIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9pb3MgWyBT
a2lwIF0KIGZhc3QvZXZlbnRzL3dhdGNob3MgWyBTa2lwIF0KIGZhc3QvZXZlbnRzL3BvaW50ZXIv
aW9zIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9nZXN0dXJl
L3doZWVsLWZyb20tZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Nl
ZWI5YmE5NGZlZmQ2YzE2MGE0NDk1MmZlMjgwOTkwZDFlODdlYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2dlc3R1cmUvd2hlZWwtZnJvbS1nZXN0dXJlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDU3IEBACitUZXN0cyB3aGVlbCBldmVudCBkaXNwYXRjaGluZyBm
b3IgZ2VzdHVyZSBldmVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0
IHRoYXQgd2hlZWwgZXZlbnRzIGFyZSBub3QgZGlzcGF0Y2hlZCBpZiBnZXN0dXJlIGV2ZW50cyBh
cmUgbm90IHByZXZlbnREZWZhdWx0LgorCitEaXNwYXRjaGluZyAnZ2VzdHVyZXN0YXJ0Jy4uLgor
SGFuZGxpbmcgJ2dlc3R1cmVzdGFydCcgZXZlbnQuLi4KK0hhbmRsaW5nICd3aGVlbCcgZXZlbnQu
Li4KK1BBU1MgZXZlbnQuY3RybEtleSBpcyB0cnVlCitQQVNTIGV2ZW50LmRlbHRhWSBpcyB3aXRo
aW4gMC4wMSBvZiAtMQorCitEaXNwYXRjaGluZyAnZ2VzdHVyZWNoYW5nZScuLi4KK0hhbmRsaW5n
ICdnZXN0dXJlY2hhbmdlJyBldmVudC4uLgorSGFuZGxpbmcgJ3doZWVsJyBldmVudC4uLgorUEFT
UyBldmVudC5jdHJsS2V5IGlzIHRydWUKK1BBU1MgZXZlbnQuZGVsdGFZIGlzIHdpdGhpbiAwLjAx
IG9mIC0yCisKK0Rpc3BhdGNoaW5nICdnZXN0dXJlY2hhbmdlJy4uLgorSGFuZGxpbmcgJ2dlc3R1
cmVjaGFuZ2UnIGV2ZW50Li4uCitIYW5kbGluZyAnd2hlZWwnIGV2ZW50Li4uCitQQVNTIGV2ZW50
LmN0cmxLZXkgaXMgdHJ1ZQorUEFTUyBldmVudC5kZWx0YVkgaXMgd2l0aGluIDAuMDEgb2YgLTMK
KworRGlzcGF0Y2hpbmcgJ2dlc3R1cmVlbmQnLi4uCitIYW5kbGluZyAnZ2VzdHVyZWVuZCcgZXZl
bnQuLi4KK0hhbmRsaW5nICd3aGVlbCcgZXZlbnQuLi4KK1BBU1MgZXZlbnQuY3RybEtleSBpcyB0
cnVlCitQQVNTIGV2ZW50LmRlbHRhWSBpcyB3aXRoaW4gMC4wMSBvZiAtNAorCitUZXN0IHRoYXQg
d2hlZWwgZXZlbnRzIGFyZSBub3QgZGlzcGF0Y2hlZCBpZiBnZXN0dXJlIGV2ZW50cyBhcmUgcHJl
dmVudERlZmF1bHQuCisKK0Rpc3BhdGNoaW5nICdnZXN0dXJlc3RhcnQnLi4uCitIYW5kbGluZyAn
Z2VzdHVyZXN0YXJ0JyBldmVudC4uLgorQ2FsbGluZyBgcHJldmVudERlZmF1bHRgLi4uCitQQVNT
IGRpZERpc3BhdGNoV2hlZWwgaXMgZmFsc2UKKworRGlzcGF0Y2hpbmcgJ2dlc3R1cmVjaGFuZ2Un
Li4uCitIYW5kbGluZyAnZ2VzdHVyZWNoYW5nZScgZXZlbnQuLi4KK0NhbGxpbmcgYHByZXZlbnRE
ZWZhdWx0YC4uLgorUEFTUyBkaWREaXNwYXRjaFdoZWVsIGlzIGZhbHNlCisKK0Rpc3BhdGNoaW5n
ICdnZXN0dXJlY2hhbmdlJy4uLgorSGFuZGxpbmcgJ2dlc3R1cmVjaGFuZ2UnIGV2ZW50Li4uCitD
YWxsaW5nIGBwcmV2ZW50RGVmYXVsdGAuLi4KK1BBU1MgZGlkRGlzcGF0Y2hXaGVlbCBpcyBmYWxz
ZQorCitEaXNwYXRjaGluZyAnZ2VzdHVyZWVuZCcuLi4KK0hhbmRsaW5nICdnZXN0dXJlZW5kJyBl
dmVudC4uLgorQ2FsbGluZyBgcHJldmVudERlZmF1bHRgLi4uCitQQVNTIGRpZERpc3BhdGNoV2hl
ZWwgaXMgZmFsc2UKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2dlc3R1cmUvd2hl
ZWwtZnJvbS1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9nZXN0dXJlL3do
ZWVsLWZyb20tZ2VzdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczN2RhNDljOGIzODY0ZjUyM2YxMDQ0
ODliNTA5YWJkZjVmMmJiNGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsMTE4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjdGFyZ2V0IHsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZDsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsK
K30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgZXhwZWN0ZWRTY2FsZSA9IE5hTjsKK3ZhciBk
aWREaXNwYXRjaFdoZWVsID0gZmFsc2U7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5j
dGlvbiBkaXNwYXRjaEFuZEhhbmRsZUdlc3R1cmVFdmVudChldmVudFRvV2FpdEZvciwgc2NhbGUs
IHNob3VsZFByZXZlbnREZWZhdWx0KSB7CisgICAgZGVidWcoIiIpOworCisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgZnVuY3Rpb24gd2hlZWxI
YW5kbGVyKGV2ZW50KSB7CisgICAgICAgICAgICBkZWJ1ZygiSGFuZGxpbmcgJ3doZWVsJyBldmVu
dC4uLiIpOworCisgICAgICAgICAgICBzaG91bGRCZVRydWUoImV2ZW50LmN0cmxLZXkiKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlQ2xvc2VUbygiZXZlbnQuZGVsdGFZIiwgc2NhbGUgKiAtMTAwLCAw
LjAxKTsKKworICAgICAgICAgICAgaWYgKCFzaG91bGRQcmV2ZW50RGVmYXVsdCkKKyAgICAgICAg
ICAgICAgICBoYW5kbGVkKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBnZXN0dXJl
SGFuZGxlcihldmVudCkgeworICAgICAgICAgICAgZGVidWcoYEhhbmRsaW5nICcke2V2ZW50LnR5
cGV9JyBldmVudC4uLmApOworCisgICAgICAgICAgICBpZiAoIXNob3VsZFByZXZlbnREZWZhdWx0
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgZGVidWcoIkNhbGxpbmcg
YHByZXZlbnREZWZhdWx0YC4uLiIpOworICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKKworICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IGV2ZW50VG9XYWl0Rm9yKSB7Cisg
ICAgICAgICAgICAgICAgZGlkRGlzcGF0Y2hXaGVlbCA9IGZhbHNlOworICAgICAgICAgICAgICAg
IC8vIEdpdmUgdGltZSBmb3IgYSBgIndoZWVsImAgZXZlbnQgdG8gYmUgZGlzcGF0Y2hlZCBzbyBm
YWlsdXJlcyBjYW4gYmUgZm91bmQuCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoImRpZERpc3BhdGNoV2hlZWwiKTsK
KyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCgpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gaGFuZGxlZCgpIHsKKyAg
ICAgICAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsIHdoZWVsSGFuZGxl
cik7CisgICAgICAgICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZ2VzdHVyZXN0YXJ0
IiwgZ2VzdHVyZUhhbmRsZXIpOworICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoImdlc3R1cmVjaGFuZ2UiLCBnZXN0dXJlSGFuZGxlcik7CisgICAgICAgICAgICB0YXJnZXQu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigiZ2VzdHVyZWVuZCIsIGdlc3R1cmVIYW5kbGVyKTsKKyAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRhcmdldC5hZGRFdmVudExp
c3RlbmVyKCJ3aGVlbCIsIHdoZWVsSGFuZGxlciwge29uY2U6IHRydWV9KTsKKworICAgICAgICAv
LyBBZGQgbGlzdGVuZXJzIGZvciBlYWNoIHBoYXNlIGp1c3QgaW4gY2FzZSBtdWx0aXBsZSBhcmUg
ZGlzcGF0Y2hlZCAod2hpY2ggd291bGQgYmUgd3JvbmcpLgorICAgICAgICB0YXJnZXQuYWRkRXZl
bnRMaXN0ZW5lcigiZ2VzdHVyZXN0YXJ0IiwgZ2VzdHVyZUhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7
CisgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJnZXN0dXJlY2hhbmdlIiwgZ2VzdHVy
ZUhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7CisgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVy
KCJnZXN0dXJlZW5kIiwgZ2VzdHVyZUhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7CisKKyAgICAgICAg
ZGVidWcoYERpc3BhdGNoaW5nICcke2V2ZW50VG9XYWl0Rm9yfScuLi5gKTsKKyAgICAgICAgc3dp
dGNoIChldmVudFRvV2FpdEZvcikgeworICAgICAgICBjYXNlICJnZXN0dXJlc3RhcnQiOgorICAg
ICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVHZXN0dXJlU3RhcnQoc2NhbGUpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgImdlc3R1cmVjaGFuZ2UiOgorICAgICAgICAgICAgZXZl
bnRTZW5kZXIuc2NhbGVHZXN0dXJlQ2hhbmdlKHNjYWxlKTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlICJnZXN0dXJlZW5kIjoKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxl
R2VzdHVyZUVuZChzY2FsZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0p
OworfQorCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICghd2luZG93LmV2ZW50
U2VuZGVyKSB7CisgICAgICAgIGRlYnVnKCJGQUlMOiBUaGlzIHRlc3QgcmVxdWlyZXMgd2luZG93
LmV2ZW50U2VuZGVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8odGFyZ2V0Lm9mZnNldExlZnQgKyAodGFyZ2V0Lm9mZnNldFdpZHRoIC8g
MiksIHRhcmdldC5vZmZzZXRUb3AgKyAodGFyZ2V0Lm9mZnNldEhlaWdodCAvIDIpKTsKKworICAg
IGRlYnVnKCJUZXN0IHRoYXQgd2hlZWwgZXZlbnRzIGFyZSBub3QgZGlzcGF0Y2hlZCBpZiBnZXN0
dXJlIGV2ZW50cyBhcmUgbm90IHByZXZlbnREZWZhdWx0LiIpOworICAgIGF3YWl0IGRpc3BhdGNo
QW5kSGFuZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJlc3RhcnQiLCAwLjAxLCBmYWxzZSk7CisgICAg
YXdhaXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1cmVjaGFuZ2UiLCAwLjAy
LCBmYWxzZSk7CisgICAgYXdhaXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1
cmVjaGFuZ2UiLCAwLjAzLCBmYWxzZSk7CisgICAgYXdhaXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0
dXJlRXZlbnQoImdlc3R1cmVlbmQiLCAwLjA0LCBmYWxzZSk7CisKKyAgICBkZWJ1ZygiIik7CisK
KyAgICBkZWJ1ZygiVGVzdCB0aGF0IHdoZWVsIGV2ZW50cyBhcmUgbm90IGRpc3BhdGNoZWQgaWYg
Z2VzdHVyZSBldmVudHMgYXJlIHByZXZlbnREZWZhdWx0LiIpOworICAgIGF3YWl0IGRpc3BhdGNo
QW5kSGFuZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJlc3RhcnQiLCAwLjAxLCB0cnVlKTsKKyAgICBh
d2FpdCBkaXNwYXRjaEFuZEhhbmRsZUdlc3R1cmVFdmVudCgiZ2VzdHVyZWNoYW5nZSIsIDAuMDIs
IHRydWUpOworICAgIGF3YWl0IGRpc3BhdGNoQW5kSGFuZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJl
Y2hhbmdlIiwgMC4wMywgdHJ1ZSk7CisgICAgYXdhaXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJl
RXZlbnQoImdlc3R1cmVlbmQiLCAwLjA0LCB0cnVlKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0
YXJnZXQiPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRlc3RzIHdoZWVsIGV2ZW50IGRpc3BhdGNoaW5nIGZvciBnZXN0dXJlIGV2ZW50cy4i
KTsKKworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429101</attachid>
            <date>2021-05-19 15:29:19 -0700</date>
            <delta_ts>2021-05-19 15:32:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225788-20210519162918.patch</filename>
            <type>text/plain</type>
            <size>35003</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZDUwYTMxM2U3OGUwNjJjMzM0NjI3ZTA1ZGUzNmE1ZGQ4NTEzNjY4Li5j
MjVmNjdhZTJjNDExNDgyODU4ZDJiMDUyNWUwMTI2YzU1OWZiMzVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjEtMDUtMTggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIHdheSB0byBjcmVhdGUgYCJ3aGVlbCJgIGV2ZW50cyBmcm9tIGdl
c3R1cmUvdG91Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NzE0MzA4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUZXN0OiBmYXN0L2V2
ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sCisKKyAgICAgICAgT3RoZXIgYnJv
d3NlcnMgaGF2ZSB0YWtlbiB0aGUgYXBwcm9hY2ggb2YgZGlzcGF0Y2hpbmcgYCJ3aGVlbCJgIGV2
ZW50cyB3aXRoIGBjdHJsS2V5YCBhbmQKKyAgICAgICAgYGRlbHRhWWAgd2hlbiBoYW5kbGluZyBt
dWx0aS10b3VjaCBwaW5jaC10by16b29tIGdlc3R1cmVzLiBBZGQgaGVscGVyIGZ1bmN0aW9ucyB0
byBkbyB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6Y3JlYXRlRnJvbUdlc3R1cmUpOiBBZGRlZC4KKwogMjAy
MS0wNS0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBD
RlN0cmluZ1JlZiBhbmQgTlNTdHJpbmcgc3VwcG9ydCBmcm9tIFN0cmluZ0J1aWxkZXIgaW50byBT
dHJpbmdDb25jYXRlbmF0ZUNGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1X
aGVlbEV2ZW50LmNwcAppbmRleCBhNGIwMTdmZmQ2MWU3ZWQ2Mjk5MWIxNDY3MTFiZDM1OTNjOGY2
OGEwLi5iZDdlZWMxODIzMDZjZTExN2EzYTc2OWZhOTljNmU2NDQyY2QxNDc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKQEAgLTI2LDEwICsy
Niw2MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVu
dC5oIgogCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgogCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVFdmVudE1hYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
I2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK1BsYXRmb3JtV2hlZWxFdmVudCBQbGF0
Zm9ybVdoZWVsRXZlbnQ6OmNyZWF0ZUZyb21HZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2
ZW50JiBwbGF0Zm9ybUdlc3R1cmVFdmVudCwgZG91YmxlIGRlbHRhWSkKK3sKKyAgICAvLyBUaGlz
IHRyaWVzIHRvIG1hdGNoIGFzIG11Y2ggb2YgdGhlIGJlaGF2aW9yIG9mIGBXZWJLaXQ6OldlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudGAgYXMKKyAgICAvLyBwb3NzaWJsZSBhc3N1
bWluZyBgLVtOU0V2ZW50IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXNdYCBhbmQgbm8gYC1bTlNF
dmVudCBfc2Nyb2xsQ291bnRdYC4KKworICAgIGRvdWJsZSBkZWx0YVggPSAwOworICAgIGRvdWJs
ZSB3aGVlbFRpY2tzWCA9IDA7CisgICAgZG91YmxlIHdoZWVsVGlja3NZID0gZGVsdGFZIC8gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgYm9v
bCBzaGlmdEtleSA9IHBsYXRmb3JtR2VzdHVyZUV2ZW50Lm1vZGlmaWVycygpLmNvbnRhaW5zKFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgYm9vbCBjdHJsS2V5ID0gdHJ1
ZTsKKyAgICBib29sIGFsdEtleSA9IHBsYXRmb3JtR2VzdHVyZUV2ZW50Lm1vZGlmaWVycygpLmNv
bnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOworICAgIGJvb2wgbWV0YUtl
eSA9IHBsYXRmb3JtR2VzdHVyZUV2ZW50Lm1vZGlmaWVycygpLmNvbnRhaW5zKFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKKyAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgcGxhdGZvcm1X
aGVlbEV2ZW50KHBsYXRmb3JtR2VzdHVyZUV2ZW50LnBvcygpLCBwbGF0Zm9ybUdlc3R1cmVFdmVu
dC5nbG9iYWxQb3NpdGlvbigpLCBkZWx0YVgsIGRlbHRhWSwgd2hlZWxUaWNrc1gsIHdoZWVsVGlj
a3NZLCBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwg
bWV0YUtleSk7CisKKyAgICAvLyBQbGF0Zm9ybUV2ZW50CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50
Lm1fdGltZXN0YW1wID0gcGxhdGZvcm1HZXN0dXJlRXZlbnQudGltZXN0YW1wKCk7CisKKyAgICAv
LyBQbGF0Zm9ybVdoZWVsRXZlbnQKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzID0gdHJ1ZTsKKworI2lmIEVOQUJMRShLSU5FVElDX1NDUk9MTElORykK
KyAgICBzd2l0Y2ggKHBsYXRmb3JtR2VzdHVyZUV2ZW50LnR5cGUoKSkgeworICAgIGNhc2UgUGxh
dGZvcm1FdmVudDo6R2VzdHVyZVN0YXJ0OgorICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9w
aGFzZSA9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpCZWdhbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlQ2hhbmdlOgorICAgICAgICBwbGF0Zm9ybVdo
ZWVsRXZlbnQubV9waGFzZSA9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVFbmQ6CisgICAgICAg
IHBsYXRmb3JtV2hlZWxFdmVudC5tX3BoYXNlID0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVu
ZGVkOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShLSU5FVElD
X1NDUk9MTElORykKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHBsYXRmb3JtV2hlZWxFdmVu
dC5tX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YVkgPSBkZWx0YVk7CisjZW5kaWYgLy8gUExB
VEZPUk0oQ09DT0EpCisKKyAgICByZXR1cm4gcGxhdGZvcm1XaGVlbEV2ZW50OworfQorCisjZW5k
aWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogI2lmIEVOQUJMRShLSU5FVElDX1ND
Uk9MTElORykKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCmluZGV4IGQ3MTY5MzQ2YTI0MDIzYzJhNDc4N2FlMzQ1NDBhMzc2MDdj
MGEyZDUuLmM3NDg4NzA0YzhmZDY0MDZlNTYxMTllYzViZGYyODA2NGY4ZGQyZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0zNiw2ICszNiw4
IEBAIGNsYXNzIFRleHRTdHJlYW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUGxh
dGZvcm1HZXN0dXJlRXZlbnQ7CisKIGVudW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
cyA6IHVpbnQ4X3QgewogICAgIFNjcm9sbGluZ1RocmVhZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxIDw8IDAsCiAgICAgTWFpblRocmVhZEZvclNjcm9sbGluZyAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMSwKQEAgLTEwNiw2ICsxMDgsMTAgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAgIHN0YXRpYyBQbGF0Zm9y
bVdoZWVsRXZlbnQgY3JlYXRlRnJvbUdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
LCBkb3VibGUgZGVsdGFZKTsKKyNlbmRpZgorCiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IGNvcHlT
d2FwcGluZ0RpcmVjdGlvbigpIGNvbnN0CiAgICAgewogICAgICAgICBQbGF0Zm9ybVdoZWVsRXZl
bnQgY29weSA9ICp0aGlzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDFhOGQ4ZmI5ZDkzYTNiZGYzY2FhNjY2NjdkMGU3YzFkYjY3YzQ0MmYuLjFm
ZWJhZGUxMzZlODM4ZDY3ZTgwYzQ2ZTRjYmRmMzcwMmZmYTk1MDUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAyMS0w
NS0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
d2F5IHRvIGNyZWF0ZSBgIndoZWVsImAgZXZlbnRzIGZyb20gZ2VzdHVyZS90b3VjaCBldmVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc4OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY3MTQzMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1
cmVTdGFydCk6IEFkZGVkLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpz
Y2FsZUdlc3R1cmVDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29u
dHJvbGxlcjo6c2NhbGVHZXN0dXJlRW5kKTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tOgorICAgICAgICAoRXZlbnRTZW5kZXJD
R0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UpOgorICAgICAgICAoLVtFdmVudFNlbmRlclN5
bnRoZXRpY0V2ZW50IGluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjpnbG9iYWxMb2NhdGlvbjpz
dGFnZTpwcmVzc3VyZTpzdGFnZVRyYW5zaXRpb246cGhhc2U6dGltZTpldmVudE51bWJlcjp3aW5k
b3c6XSk6CisgICAgICAgICgtW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgaW5pdE1hZ25pZnlF
dmVudEF0TG9jYXRpb246Z2xvYmFsTG9jYXRpb246bWFnbmlmaWNhdGlvbjpwaGFzZTp0aW1lOmV2
ZW50TnVtYmVyOndpbmRvdzpdKTogQWRkZWQuCisgICAgICAgICgtW0V2ZW50U2VuZGVyU3ludGhl
dGljRXZlbnQgbWFnbmlmaWNhdGlvbl0pOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VEb3duKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91
c2VVcCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNlbmRNb3VzZURvd25Ub1N0
YXJ0UHJlc3N1cmVFdmVudHMpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpiZWdp
blByZXNzdXJlRXZlbnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpwcmVzc3Vy
ZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VGb3Jj
ZUNsaWNrKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxN
b3VzZUZvcmNlQ2xpY2spOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZU1v
dmVUbyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZVN0YXJ0
KTogQWRkZWQuCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZUNo
YW5nZSk6IEFkZGVkLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1
cmVFbmQpOiBBZGRlZC4KKyAgICAgICAgQWxsb3cgdGVzdHMgdG8gc3ludGhlc2l6ZSBzY2FsZSAo
YS5rLmEuIG1hZ25pZnkpIGdlc3R1cmUgZXZlbnRzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAgIERyaXZl
LWJ5OiBSZW5hbWUgYGV2ZW50TnVtYmVyYCB0byBgbV9ldmVudE51bWJlcmAgc2luY2UgaXQncyBh
IG1lbWJlciB2YXJpYWJsZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1NjcmlwdHMvZ2Vu
ZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0Rlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9TY3JpcHRzL2dlbmVy
YXRlLWRlcml2ZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0Rlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgIE1ha2Ugc3VyZSB0byBwYXNzIGFsbCBmZWF0dXJlIGZs
YWdzIHdoZW4gZ2VuZXJhdGluZyBKUyBmaWxlcyBmcm9tIElETCBmaWxlcy4KKwogMjAyMS0wNS0x
OCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBDRlN0cmlu
Z1JlZiBhbmQgTlNTdHJpbmcgc3VwcG9ydCBmcm9tIFN0cmluZ0J1aWxkZXIgaW50byBTdHJpbmdD
b25jYXRlbmF0ZUNGCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA2MDFiYjA4NzRhMzAwZmNhYmZlMDc4NTViNjI2ZDI3NTc0MzczNGIwLi43YmNlNjdmYWExOTg5
NWZkODZmOTBjZjZhNDhiOGVlMTRkNmVjZWU1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIxLDggKzIxLDI1IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitQRVJMID0gcGVybAogUlVCWSA9IHJ1YnkK
IAoraWZuZXEgKCQoU0RLUk9PVCksKQorICAgIFNES19GTEFHUyA9IC1pc3lzcm9vdCAkKFNES1JP
T1QpCitlbmRpZgorCitpZmVxICgkKFVTRV9MTFZNX1RBUkdFVF9UUklQTEVTX0ZPUl9DTEFORyks
WUVTKQorICAgIFdLX0NVUlJFTlRfQVJDSCA9ICQod29yZCAxLCAkKEFSQ0hTKSkKKyAgICBUQVJH
RVRfVFJJUExFX0ZMQUdTID0gLXRhcmdldCAkKFdLX0NVUlJFTlRfQVJDSCktJChMTFZNX1RBUkdF
VF9UUklQTEVfVkVORE9SKS0kKExMVk1fVEFSR0VUX1RSSVBMRV9PU19WRVJTSU9OKSQoTExWTV9U
QVJHRVRfVFJJUExFX1NVRkZJWCkKK2VuZGlmCisKK0ZSQU1FV09SS19GTEFHUyA6PSAkKHNoZWxs
IGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgJChT
WVNURU1fRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCAkKFBFUkwpIC1lICdwcmludCAiLUYgIiAu
IGpvaW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKK0hFQURFUl9GTEFHUyA6PSAkKHNoZWxs
IGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoSEVBREVSX1NFQVJDSF9QQVRIUykgJChTWVNU
RU1fSEVBREVSX1NFQVJDSF9QQVRIUykgfCAkKFBFUkwpIC1lICdwcmludCAiLUkiIC4gam9pbigi
IC1JIiwgc3BsaXQoIiAiLCA8PikpOycpCitGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTIDo9
ICQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzF6IC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxBR1Mp
ICQoVEFSR0VUX1RSSVBMRV9GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdT
KSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8ICQoUEVSTCkgLW5lICJwcmlu
dCBpZiBzL1wjZGVmaW5lICgoSEFWRV98VVNFX3xFTkFCTEVffFdURl9QTEFURk9STV8pXHcrKSAx
L1wxLyIpCisKKyMgRklYTUU6IFRoaXMgc2hvdWxkIGxpc3QgUGxhdGZvcm0uaCBhbmQgYWxsIHRo
ZSB0aGluZ3MgaXQgaW5jbHVkZXMuIENvdWxkIGRvIHRoYXQgYnkgdXNpbmcgdGhlIC1NRCBmbGFn
IGluIHRoZSBDQyBsaW5lIGFib3ZlLgorRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVO
REVOQ0lFUyA9ICQoRHVtcFJlbmRlclRyZWUpL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKwogVUlTQ1JJ
UFRDT05URVhUX0RJUiA9ICQoRHVtcFJlbmRlclRyZWUpLy4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzCiBEVU1QUkVOREVSVFJFRV9QUkVGRVJFTkNFU19URU1QTEFU
RVNfRElSID0gJChEdW1wUmVuZGVyVHJlZSkvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcwog
CkBAIC00Niw5ICs2Myw5IEBAIElETF9BVFRSSUJVVEVTX0ZJTEUgPSAkKFdlYkNvcmVTY3JpcHRz
KS9JRExBdHRyaWJ1dGVzLmpzb24KIAogLlBIT05ZIDogYWxsCiAKLUpTJS5oIEpTJS5jcHAgOiAl
LmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkKK0pTJS5oIEpTJS5jcHAgOiAl
LmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChGRUFUVVJFX0FORF9QTEFU
Rk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCUBlY2hvIEdlbmVyYXRpbmcgYmluZGluZ3MgZm9y
ICQqLi4uCi0JQHBlcmwgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChVSVNDUklQVENPTlRFWFRf
RElSKSAtSSAkKER1bXBSZW5kZXJUcmVlKS9CaW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5l
cmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiIgLS1pbmNsdWRlICQoVUlTQ1JJUFRDT05URVhU
X0RJUikgLS1vdXRwdXREaXIgLiAtLWdlbmVyYXRvciBEdW1wUmVuZGVyVHJlZSAtLWlkbEF0dHJp
YnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgJDwKKwkkKFBFUkwpIC1JICQoV2ViQ29y
ZVNjcmlwdHMpIC1JICQoVUlTQ1JJUFRDT05URVhUX0RJUikgLUkgJChEdW1wUmVuZGVyVHJlZSkv
QmluZGluZ3MgJChXZWJDb3JlU2NyaXB0cykvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVz
ICIkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMpIiAtLWluY2x1ZGUgJChVSVNDUklQVENP
TlRFWFRfRElSKSAtLW91dHB1dERpciAuIC0tZ2VuZXJhdG9yIER1bXBSZW5kZXJUcmVlIC0taWRs
QXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAkPAogCiBhbGwgOiBcCiAgICAg
JChVSUNPTlRFWFRfSU5URVJGQUNFUzolPUpTJS5oKSBcCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCmluZGV4IGYy
ZDBmZjExY2Y5ODIzNzQ3M2M3YWYxNDM4ZWVjMjZhZWM2YTFlMzQuLjAyMjIxNjJhZjI2NTBiMzIy
MTc4NDkwZTFiMDRkNzk5YmI3ODA2YWUgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCkBAIC0xNSw1ICsxNSw1
IEBAIGlmIFsgISAkQ0MgXTsgdGhlbgogZmkKIAogaWYgWyAiJHtBQ1RJT059IiA9ICJidWlsZCIg
LW8gIiR7QUNUSU9OfSIgPSAiaW5zdGFsbCIgLW8gIiR7QUNUSU9OfSIgPSAiaW5zdGFsbGhkcnMi
IF07IHRoZW4KLSAgICBtYWtlIC1mICIke0R1bXBSZW5kZXJUcmVlfS9EZXJpdmVkU291cmNlcy5t
YWtlIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgICIke0FSR1NbQF19Igor
ICAgIG1ha2UgLWYgIiR7RHVtcFJlbmRlclRyZWV9L0Rlcml2ZWRTb3VyY2VzLm1ha2UiIC1qIGAv
dXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD0iJHtTREtST09UfSIgIiR7
QVJHU1tAXX0iCiBmaQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDE3YzM4OGU4ZGUxZjdmODU5OGE3NmI2YWM0
ZGE3YmUwOTljMTUxMWIuLmI0MTc3MGY4ODY1OWQ2MDAxODliMjIyNmVjMWM4MDUxNTM4Y2Q0ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTUsNiArNSw3IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3Iv
bG9jYWwvaW5jbHVkZS93dGYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvdXNyL2xvY2FsL2luY2x1ZGUvd3RmL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL3Vzci9sb2NhbC9pbmNsdWRlL3d0Zi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbAogJChQUk9KRUNUX0RJUikvLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorJChQUk9KRUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMubWFrZQogJChQUk9KRUNUX0RJUikvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5pZGwKICQoUFJPSkVDVF9E
SVIpL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uu
aWRsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGY2
MmNiOWI3NzFiNzY5OTI5NzNhNTc3N2ZmNjFlMDQ4Y2M1NjViNC4uNzRjNDhlMDBmNTZjMWJkYzM3
YmRkNzg0ODg1MjJlZjU5M2I1YjE0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMjYsOCArMjYsMjUgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXRU
ZXN0UnVubmVyKS8uLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncyBc
CiAjCiAKK1BFUkwgPSBwZXJsCiBSVUJZID0gcnVieQogCitpZm5lcSAoJChTREtST09UKSwpCisg
ICAgU0RLX0ZMQUdTID0gLWlzeXNyb290ICQoU0RLUk9PVCkKK2VuZGlmCisKK2lmZXEgKCQoVVNF
X0xMVk1fVEFSR0VUX1RSSVBMRVNfRk9SX0NMQU5HKSxZRVMpCisgICAgV0tfQ1VSUkVOVF9BUkNI
ID0gJCh3b3JkIDEsICQoQVJDSFMpKQorICAgIFRBUkdFVF9UUklQTEVfRkxBR1MgPSAtdGFyZ2V0
ICQoV0tfQ1VSUkVOVF9BUkNIKS0kKExMVk1fVEFSR0VUX1RSSVBMRV9WRU5ET1IpLSQoTExWTV9U
QVJHRVRfVFJJUExFX09TX1ZFUlNJT04pJChMTFZNX1RBUkdFVF9UUklQTEVfU1VGRklYKQorZW5k
aWYKKworRlJBTUVXT1JLX0ZMQUdTIDo9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikgJChGUkFNRVdPUktfU0VBUkNIX1BBVEhTKSAkKFNZU1RFTV9GUkFNRVdPUktfU0VBUkNIX1BB
VEhTKSB8ICQoUEVSTCkgLWUgJ3ByaW50ICItRiAiIC4gam9pbigiIC1GICIsIHNwbGl0KCIgIiwg
PD4pKTsnKQorSEVBREVSX0ZMQUdTIDo9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikgJChIRUFERVJfU0VBUkNIX1BBVEhTKSAkKFNZU1RFTV9IRUFERVJfU0VBUkNIX1BBVEhTKSB8
ICQoUEVSTCkgLWUgJ3ByaW50ICItSSIgLiBqb2luKCIgLUkiLCBzcGxpdCgiICIsIDw+KSk7JykK
K0ZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMgOj0gJChzaGVsbCAkKENDKSAtc3RkPWdudSsr
MXogLXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChUQVJHRVRfVFJJUExFX0ZMQUdTKSAk
KEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1pbmNsdWRlICJ3dGYvUGxhdGZvcm0u
aCIgL2Rldi9udWxsIHwgJChQRVJMKSAtbmUgInByaW50IGlmIHMvXCNkZWZpbmUgKChIQVZFX3xV
U0VffEVOQUJMRV98V1RGX1BMQVRGT1JNXylcdyspIDEvXDEvIikKKworIyBGSVhNRTogVGhpcyBz
aG91bGQgbGlzdCBQbGF0Zm9ybS5oIGFuZCBhbGwgdGhlIHRoaW5ncyBpdCBpbmNsdWRlcy4gQ291
bGQgZG8gdGhhdCBieSB1c2luZyB0aGUgLU1EIGZsYWcgaW4gdGhlIENDIGxpbmUgYWJvdmUuCitG
RUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTID0gJChXZWJLaXRUZXN0UnVu
bmVyKS9EZXJpdmVkU291cmNlcy5tYWtlCisKIFdFQl9QUkVGRVJFTkNFUyA9IFwKICAgICAke1dU
Rl9CVUlMRF9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCBcCiAg
ICAgJHtXVEZfQlVJTERfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVi
dWcueWFtbCBcCkBAIC03Myw5ICs5MCw5IEBAIElETF9BVFRSSUJVVEVTX0ZJTEUgPSAkKFdlYkNv
cmVTY3JpcHRzKS9JRExBdHRyaWJ1dGVzLmpzb24KIAogLlBIT05ZIDogYWxsCiAKLUpTJS5oIEpT
JS5jcHAgOiAlLmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkKK0pTJS5oIEpT
JS5jcHAgOiAlLmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChGRUFUVVJF
X0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCUBlY2hvIEdlbmVyYXRpbmcgYmlu
ZGluZ3MgZm9yICQqLi4uCi0JQHBlcmwgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChXZWJLaXRU
ZXN0UnVubmVyKS9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncyAtSSAkKFdlYktpdFRlc3RSdW5uZXIp
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5lcmF0ZS1iaW5k
aW5ncy5wbCAtLWRlZmluZXMgIiIgLS1pbmNsdWRlIEluamVjdGVkQnVuZGxlL0JpbmRpbmdzIC0t
aW5jbHVkZSBVSVNjcmlwdENvbnRleHQvQmluZGluZ3MgLS1vdXRwdXREaXIgLiAtLWdlbmVyYXRv
ciBUZXN0UnVubmVyIC0taWRsQXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAk
PAorCSQoUEVSTCkgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChXZWJLaXRUZXN0UnVubmVyKS9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncyAtSSAkKFdlYktpdFRlc3RSdW5uZXIpL1VJU2NyaXB0Q29u
dGV4dC9CaW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRl
ZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykiIC0taW5jbHVkZSBJbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncyAtLWluY2x1ZGUgVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzIC0tb3V0
cHV0RGlyIC4gLS1nZW5lcmF0b3IgVGVzdFJ1bm5lciAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURM
X0FUVFJJQlVURVNfRklMRSkgJDwKIAogYWxsIDogXAogICAgICQoSU5KRUNURURfQlVORExFX0lO
VEVSRkFDRVM6JT1KUyUuaCkgXApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9F
dmVudFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJv
eHkuaAppbmRleCAxYTE5ODc0MzU2N2E4YTZlY2Q0ZDRlZWU2ODExNzE4OWFiZGZjOWYyLi4xOGZh
ODkyZTQyN2MwMDBjZDM1N2ZlMTFkODQ1ZWMyMDljZjIxMWQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtODcsNiArODcsMTMgQEAgcHVibGljOgogICAg
IHZvaWQgY2FuY2VsVG91Y2hQb2ludChpbnQgaW5kZXgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUFDX0dFU1RVUkVfRVZFTlRTKQorICAgIC8vIEdlc3R1cmUgZXZlbnRzLgorICAgIHZvaWQgc2Nh
bGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKTsKKyAgICB2b2lkIHNjYWxlR2VzdHVyZUNoYW5n
ZShkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGVHZXN0dXJlRW5kKGRvdWJsZSBzY2FsZSk7
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBUZXN0Q29udHJvbGxlciogbV90ZXN0Q29udHJvbGxl
cjsKIApAQCAtMTIxLDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgV0tFdmVudE1vdXNlQnV0dG9u
IG1fY2xpY2tCdXR0b24geyBrV0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0b24gfTsKICAgICB1bnNp
Z25lZCBtX21vdXNlQnV0dG9uc0N1cnJlbnRseURvd24geyAwIH07CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgaW50IGV2ZW50TnVtYmVyIHsgMCB9OworICAgIGludCBtX2V2ZW50TnVtYmVyIHsg
MCB9OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHVpbnQzMl90IG1fYnV0dG9uU3Rh
dGUgeyAwIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlk
bAppbmRleCBjMWQyYzQ4NzFiNzZhZWRhNjZiYTVlOGMwZDkyOWNjYTBiM2Q5M2Y3Li5jOTAyM2Ux
MjdmYzVlMzRjODU5NzVkZTc0MjIyNjY4ZjBlMGQ5NTkzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKQEAgLTcxLDUgKzcxLDEyIEBAIGludGVyZmFj
ZSBFdmVudFNlbmRpbmdDb250cm9sbGVyIHsKICAgICB1bmRlZmluZWQgcmVsZWFzZVRvdWNoUG9p
bnQobG9uZyBpbmRleCk7CiAgICAgdW5kZWZpbmVkIGNhbmNlbFRvdWNoUG9pbnQobG9uZyBpbmRl
eCk7CiAjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYg
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUworICAgIC8vIEdlc3R1cmUgZXZlbnRzLgorICAgIHVu
ZGVmaW5lZCBzY2FsZUdlc3R1cmVTdGFydChkb3VibGUgc2NhbGUpOworICAgIHVuZGVmaW5lZCBz
Y2FsZUdlc3R1cmVDaGFuZ2UoZG91YmxlIHNjYWxlKTsKKyAgICB1bmRlZmluZWQgc2NhbGVHZXN0
dXJlRW5kKGRvdWJsZSBzY2FsZSk7CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIuY3BwCmluZGV4IGY3NDEwNjNhOGQ1MTRkOWZkYzgzYTQ5NjIyNzQyMmMwZjNmYzY0OTUu
LjJhZTk2NzhkNzc3YzI4OTc5NTY4MzEwZTRlYTRkYjQzMTRlOTM0ZDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNl
bmRpbmdDb250cm9sbGVyLmNwcApAQCAtNjE4LDYgKzYxOCwzNCBAQCB2b2lkIEV2ZW50U2VuZGlu
Z0NvbnRyb2xsZXI6OmNhbmNlbFRvdWNoUG9pbnQoaW50IGluZGV4KQogCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxl
cjo6c2NhbGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8gYm9keSA9IGFk
b3B0V0soV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKyAgICBzZXRWYWx1ZShib2R5LCAi
U3ViTWVzc2FnZSIsICJTY2FsZUdlc3R1cmVTdGFydCIpOworICAgIHNldFZhbHVlKGJvZHksICJT
Y2FsZSIsIHNjYWxlKTsKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiRXZlbnRTZW5k
ZXIiLCBib2R5KTsKK30KKwordm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1
cmVDaGFuZ2UoZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8gYm9keSA9IGFkb3B0V0soV0tNdXRh
YmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU3ViTWVzc2FnZSIs
ICJTY2FsZUdlc3R1cmVDaGFuZ2UiKTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU2NhbGUiLCBzY2Fs
ZSk7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkV2ZW50U2VuZGVyIiwgYm9keSk7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0dXJlRW5kKGRvdWJs
ZSBzY2FsZSkKK3sKKyAgICBhdXRvIGJvZHkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25hcnlD
cmVhdGUoKSk7CisgICAgc2V0VmFsdWUoYm9keSwgIlN1Yk1lc3NhZ2UiLCAiU2NhbGVHZXN0dXJl
RW5kIik7CisgICAgc2V0VmFsdWUoYm9keSwgIlNjYWxlIiwgc2NhbGUpOworICAgIHBvc3RTeW5j
aHJvbm91c1BhZ2VNZXNzYWdlKCJFdmVudFNlbmRlciIsIGJvZHkpOworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogLy8gT2JqZWN0IENyZWF0aW9uCiAKIHZvaWQg
RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29u
dGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
RXZlbnRTZW5kaW5nQ29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKaW5kZXggNjljMjg2ZjgzMjViNGFlYzdl
MWVmYjdlNjFjZjU0M2Q3ZjE4MjRhZi4uOWVhZWY2YWFiNzFhOTYxYzA0ZDUwMTdiZmYxMTEzMWEx
YjU3NGY4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKQEAgLTg5LDYgKzg5LDEyIEBA
IHB1YmxpYzoKICAgICB2b2lkIGNhbmNlbFRvdWNoUG9pbnQoaW50IGluZGV4KTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICB2b2lkIHNjYWxlR2VzdHVyZVN0
YXJ0KGRvdWJsZSBzY2FsZSk7CisgICAgdm9pZCBzY2FsZUdlc3R1cmVDaGFuZ2UoZG91YmxlIHNj
YWxlKTsKKyAgICB2b2lkIHNjYWxlR2VzdHVyZUVuZChkb3VibGUgc2NhbGUpOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgRXZlbnRTZW5kaW5nQ29udHJvbGxlcigpID0gZGVmYXVsdDsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRT
ZW5kZXJQcm94eUlPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KaW5kZXggYzExYzk3ZmNlMzQxNzUyYmM0N2UxNzky
Y2YxZWRhZjYyYzkyNWQ3YS4uNjE0NDI4OTI4MDkwZTk0NGY1YzI2MTdjOWE0YzkxMGNmY2U2OTlj
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
RXZlbnRTZW5kZXJQcm94eUlPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tCkBAIC0zOSw3ICszOSw3IEBAIEV2
ZW50U2VuZGVyUHJveHk6OkV2ZW50U2VuZGVyUHJveHkoVGVzdENvbnRyb2xsZXIqIHRlc3RDb250
cm9sbGVyKQogewogICAgIFVOVVNFRF9QQVJBTShtX3Rlc3RDb250cm9sbGVyKTsKICAgICBVTlVT
RURfUEFSQU0obV9sZWZ0TW91c2VCdXR0b25Eb3duKTsKLSAgICBVTlVTRURfUEFSQU0oZXZlbnRO
dW1iZXIpOworICAgIFVOVVNFRF9QQVJBTShtX2V2ZW50TnVtYmVyKTsKIH0KIAogRXZlbnRTZW5k
ZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5z
aAppbmRleCA1OGQ1Zjc4NmFmYjkzZDgwMTA3OGMzNjQ0YjM4MjZhM2Y3NWJmMjUwLi45YTc2NWJh
MzBiOTYxZWY0Y2MxM2RjZjE1NDlmZTJiZGNiYThmZTNjIDEwMDc1NQotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2gK
QEAgLTE1LDUgKzE1LDUgQEAgaWYgWyAhICRDQyBdOyB0aGVuCiBmaQogCiBpZiBbICIke0FDVElP
Tn0iID0gImJ1aWxkIiAtbyAiJHtBQ1RJT059IiA9ICJpbnN0YWxsIiAtbyAiJHtBQ1RJT059IiA9
ICJpbnN0YWxsaGRycyIgXTsgdGhlbgotICAgIG1ha2UgLWYgIiR7V2ViS2l0VGVzdFJ1bm5lcn0v
RGVyaXZlZFNvdXJjZXMubWFrZSIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1
YCAiJHtBUkdTW0BdfSIKKyAgICBtYWtlIC1mICIke1dlYktpdFRlc3RSdW5uZXJ9L0Rlcml2ZWRT
b3VyY2VzLm1ha2UiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9P
VD0iJHtTREtST09UfSIgIiR7QVJHU1tAXX0iCiBmaQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCBhNTVmYTBlMjRjN2M3MDllYjRkYTJhZjFhZDE5ZGY2YTFl
MjAwMGNlLi4xODE3NzNjNDUxODBkNGQxNTI0M2JhOGUyZDA3NjVjOTg3N2U0ZmM4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTc3Nyw2ICsxNzc3LDI3
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihudWxscHRyKTsKICAgICAgICAgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUFDX0dF
U1RVUkVfRVZFTlRTKQorICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhz
dWJNZXNzYWdlTmFtZSwgIlNjYWxlR2VzdHVyZVN0YXJ0IikpIHsKKyAgICAgICAgICAgIGF1dG8g
c2NhbGUgPSBkb3VibGVWYWx1ZShkaWN0aW9uYXJ5LCAiU2NhbGUiKTsKKyAgICAgICAgICAgIG1f
ZXZlbnRTZW5kZXJQcm94eS0+c2NhbGVHZXN0dXJlU3RhcnQoc2NhbGUpOworICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTY2FsZUdl
c3R1cmVDaGFuZ2UiKSkgeworICAgICAgICAgICAgYXV0byBzY2FsZSA9IGRvdWJsZVZhbHVlKGRp
Y3Rpb25hcnksICJTY2FsZSIpOworICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5zY2Fs
ZUdlc3R1cmVDaGFuZ2Uoc2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTY2FsZUdlc3R1cmVFbmQiKSkgeworICAgICAg
ICAgICAgYXV0byBzY2FsZSA9IGRvdWJsZVZhbHVlKGRpY3Rpb25hcnksICJTY2FsZSIpOworICAg
ICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5zY2FsZUdlc3R1cmVFbmQoc2NhbGUpOworICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICB9Cisj
ZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVu
dFNlbmRlclByb3h5Lm1tCmluZGV4IDhlOTk0N2IwYjMyNDBmM2ZjMDliM2M2YWRiNjVlOGYyZTAy
Y2ZlZDQuLjI5NmM5MDJmMzc1YjExODlmNDVlZTU2YmIzZmZkNGQ4MjZkZDI2ZjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpAQCAtMzcsNiAr
MzcsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQ
YWdlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgorI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9JT0tpdFNQSS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW50
ZXJmYWNlIE5TQXBwbGljYXRpb24gKERldGFpbHMpCkBAIC01NCw2ICs1NSw3IEBAIEBwdWJsaWMK
ICAgICBOU1BvaW50IF9ldmVudFNlbmRlcl9sb2NhdGlvbjsKICAgICBOU0ludGVnZXIgX2V2ZW50
U2VuZGVyX3N0YWdlOwogICAgIGZsb2F0IF9ldmVudFNlbmRlcl9wcmVzc3VyZTsKKyAgICBDR0Zs
b2F0IF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9uOwogICAgIENHRmxvYXQgX2V2ZW50U2VuZGVy
X3N0YWdlVHJhbnNpdGlvbjsKICAgICBOU0V2ZW50UGhhc2UgX2V2ZW50U2VuZGVyX3BoYXNlOwog
ICAgIE5TRXZlbnRQaGFzZSBfZXZlbnRTZW5kZXJfbW9tZW50dW1QaGFzZTsKQEAgLTY1LDQwICs2
Nyw0MiBAQCBAcHVibGljCiB9CiAKIC0gKGlkKWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjoo
TlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlNQb2ludClnbG9iYWxMb2NhdGlvbiBz
dGFnZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNzdXJlOihmbG9hdClwcmVzc3VyZSBzdGFnZVRyYW5z
aXRpb246KGZsb2F0KXN0YWdlVHJhbnNpdGlvbiBwaGFzZTooTlNFdmVudFBoYXNlKXBoYXNlIHRp
bWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcilldmVudE51bWJl
ciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93OworLSAoaWQpaW5pdE1hZ25pZnlFdmVudEF0TG9j
YXRpb246KE5TUG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFsTG9j
YXRpb24gbWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIHBoYXNlOihOU0V2ZW50
UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRl
Z2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7CiAtIChOU1RpbWVJbnRl
cnZhbCl0aW1lc3RhbXA7CiBAZW5kCiAKK3N0YXRpYyBDR1NHZXN0dXJlUGhhc2UgRXZlbnRTZW5k
ZXJDR0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UoTlNFdmVudFBoYXNlIHBoYXNlKQorewor
ICAgIHN3aXRjaCAocGhhc2UpIHsKKyAgICBjYXNlIE5TRXZlbnRQaGFzZU1heUJlZ2luOgorICAg
ICAgICByZXR1cm4ga0NHU0dlc3R1cmVQaGFzZU1heUJlZ2luOworCisgICAgY2FzZSBOU0V2ZW50
UGhhc2VCZWdhbjoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VCZWdhbjsKKworICAg
IGNhc2UgTlNFdmVudFBoYXNlQ2hhbmdlZDoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhh
c2VDaGFuZ2VkOworCisgICAgY2FzZSBOU0V2ZW50UGhhc2VDYW5jZWxsZWQ6CisgICAgICAgIHJl
dHVybiBrQ0dTR2VzdHVyZVBoYXNlQ2FuY2VsbGVkOworCisgICAgY2FzZSBOU0V2ZW50UGhhc2VF
bmRlZDoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VFbmRlZDsKKworICAgIGNhc2Ug
TlNFdmVudFBoYXNlTm9uZToKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4ga0NHU0dlc3R1
cmVQaGFzZU5vbmU7CisgICAgfQorfQorCiBAaW1wbGVtZW50YXRpb24gRXZlbnRTZW5kZXJTeW50
aGV0aWNFdmVudAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFByZXNzdXJlRXZlbnRBdExvY2F0aW9u
OihOU1BvaW50KWxvY2F0aW9uIGdsb2JhbExvY2F0aW9uOihOU1BvaW50KWdsb2JhbExvY2F0aW9u
IHN0YWdlOihOU0ludGVnZXIpc3RhZ2UgcHJlc3N1cmU6KGZsb2F0KXByZXNzdXJlIHN0YWdlVHJh
bnNpdGlvbjooZmxvYXQpc3RhZ2VUcmFuc2l0aW9uIHBoYXNlOihOU0V2ZW50UGhhc2UpcGhhc2Ug
dGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRlZ2VyKWV2ZW50TnVt
YmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKIHsKLSAgICBDR1NHZXN0dXJlUGhhc2UgZ2Vz
dHVyZVBoYXNlOwotICAgIHN3aXRjaCAocGhhc2UpIHsKLSAgICBjYXNlIE5TRXZlbnRQaGFzZU1h
eUJlZ2luOgotICAgICAgICBnZXN0dXJlUGhhc2UgPSBrQ0dTR2VzdHVyZVBoYXNlTWF5QmVnaW47
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlQmVnYW46Ci0gICAgICAgIGdl
c3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VCZWdhbjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBOU0V2ZW50UGhhc2VDaGFuZ2VkOgotICAgICAgICBnZXN0dXJlUGhhc2UgPSBrQ0dTR2Vz
dHVyZVBoYXNlQ2hhbmdlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOU0V2ZW50UGhhc2VD
YW5jZWxsZWQ6Ci0gICAgICAgIGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VDYW5jZWxs
ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlRW5kZWQ6Ci0gICAgICAg
IGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VFbmRlZDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBOU0V2ZW50UGhhc2VOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdlc3R1cmVQ
aGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VOb25lOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAg
ICBhdXRvIGNnRXZlbnQgPSBhZG9wdENGKENHRXZlbnRDcmVhdGUobnVsbHB0cikpOwogICAgIENH
RXZlbnRTZXRUeXBlKGNnRXZlbnQuZ2V0KCksIChDR0V2ZW50VHlwZSlrQ0dTRXZlbnRHZXN0dXJl
KTsKLSAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZl
bnRHZXN0dXJlSElEVHlwZSwgMzIpOwotICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChj
Z0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVQaGFzZSwgZ2VzdHVyZVBoYXNlKTsKKyAgICBD
R0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0dXJl
SElEVHlwZSwga0lPSElERXZlbnRUeXBlRm9yY2UpOworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFs
dWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVQaGFzZSwgRXZlbnRTZW5kZXJD
R0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UocGhhc2UpKTsKICAgICBDR0V2ZW50U2V0RG91
YmxlVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUsIHByZXNz
dXJlKTsKICAgICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dF
dmVudFRyYW5zaXRpb25Qcm9ncmVzcywgcHJlc3N1cmUpOwogICAgIENHRXZlbnRTZXRJbnRlZ2Vy
VmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVTdGFnZSwgc3RhZ2VUcmFu
c2l0aW9uKTsKQEAgLTEyMyw2ICsxMjcsMjkgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRQcmVzc3Vy
ZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlMKICAg
ICByZXR1cm4gc2VsZjsKIH0KIAorLSAoaWQpaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246KE5T
UG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFsTG9jYXRpb24gbWFn
bmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIHBoYXNlOihOU0V2ZW50UGhhc2UpcGhh
c2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRlZ2VyKWV2ZW50
TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBhdXRvIGNnRXZlbnQgPSBh
ZG9wdENGKENHRXZlbnRDcmVhdGUobnVsbHB0cikpOworICAgIENHRXZlbnRTZXRUeXBlKGNnRXZl
bnQuZ2V0KCksIChDR0V2ZW50VHlwZSlrQ0dTRXZlbnRHZXN0dXJlKTsKKyAgICBDR0V2ZW50U2V0
SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSwg
a0lPSElERXZlbnRUeXBlWm9vbSk7CisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGNn
RXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVBoYXNlLCBFdmVudFNlbmRlckNHR2VzdHVyZVBo
YXNlRnJvbU5TRXZlbnRQaGFzZShwaGFzZSkpOworICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZp
ZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSwgbWFnbmlmaWNhdGlv
bik7CisKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIF9pbml0V2l0aENHRXZlbnQ6Y2dFdmVudC5n
ZXQoKSBldmVudFJlZjpudWxscHRyXSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfZXZl
bnRTZW5kZXJfbG9jYXRpb24gPSBsb2NhdGlvbjsKKyAgICBfZXZlbnRTZW5kZXJfbG9jYXRpb25J
bldpbmRvdyA9IGdsb2JhbExvY2F0aW9uOworICAgIF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9u
ID0gbWFnbmlmaWNhdGlvbjsKKyAgICBfZXZlbnRTZW5kZXJfcGhhc2UgPSBwaGFzZTsKKyAgICBf
ZXZlbnRTZW5kZXJfdGltZXN0YW1wID0gdGltZTsKKyAgICBfZXZlbnRTZW5kZXJfZXZlbnROdW1i
ZXIgPSBldmVudE51bWJlcjsKKyAgICBfZXZlbnRTZW5kZXJfd2luZG93ID0gd2luZG93OworICAg
IF9ldmVudFNlbmRlcl90eXBlID0gTlNFdmVudFR5cGVNYWduaWZ5OworCisgICAgcmV0dXJuIHNl
bGY7Cit9CisKIC0gKENHRmxvYXQpc3RhZ2VUcmFuc2l0aW9uCiB7CiAgICAgcmV0dXJuIF9ldmVu
dFNlbmRlcl9zdGFnZVRyYW5zaXRpb247CkBAIC0xNjMsNiArMTkwLDExIEBAIC0gKGZsb2F0KXBy
ZXNzdXJlCiAgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9wcmVzc3VyZTsKIH0KIAorLSAoQ0dGbG9h
dCltYWduaWZpY2F0aW9uCit7CisgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9u
OworfQorCiAtIChOU0V2ZW50UGhhc2UpcGhhc2UKIHsKICAgICByZXR1cm4gX2V2ZW50U2VuZGVy
X3BoYXNlOwpAQCAtMzA4LDcgKzM0MCw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VE
b3duKHVuc2lnbmVkIGJ1dHRvbk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1l
Rm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXco
KS0+cGxhdGZvcm1XaW5kb3coKSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0XSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjor
K2V2ZW50TnVtYmVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
TnVtYmVyOisrbV9ldmVudE51bWJlciAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtMzM0LDcgKzM2Niw3IEBAIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCBidXR0b25OdW1iZXIsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV90ZXN0
Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSB3aW5kb3dOdW1iZXJd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBldmVudE51bWJlcjorK2V2ZW50TnVtYmVyIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJlciAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApA
QCAtMzY2LDcgKzM5OCw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2VuZE1vdXNlRG93blRv
U3RhcnRQcmVzc3VyZUV2ZW50cygpCiAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JF
dmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQogICAgICAgICB3aW5kb3dOdW1iZXI6W21fdGVz
dENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgd2luZG93TnVtYmVy
XQogICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0KLSAg
ICAgICAgZXZlbnROdW1iZXI6KytldmVudE51bWJlcgorICAgICAgICBldmVudE51bWJlcjorK21f
ZXZlbnROdW1iZXIKICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQKICAgICAgICAgcHJl
c3N1cmU6MC4wXTsKIApAQCAtMzkwLDcgKzQyMiw3IEBAIFJldGFpblB0cjxOU0V2ZW50PiBFdmVu
dFNlbmRlclByb3h5OjpiZWdpblByZXNzdXJlRXZlbnQoaW50IHN0YWdlKQogICAgICAgICBzdGFn
ZVRyYW5zaXRpb246MAogICAgICAgICBwaGFzZTpOU0V2ZW50UGhhc2VCZWdhbgogICAgICAgICB0
aW1lOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCi0gICAgICAg
IGV2ZW50TnVtYmVyOisrZXZlbnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50
TnVtYmVyCiAgICAgICAgIHdpbmRvdzpbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+
cGxhdGZvcm1WaWV3KCkgd2luZG93XV0pOwogCiAgICAgcmV0dXJuIGV2ZW50OwpAQCAtNDA1LDcg
KzQzNyw3IEBAIFJldGFpblB0cjxOU0V2ZW50PiBFdmVudFNlbmRlclByb3h5OjpwcmVzc3VyZUNo
YW5nZUV2ZW50KGludCBzdGFnZSwgZmxvYXQgcHJlc3N1CiAgICAgICAgIHN0YWdlVHJhbnNpdGlv
bjpkaXJlY3Rpb24gPT0gUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkluY3JlYXNpbmcgPyAwLjUg
OiAtMC41CiAgICAgICAgIHBoYXNlOk5TRXZlbnRQaGFzZUNoYW5nZWQKICAgICAgICAgdGltZTph
YnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQotICAgICAgICBldmVu
dE51bWJlcjorK2V2ZW50TnVtYmVyCisgICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJl
cgogICAgICAgICB3aW5kb3c6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRm
b3JtVmlldygpIHdpbmRvd11dKTsKIAogICAgIHJldHVybiBldmVudDsKQEAgLTQzMCw3ICs0NjIs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygpCiAgICAgICAgIHRp
bWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQogICAg
ICAgICB3aW5kb3dOdW1iZXI6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRm
b3JtV2luZG93KCkgd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF0KLSAgICAgICAgZXZlbnROdW1iZXI6KytldmVudE51bWJlcgor
ICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKICAgICAgICAgY2xpY2tDb3VudDpt
X2NsaWNrQ291bnQKICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtNDY2LDcgKzQ5OCw3IEBA
IHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xpY2soKQog
ICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRp
bWUoKSkKICAgICAgICAgd2luZG93TnVtYmVyOlttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVdpbmRvdygpIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCi0gICAgICAgIGV2ZW50TnVtYmVyOisrZXZl
bnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVyCiAgICAgICAgIGNs
aWNrQ291bnQ6bV9jbGlja0NvdW50CiAgICAgICAgIHByZXNzdXJlOjAuMF07CiAKQEAgLTU2Nyw3
ICs1OTksNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBk
b3VibGUgeSwgV0tTdHJpbmdSZWYgcG9pbnRlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJl
bnRFdmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
d051bWJlcjp2aWV3LndpbmRvdy53aW5kb3dOdW1iZXIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisr
ZXZlbnROdW1iZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRO
dW1iZXI6KyttX2V2ZW50TnVtYmVyIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGlja0NvdW50OihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBtX2NsaWNrQ291bnQgOiAw
KSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTowXTsK
IApAQCAtODcyLDQgKzkwNCw3NyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIH0KIH0K
IAorI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6c2NhbGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8qIG1haW5XZWJW
aWV3ID0gbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKTsKKyAgICBOU1ZpZXcgKnBsYXRm
b3JtVmlldyA9IG1haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKTsKKworICAgIGF1dG8gZXZlbnQg
PSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBhbGxvY10gaW5pdE1hZ25pZnlF
dmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCisg
ICAgICAgIGdsb2JhbExvY2F0aW9uOihbbWFpbldlYlZpZXctPnBsYXRmb3JtV2luZG93KCkgY29u
dmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAx
LCAxKV0ub3JpZ2luKQorICAgICAgICBtYWduaWZpY2F0aW9uOnNjYWxlCisgICAgICAgIHBoYXNl
Ok5TRXZlbnRQaGFzZUJlZ2FuCisgICAgICAgIHRpbWU6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1l
KGN1cnJlbnRFdmVudFRpbWUoKSkKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVy
CisgICAgICAgIHdpbmRvdzpwbGF0Zm9ybVZpZXcud2luZG93XSk7CisKKyAgICBpZiAoTlNWaWV3
ICp0YXJnZXRWaWV3ID0gW3BsYXRmb3JtVmlldyBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2lu
ZG93XV0pIHsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnQuZ2V0KCldOwor
ICAgICAgICBbdGFyZ2V0VmlldyBtYWduaWZ5V2l0aEV2ZW50OmV2ZW50LmdldCgpXTsKKyAgICAg
ICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9IGVsc2UgeworICAgICAgICBO
U1BvaW50IHdpbmRvd0xvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOworICAgICAg
ICBXVEZMb2dBbHdheXMoImdlc3R1cmVTdGFydCBmYWlsZWQgdG8gZmluZCB0aGUgdGFyZ2V0IHZp
ZXcgYXQgJWYsJWZcbiIsIHdpbmRvd0xvY2F0aW9uLngsIHdpbmRvd0xvY2F0aW9uLnkpOworICAg
IH0KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVDaGFuZ2UoZG91Ymxl
IHNjYWxlKQoreworICAgIGF1dG8qIG1haW5XZWJWaWV3ID0gbV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKTsKKyAgICBOU1ZpZXcgKnBsYXRmb3JtVmlldyA9IG1haW5XZWJWaWV3LT5wbGF0
Zm9ybVZpZXcoKTsKKworICAgIGF1dG8gZXZlbnQgPSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50
aGV0aWNFdmVudCBhbGxvY10gaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQo
bV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCisgICAgICAgIGdsb2JhbExvY2F0aW9uOihbbWFp
bldlYlZpZXctPnBsYXRmb3JtV2luZG93KCkgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0
KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKQorICAgICAgICBtYWdu
aWZpY2F0aW9uOnNjYWxlCisgICAgICAgIHBoYXNlOk5TRXZlbnRQaGFzZUNoYW5nZWQKKyAgICAg
ICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQorICAg
ICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKKyAgICAgICAgd2luZG93OnBsYXRmb3Jt
Vmlldy53aW5kb3ddKTsKKworICAgIGlmIChOU1ZpZXcgKnRhcmdldFZpZXcgPSBbcGxhdGZvcm1W
aWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkgeworICAgICAgICBbTlNBcHAg
X3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07CisgICAgICAgIFt0YXJnZXRWaWV3IG1hZ25p
ZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVu
dDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIFdURkxvZ0Fsd2F5cygiZ2VzdHVyZVN0
YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmlldyBhdCAlZiwlZlxuIiwgd2luZG93TG9j
YXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7CisgICAgfQorfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnNjYWxlR2VzdHVyZUVuZChkb3VibGUgc2NhbGUpCit7CisgICAgYXV0byogbWFpbldl
YlZpZXcgPSBtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpOworICAgIE5TVmlldyAqcGxh
dGZvcm1WaWV3ID0gbWFpbldlYlZpZXctPnBsYXRmb3JtVmlldygpOworCisgICAgYXV0byBldmVu
dCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9jXSBpbml0TWFnbmlm
eUV2ZW50QXRMb2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSkK
KyAgICAgICAgZ2xvYmFsTG9jYXRpb246KFttYWluV2ViVmlldy0+cGxhdGZvcm1XaW5kb3coKSBj
b252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFrZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnks
IDEsIDEpXS5vcmlnaW4pCisgICAgICAgIG1hZ25pZmljYXRpb246c2NhbGUKKyAgICAgICAgcGhh
c2U6TlNFdmVudFBoYXNlRW5kZWQKKyAgICAgICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRp
bWUoY3VycmVudEV2ZW50VGltZSgpKQorICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1i
ZXIKKyAgICAgICAgd2luZG93OnBsYXRmb3JtVmlldy53aW5kb3ddKTsKKworICAgIGlmIChOU1Zp
ZXcgKnRhcmdldFZpZXcgPSBbcGxhdGZvcm1WaWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5X
aW5kb3ddXSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07
CisgICAgICAgIFt0YXJnZXRWaWV3IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAg
ICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAg
IE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiZ2VzdHVyZVN0YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQg
dmlldyBhdCAlZiwlZlxuIiwgd2luZG93TG9jYXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7Cisg
ICAgfQorfQorCisjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogfSAvLyBu
YW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTdkYzQ1YjU2MDU4NGVjM2I3M2VkMGM5ZmU5NGE2YzExMjMx
NWNmNy4uYmQxOWVhMzViYjhhZGNiNTI1YzNjNGMzMGM4OGE1YWQ1YTI5OTg5OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTA1LTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSB3YXkgdG8gY3JlYXRlIGAid2hlZWwiYCBldmVudHMgZnJvbSBn
ZXN0dXJlL3RvdWNoIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1Nzg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjcxNDMwOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wNS0xOSAgS3lsZSBQaWRkaW5n
dG9uICA8a3BpZGRpbmd0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtBTkdMRSBNZXRhbF0gU3Vw
cG9ydCBwcm92b2tpbmcgdmVydGV4IGVtdWxhdGlvbiwgcGFzcyBmcmFnbWVudE91dHB1dCB0ZXN0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmUwN2U5N2Y2YTY5NjY5MTI0MGY2NWNhZjY3ZTQzNjlj
ZmRjMGM5Yy4uMmQ2ODdhYzk2M2M2YzQyYTFjNzAyN2RmN2M1MTY0YmI2YjBkMTE0ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC01Myw2ICs1Myw3IEBAIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8g
WyBTa2lwIF0KIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbiBbIFNraXAgXQogZmFzdC9ldmVudHMvY3Vyc29ycyBbIFNraXAgXQor
ZmFzdC9ldmVudHMvZ2VzdHVyZSBbIFNraXAgXQogZmFzdC9ldmVudHMvaW9zIFsgU2tpcCBdCiBm
YXN0L2V2ZW50cy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9wb2ludGVyL2lvcyBbIFNr
aXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429102</attachid>
            <date>2021-05-19 15:32:11 -0700</date>
            <delta_ts>2021-05-19 19:26:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225788-20210519163210.patch</filename>
            <type>text/plain</type>
            <size>41271</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZDUwYTMxM2U3OGUwNjJjMzM0NjI3ZTA1ZGUzNmE1ZGQ4NTEzNjY4Li45
YTQzNDAxYmYxYmNjNTM5MTJmY2JlZjUwZGJlYzk4OGRlMDcxM2U4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjEtMDUtMTkgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBhIHdheSB0byBjcmVhdGUgYCJ3aGVlbCJgIGV2ZW50cyBmcm9tIGdl
c3R1cmUvdG91Y2ggZXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjU3ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc2NzE0MzA4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUZXN0OiBmYXN0L2V2
ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sCisKKyAgICAgICAgT3RoZXIgYnJv
d3NlcnMgaGF2ZSB0YWtlbiB0aGUgYXBwcm9hY2ggb2YgZGlzcGF0Y2hpbmcgYCJ3aGVlbCJgIGV2
ZW50cyB3aXRoIGBjdHJsS2V5YCBhbmQKKyAgICAgICAgYGRlbHRhWWAgd2hlbiBoYW5kbGluZyBt
dWx0aS10b3VjaCBwaW5jaC10by16b29tIGdlc3R1cmVzLiBBZGQgaGVscGVyIGZ1bmN0aW9ucyB0
byBkbyB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtV2hlZWxFdmVudDo6Y3JlYXRlRnJvbUdlc3R1cmUpOiBBZGRlZC4KKwogMjAy
MS0wNS0xOCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBD
RlN0cmluZ1JlZiBhbmQgTlNTdHJpbmcgc3VwcG9ydCBmcm9tIFN0cmluZ0J1aWxkZXIgaW50byBT
dHJpbmdDb25jYXRlbmF0ZUNGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1X
aGVlbEV2ZW50LmNwcAppbmRleCBhNGIwMTdmZmQ2MWU3ZWQ2Mjk5MWIxNDY3MTFiZDM1OTNjOGY2
OGEwLi5iZDdlZWMxODIzMDZjZTExN2EzYTc2OWZhOTljNmU2NDQyY2QxNDc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKQEAgLTI2LDEwICsy
Niw2MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVu
dC5oIgogCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgogCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVFdmVudE1hYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
I2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK1BsYXRmb3JtV2hlZWxFdmVudCBQbGF0
Zm9ybVdoZWVsRXZlbnQ6OmNyZWF0ZUZyb21HZXN0dXJlKGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2
ZW50JiBwbGF0Zm9ybUdlc3R1cmVFdmVudCwgZG91YmxlIGRlbHRhWSkKK3sKKyAgICAvLyBUaGlz
IHRyaWVzIHRvIG1hdGNoIGFzIG11Y2ggb2YgdGhlIGJlaGF2aW9yIG9mIGBXZWJLaXQ6OldlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudGAgYXMKKyAgICAvLyBwb3NzaWJsZSBhc3N1
bWluZyBgLVtOU0V2ZW50IGhhc1ByZWNpc2VTY3JvbGxpbmdEZWx0YXNdYCBhbmQgbm8gYC1bTlNF
dmVudCBfc2Nyb2xsQ291bnRdYC4KKworICAgIGRvdWJsZSBkZWx0YVggPSAwOworICAgIGRvdWJs
ZSB3aGVlbFRpY2tzWCA9IDA7CisgICAgZG91YmxlIHdoZWVsVGlja3NZID0gZGVsdGFZIC8gc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgYm9v
bCBzaGlmdEtleSA9IHBsYXRmb3JtR2VzdHVyZUV2ZW50Lm1vZGlmaWVycygpLmNvbnRhaW5zKFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpTaGlmdEtleSk7CisgICAgYm9vbCBjdHJsS2V5ID0gdHJ1
ZTsKKyAgICBib29sIGFsdEtleSA9IHBsYXRmb3JtR2VzdHVyZUV2ZW50Lm1vZGlmaWVycygpLmNv
bnRhaW5zKFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXkpOworICAgIGJvb2wgbWV0YUtl
eSA9IHBsYXRmb3JtR2VzdHVyZUV2ZW50Lm1vZGlmaWVycygpLmNvbnRhaW5zKFBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyOjpNZXRhS2V5KTsKKyAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgcGxhdGZvcm1X
aGVlbEV2ZW50KHBsYXRmb3JtR2VzdHVyZUV2ZW50LnBvcygpLCBwbGF0Zm9ybUdlc3R1cmVFdmVu
dC5nbG9iYWxQb3NpdGlvbigpLCBkZWx0YVgsIGRlbHRhWSwgd2hlZWxUaWNrc1gsIHdoZWVsVGlj
a3NZLCBTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc2hpZnRLZXksIGN0cmxLZXksIGFsdEtleSwg
bWV0YUtleSk7CisKKyAgICAvLyBQbGF0Zm9ybUV2ZW50CisgICAgcGxhdGZvcm1XaGVlbEV2ZW50
Lm1fdGltZXN0YW1wID0gcGxhdGZvcm1HZXN0dXJlRXZlbnQudGltZXN0YW1wKCk7CisKKyAgICAv
LyBQbGF0Zm9ybVdoZWVsRXZlbnQKKyAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9oYXNQcmVjaXNl
U2Nyb2xsaW5nRGVsdGFzID0gdHJ1ZTsKKworI2lmIEVOQUJMRShLSU5FVElDX1NDUk9MTElORykK
KyAgICBzd2l0Y2ggKHBsYXRmb3JtR2VzdHVyZUV2ZW50LnR5cGUoKSkgeworICAgIGNhc2UgUGxh
dGZvcm1FdmVudDo6R2VzdHVyZVN0YXJ0OgorICAgICAgICBwbGF0Zm9ybVdoZWVsRXZlbnQubV9w
aGFzZSA9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpCZWdhbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQbGF0Zm9ybUV2ZW50OjpHZXN0dXJlQ2hhbmdlOgorICAgICAgICBwbGF0Zm9ybVdo
ZWVsRXZlbnQubV9waGFzZSA9IFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtRXZlbnQ6Okdlc3R1cmVFbmQ6CisgICAgICAg
IHBsYXRmb3JtV2hlZWxFdmVudC5tX3BoYXNlID0gUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2U6OkVu
ZGVkOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShLSU5FVElD
X1NDUk9MTElORykKKworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIHBsYXRmb3JtV2hlZWxFdmVu
dC5tX3VuYWNjZWxlcmF0ZWRTY3JvbGxpbmdEZWx0YVkgPSBkZWx0YVk7CisjZW5kaWYgLy8gUExB
VEZPUk0oQ09DT0EpCisKKyAgICByZXR1cm4gcGxhdGZvcm1XaGVlbEV2ZW50OworfQorCisjZW5k
aWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogI2lmIEVOQUJMRShLSU5FVElDX1ND
Uk9MTElORykKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUGxhdGZv
cm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtV2hlZWxFdmVudC5oCmluZGV4IGQ3MTY5MzQ2YTI0MDIzYzJhNDc4N2FlMzQ1NDBhMzc2MDdj
MGEyZDUuLmM3NDg4NzA0YzhmZDY0MDZlNTYxMTllYzViZGYyODA2NGY4ZGQyZDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5oCkBAIC0zNiw2ICszNiw4
IEBAIGNsYXNzIFRleHRTdHJlYW07CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUGxh
dGZvcm1HZXN0dXJlRXZlbnQ7CisKIGVudW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
cyA6IHVpbnQ4X3QgewogICAgIFNjcm9sbGluZ1RocmVhZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPSAxIDw8IDAsCiAgICAgTWFpblRocmVhZEZvclNjcm9sbGluZyAgICAgICAgICAgICAg
ICAgICAgICA9IDEgPDwgMSwKQEAgLTEwNiw2ICsxMDgsMTAgQEAgcHVibGljOgogICAgIHsKICAg
ICB9CiAKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAgIHN0YXRpYyBQbGF0Zm9y
bVdoZWVsRXZlbnQgY3JlYXRlRnJvbUdlc3R1cmUoY29uc3QgUGxhdGZvcm1HZXN0dXJlRXZlbnQm
LCBkb3VibGUgZGVsdGFZKTsKKyNlbmRpZgorCiAgICAgUGxhdGZvcm1XaGVlbEV2ZW50IGNvcHlT
d2FwcGluZ0RpcmVjdGlvbigpIGNvbnN0CiAgICAgewogICAgICAgICBQbGF0Zm9ybVdoZWVsRXZl
bnQgY29weSA9ICp0aGlzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDFhOGQ4ZmI5ZDkzYTNiZGYzY2FhNjY2NjdkMGU3YzFkYjY3YzQ0MmYuLmM3
YjIzNGM1ZDAzZmU0OGM1NWVhYWY3YjM2N2FhNWQwZDk1MTMzZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAyMS0w
NS0xOSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEg
d2F5IHRvIGNyZWF0ZSBgIndoZWVsImAgZXZlbnRzIGZyb20gZ2VzdHVyZS90b3VjaCBldmVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc4OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzY3MTQzMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gRnJhc2VyLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1
cmVTdGFydCk6IEFkZGVkLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRpbmdDb250cm9sbGVyOjpz
Y2FsZUdlc3R1cmVDaGFuZ2UpOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kaW5nQ29u
dHJvbGxlcjo6c2NhbGVHZXN0dXJlRW5kKTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL21hYy9FdmVudFNlbmRlclByb3h5Lm1tOgorICAgICAgICAoRXZlbnRTZW5kZXJD
R0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UpOgorICAgICAgICAoLVtFdmVudFNlbmRlclN5
bnRoZXRpY0V2ZW50IGluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjpnbG9iYWxMb2NhdGlvbjpz
dGFnZTpwcmVzc3VyZTpzdGFnZVRyYW5zaXRpb246cGhhc2U6dGltZTpldmVudE51bWJlcjp3aW5k
b3c6XSk6CisgICAgICAgICgtW0V2ZW50U2VuZGVyU3ludGhldGljRXZlbnQgaW5pdE1hZ25pZnlF
dmVudEF0TG9jYXRpb246Z2xvYmFsTG9jYXRpb246bWFnbmlmaWNhdGlvbjpwaGFzZTp0aW1lOmV2
ZW50TnVtYmVyOndpbmRvdzpdKTogQWRkZWQuCisgICAgICAgICgtW0V2ZW50U2VuZGVyU3ludGhl
dGljRXZlbnQgbWFnbmlmaWNhdGlvbl0pOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VEb3duKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91
c2VVcCk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNlbmRNb3VzZURvd25Ub1N0
YXJ0UHJlc3N1cmVFdmVudHMpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpiZWdp
blByZXNzdXJlRXZlbnQpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpwcmVzc3Vy
ZUNoYW5nZUV2ZW50KToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VGb3Jj
ZUNsaWNrKToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxN
b3VzZUZvcmNlQ2xpY2spOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojptb3VzZU1v
dmVUbyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZVN0YXJ0
KTogQWRkZWQuCisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNjYWxlR2VzdHVyZUNo
YW5nZSk6IEFkZGVkLgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1
cmVFbmQpOiBBZGRlZC4KKyAgICAgICAgQWxsb3cgdGVzdHMgdG8gc3ludGhlc2l6ZSBzY2FsZSAo
YS5rLmEuIG1hZ25pZnkpIGdlc3R1cmUgZXZlbnRzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRTZW5kZXJQcm94eUlPUy5tbToKKyAgICAgICAg
KFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAgIERyaXZl
LWJ5OiBSZW5hbWUgYGV2ZW50TnVtYmVyYCB0byBgbV9ldmVudE51bWJlcmAgc2luY2UgaXQncyBh
IG1lbWJlciB2YXJpYWJsZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1NjcmlwdHMvZ2Vu
ZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0Rlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9TY3JpcHRzL2dlbmVy
YXRlLWRlcml2ZWQtc291cmNlcy5zaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0Rlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgIE1ha2Ugc3VyZSB0byBwYXNzIGFsbCBmZWF0dXJlIGZs
YWdzIHdoZW4gZ2VuZXJhdGluZyBKUyBmaWxlcyBmcm9tIElETCBmaWxlcy4KKwogMjAyMS0wNS0x
OCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBDRlN0cmlu
Z1JlZiBhbmQgTlNTdHJpbmcgc3VwcG9ydCBmcm9tIFN0cmluZ0J1aWxkZXIgaW50byBTdHJpbmdD
b25jYXRlbmF0ZUNGCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9EZXJpdmVkU291
cmNlcy5tYWtlIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA2MDFiYjA4NzRhMzAwZmNhYmZlMDc4NTViNjI2ZDI3NTc0MzczNGIwLi43YmNlNjdmYWExOTg5
NWZkODZmOTBjZjZhNDhiOGVlMTRkNmVjZWU1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIxLDggKzIxLDI1IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitQRVJMID0gcGVybAogUlVCWSA9IHJ1YnkK
IAoraWZuZXEgKCQoU0RLUk9PVCksKQorICAgIFNES19GTEFHUyA9IC1pc3lzcm9vdCAkKFNES1JP
T1QpCitlbmRpZgorCitpZmVxICgkKFVTRV9MTFZNX1RBUkdFVF9UUklQTEVTX0ZPUl9DTEFORyks
WUVTKQorICAgIFdLX0NVUlJFTlRfQVJDSCA9ICQod29yZCAxLCAkKEFSQ0hTKSkKKyAgICBUQVJH
RVRfVFJJUExFX0ZMQUdTID0gLXRhcmdldCAkKFdLX0NVUlJFTlRfQVJDSCktJChMTFZNX1RBUkdF
VF9UUklQTEVfVkVORE9SKS0kKExMVk1fVEFSR0VUX1RSSVBMRV9PU19WRVJTSU9OKSQoTExWTV9U
QVJHRVRfVFJJUExFX1NVRkZJWCkKK2VuZGlmCisKK0ZSQU1FV09SS19GTEFHUyA6PSAkKHNoZWxs
IGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgJChT
WVNURU1fRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykgfCAkKFBFUkwpIC1lICdwcmludCAiLUYgIiAu
IGpvaW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykKK0hFQURFUl9GTEFHUyA6PSAkKHNoZWxs
IGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoSEVBREVSX1NFQVJDSF9QQVRIUykgJChTWVNU
RU1fSEVBREVSX1NFQVJDSF9QQVRIUykgfCAkKFBFUkwpIC1lICdwcmludCAiLUkiIC4gam9pbigi
IC1JIiwgc3BsaXQoIiAiLCA8PikpOycpCitGRUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVTIDo9
ICQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzF6IC14IGMrKyAtRSAtUCAtZE0gJChTREtfRkxBR1Mp
ICQoVEFSR0VUX1RSSVBMRV9GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdT
KSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8ICQoUEVSTCkgLW5lICJwcmlu
dCBpZiBzL1wjZGVmaW5lICgoSEFWRV98VVNFX3xFTkFCTEVffFdURl9QTEFURk9STV8pXHcrKSAx
L1wxLyIpCisKKyMgRklYTUU6IFRoaXMgc2hvdWxkIGxpc3QgUGxhdGZvcm0uaCBhbmQgYWxsIHRo
ZSB0aGluZ3MgaXQgaW5jbHVkZXMuIENvdWxkIGRvIHRoYXQgYnkgdXNpbmcgdGhlIC1NRCBmbGFn
IGluIHRoZSBDQyBsaW5lIGFib3ZlLgorRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FX0RFUEVO
REVOQ0lFUyA9ICQoRHVtcFJlbmRlclRyZWUpL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKwogVUlTQ1JJ
UFRDT05URVhUX0RJUiA9ICQoRHVtcFJlbmRlclRyZWUpLy4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzCiBEVU1QUkVOREVSVFJFRV9QUkVGRVJFTkNFU19URU1QTEFU
RVNfRElSID0gJChEdW1wUmVuZGVyVHJlZSkvU2NyaXB0cy9QcmVmZXJlbmNlc1RlbXBsYXRlcwog
CkBAIC00Niw5ICs2Myw5IEBAIElETF9BVFRSSUJVVEVTX0ZJTEUgPSAkKFdlYkNvcmVTY3JpcHRz
KS9JRExBdHRyaWJ1dGVzLmpzb24KIAogLlBIT05ZIDogYWxsCiAKLUpTJS5oIEpTJS5jcHAgOiAl
LmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkKK0pTJS5oIEpTJS5jcHAgOiAl
LmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChGRUFUVVJFX0FORF9QTEFU
Rk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCUBlY2hvIEdlbmVyYXRpbmcgYmluZGluZ3MgZm9y
ICQqLi4uCi0JQHBlcmwgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChVSVNDUklQVENPTlRFWFRf
RElSKSAtSSAkKER1bXBSZW5kZXJUcmVlKS9CaW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5l
cmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiIgLS1pbmNsdWRlICQoVUlTQ1JJUFRDT05URVhU
X0RJUikgLS1vdXRwdXREaXIgLiAtLWdlbmVyYXRvciBEdW1wUmVuZGVyVHJlZSAtLWlkbEF0dHJp
YnV0ZXNGaWxlICQoSURMX0FUVFJJQlVURVNfRklMRSkgJDwKKwkkKFBFUkwpIC1JICQoV2ViQ29y
ZVNjcmlwdHMpIC1JICQoVUlTQ1JJUFRDT05URVhUX0RJUikgLUkgJChEdW1wUmVuZGVyVHJlZSkv
QmluZGluZ3MgJChXZWJDb3JlU2NyaXB0cykvZ2VuZXJhdGUtYmluZGluZ3MucGwgLS1kZWZpbmVz
ICIkKEZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMpIiAtLWluY2x1ZGUgJChVSVNDUklQVENP
TlRFWFRfRElSKSAtLW91dHB1dERpciAuIC0tZ2VuZXJhdG9yIER1bXBSZW5kZXJUcmVlIC0taWRs
QXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAkPAogCiBhbGwgOiBcCiAgICAg
JChVSUNPTlRFWFRfSU5URVJGQUNFUzolPUpTJS5oKSBcCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCmluZGV4IGYy
ZDBmZjExY2Y5ODIzNzQ3M2M3YWYxNDM4ZWVjMjZhZWM2YTFlMzQuLjAyMjIxNjJhZjI2NTBiMzIy
MTc4NDkwZTFiMDRkNzk5YmI3ODA2YWUgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCkBAIC0xNSw1ICsxNSw1
IEBAIGlmIFsgISAkQ0MgXTsgdGhlbgogZmkKIAogaWYgWyAiJHtBQ1RJT059IiA9ICJidWlsZCIg
LW8gIiR7QUNUSU9OfSIgPSAiaW5zdGFsbCIgLW8gIiR7QUNUSU9OfSIgPSAiaW5zdGFsbGhkcnMi
IF07IHRoZW4KLSAgICBtYWtlIC1mICIke0R1bXBSZW5kZXJUcmVlfS9EZXJpdmVkU291cmNlcy5t
YWtlIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5hY3RpdmVjcHVgICIke0FSR1NbQF19Igor
ICAgIG1ha2UgLWYgIiR7RHVtcFJlbmRlclRyZWV9L0Rlcml2ZWRTb3VyY2VzLm1ha2UiIC1qIGAv
dXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9PVD0iJHtTREtST09UfSIgIiR7
QVJHU1tAXX0iCiBmaQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDE3YzM4OGU4ZGUxZjdmODU5OGE3NmI2YWM0
ZGE3YmUwOTljMTUxMWIuLmI0MTc3MGY4ODY1OWQ2MDAxODliMjIyNmVjMWM4MDUxNTM4Y2Q0ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKQEAgLTUsNiArNSw3IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3Iv
bG9jYWwvaW5jbHVkZS93dGYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvdXNyL2xvY2FsL2luY2x1ZGUvd3RmL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL3Vzci9sb2NhbC9pbmNsdWRlL3d0Zi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbAogJChQUk9KRUNUX0RJUikvLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorJChQUk9KRUNUX0RJ
UikvRGVyaXZlZFNvdXJjZXMubWFrZQogJChQUk9KRUNUX0RJUikvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VGV4dE1hcmtlci5pZGwKICQoUFJPSkVDVF9E
SVIpL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2Uu
aWRsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGY2
MmNiOWI3NzFiNzY5OTI5NzNhNTc3N2ZmNjFlMDQ4Y2M1NjViNC4uNzRjNDhlMDBmNTZjMWJkYzM3
YmRkNzg0ODg1MjJlZjU5M2I1YjE0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvRGVyaXZl
ZFNvdXJjZXMubWFrZQpAQCAtMjYsOCArMjYsMjUgQEAgVlBBVEggPSBcCiAgICAgJChXZWJLaXRU
ZXN0UnVubmVyKS8uLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncyBc
CiAjCiAKK1BFUkwgPSBwZXJsCiBSVUJZID0gcnVieQogCitpZm5lcSAoJChTREtST09UKSwpCisg
ICAgU0RLX0ZMQUdTID0gLWlzeXNyb290ICQoU0RLUk9PVCkKK2VuZGlmCisKK2lmZXEgKCQoVVNF
X0xMVk1fVEFSR0VUX1RSSVBMRVNfRk9SX0NMQU5HKSxZRVMpCisgICAgV0tfQ1VSUkVOVF9BUkNI
ID0gJCh3b3JkIDEsICQoQVJDSFMpKQorICAgIFRBUkdFVF9UUklQTEVfRkxBR1MgPSAtdGFyZ2V0
ICQoV0tfQ1VSUkVOVF9BUkNIKS0kKExMVk1fVEFSR0VUX1RSSVBMRV9WRU5ET1IpLSQoTExWTV9U
QVJHRVRfVFJJUExFX09TX1ZFUlNJT04pJChMTFZNX1RBUkdFVF9UUklQTEVfU1VGRklYKQorZW5k
aWYKKworRlJBTUVXT1JLX0ZMQUdTIDo9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikgJChGUkFNRVdPUktfU0VBUkNIX1BBVEhTKSAkKFNZU1RFTV9GUkFNRVdPUktfU0VBUkNIX1BB
VEhTKSB8ICQoUEVSTCkgLWUgJ3ByaW50ICItRiAiIC4gam9pbigiIC1GICIsIHNwbGl0KCIgIiwg
PD4pKTsnKQorSEVBREVSX0ZMQUdTIDo9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikgJChIRUFERVJfU0VBUkNIX1BBVEhTKSAkKFNZU1RFTV9IRUFERVJfU0VBUkNIX1BBVEhTKSB8
ICQoUEVSTCkgLWUgJ3ByaW50ICItSSIgLiBqb2luKCIgLUkiLCBzcGxpdCgiICIsIDw+KSk7JykK
K0ZFQVRVUkVfQU5EX1BMQVRGT1JNX0RFRklORVMgOj0gJChzaGVsbCAkKENDKSAtc3RkPWdudSsr
MXogLXggYysrIC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChUQVJHRVRfVFJJUExFX0ZMQUdTKSAk
KEZSQU1FV09SS19GTEFHUykgJChIRUFERVJfRkxBR1MpIC1pbmNsdWRlICJ3dGYvUGxhdGZvcm0u
aCIgL2Rldi9udWxsIHwgJChQRVJMKSAtbmUgInByaW50IGlmIHMvXCNkZWZpbmUgKChIQVZFX3xV
U0VffEVOQUJMRV98V1RGX1BMQVRGT1JNXylcdyspIDEvXDEvIikKKworIyBGSVhNRTogVGhpcyBz
aG91bGQgbGlzdCBQbGF0Zm9ybS5oIGFuZCBhbGwgdGhlIHRoaW5ncyBpdCBpbmNsdWRlcy4gQ291
bGQgZG8gdGhhdCBieSB1c2luZyB0aGUgLU1EIGZsYWcgaW4gdGhlIENDIGxpbmUgYWJvdmUuCitG
RUFUVVJFX0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTID0gJChXZWJLaXRUZXN0UnVu
bmVyKS9EZXJpdmVkU291cmNlcy5tYWtlCisKIFdFQl9QUkVGRVJFTkNFUyA9IFwKICAgICAke1dU
Rl9CVUlMRF9TQ1JJUFRTX0RJUn0vUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXMueWFtbCBcCiAg
ICAgJHtXVEZfQlVJTERfU0NSSVBUU19ESVJ9L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRGVi
dWcueWFtbCBcCkBAIC03Myw5ICs5MCw5IEBAIElETF9BVFRSSUJVVEVTX0ZJTEUgPSAkKFdlYkNv
cmVTY3JpcHRzKS9JRExBdHRyaWJ1dGVzLmpzb24KIAogLlBIT05ZIDogYWxsCiAKLUpTJS5oIEpT
JS5jcHAgOiAlLmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkKK0pTJS5oIEpT
JS5jcHAgOiAlLmlkbCAkKFNDUklQVFMpICQoSURMX0FUVFJJQlVURVNfRklMRSkgJChGRUFUVVJF
X0FORF9QTEFURk9STV9ERUZJTkVfREVQRU5ERU5DSUVTKQogCUBlY2hvIEdlbmVyYXRpbmcgYmlu
ZGluZ3MgZm9yICQqLi4uCi0JQHBlcmwgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChXZWJLaXRU
ZXN0UnVubmVyKS9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncyAtSSAkKFdlYktpdFRlc3RSdW5uZXIp
L1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5lcmF0ZS1iaW5k
aW5ncy5wbCAtLWRlZmluZXMgIiIgLS1pbmNsdWRlIEluamVjdGVkQnVuZGxlL0JpbmRpbmdzIC0t
aW5jbHVkZSBVSVNjcmlwdENvbnRleHQvQmluZGluZ3MgLS1vdXRwdXREaXIgLiAtLWdlbmVyYXRv
ciBUZXN0UnVubmVyIC0taWRsQXR0cmlidXRlc0ZpbGUgJChJRExfQVRUUklCVVRFU19GSUxFKSAk
PAorCSQoUEVSTCkgLUkgJChXZWJDb3JlU2NyaXB0cykgLUkgJChXZWJLaXRUZXN0UnVubmVyKS9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncyAtSSAkKFdlYktpdFRlc3RSdW5uZXIpL1VJU2NyaXB0Q29u
dGV4dC9CaW5kaW5ncyAkKFdlYkNvcmVTY3JpcHRzKS9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAtLWRl
ZmluZXMgIiQoRkVBVFVSRV9BTkRfUExBVEZPUk1fREVGSU5FUykiIC0taW5jbHVkZSBJbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncyAtLWluY2x1ZGUgVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzIC0tb3V0
cHV0RGlyIC4gLS1nZW5lcmF0b3IgVGVzdFJ1bm5lciAtLWlkbEF0dHJpYnV0ZXNGaWxlICQoSURM
X0FUVFJJQlVURVNfRklMRSkgJDwKIAogYWxsIDogXAogICAgICQoSU5KRUNURURfQlVORExFX0lO
VEVSRkFDRVM6JT1KUyUuaCkgXApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9F
dmVudFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJv
eHkuaAppbmRleCAxYTE5ODc0MzU2N2E4YTZlY2Q0ZDRlZWU2ODExNzE4OWFiZGZjOWYyLi4xOGZh
ODkyZTQyN2MwMDBjZDM1N2ZlMTFkODQ1ZWMyMDljZjIxMWQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtODcsNiArODcsMTMgQEAgcHVibGljOgogICAg
IHZvaWQgY2FuY2VsVG91Y2hQb2ludChpbnQgaW5kZXgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
TUFDX0dFU1RVUkVfRVZFTlRTKQorICAgIC8vIEdlc3R1cmUgZXZlbnRzLgorICAgIHZvaWQgc2Nh
bGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKTsKKyAgICB2b2lkIHNjYWxlR2VzdHVyZUNoYW5n
ZShkb3VibGUgc2NhbGUpOworICAgIHZvaWQgc2NhbGVHZXN0dXJlRW5kKGRvdWJsZSBzY2FsZSk7
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBUZXN0Q29udHJvbGxlciogbV90ZXN0Q29udHJvbGxl
cjsKIApAQCAtMTIxLDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgV0tFdmVudE1vdXNlQnV0dG9u
IG1fY2xpY2tCdXR0b24geyBrV0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0b24gfTsKICAgICB1bnNp
Z25lZCBtX21vdXNlQnV0dG9uc0N1cnJlbnRseURvd24geyAwIH07CiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgaW50IGV2ZW50TnVtYmVyIHsgMCB9OworICAgIGludCBtX2V2ZW50TnVtYmVyIHsg
MCB9OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHVpbnQzMl90IG1fYnV0dG9uU3Rh
dGUgeyAwIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdDb250cm9sbGVyLmlk
bAppbmRleCBjMWQyYzQ4NzFiNzZhZWRhNjZiYTVlOGMwZDkyOWNjYTBiM2Q5M2Y3Li5jOTAyM2Ux
MjdmYzVlMzRjODU5NzVkZTc0MjIyNjY4ZjBlMGQ5NTkzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0V2ZW50U2VuZGluZ0NvbnRyb2xs
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwKQEAgLTcxLDUgKzcxLDEyIEBAIGludGVyZmFj
ZSBFdmVudFNlbmRpbmdDb250cm9sbGVyIHsKICAgICB1bmRlZmluZWQgcmVsZWFzZVRvdWNoUG9p
bnQobG9uZyBpbmRleCk7CiAgICAgdW5kZWZpbmVkIGNhbmNlbFRvdWNoUG9pbnQobG9uZyBpbmRl
eCk7CiAjZW5kaWYKKworI2lmIGRlZmluZWQoRU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUykgJiYg
RU5BQkxFX01BQ19HRVNUVVJFX0VWRU5UUworICAgIC8vIEdlc3R1cmUgZXZlbnRzLgorICAgIHVu
ZGVmaW5lZCBzY2FsZUdlc3R1cmVTdGFydChkb3VibGUgc2NhbGUpOworICAgIHVuZGVmaW5lZCBz
Y2FsZUdlc3R1cmVDaGFuZ2UoZG91YmxlIHNjYWxlKTsKKyAgICB1bmRlZmluZWQgc2NhbGVHZXN0
dXJlRW5kKGRvdWJsZSBzY2FsZSk7CisjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0V2ZW50U2VuZGluZ0NvbnRy
b2xsZXIuY3BwCmluZGV4IGY3NDEwNjNhOGQ1MTRkOWZkYzgzYTQ5NjIyNzQyMmMwZjNmYzY0OTUu
LjJhZTk2NzhkNzc3YzI4OTc5NTY4MzEwZTRlYTRkYjQzMTRlOTM0ZDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9FdmVudFNl
bmRpbmdDb250cm9sbGVyLmNwcApAQCAtNjE4LDYgKzYxOCwzNCBAQCB2b2lkIEV2ZW50U2VuZGlu
Z0NvbnRyb2xsZXI6OmNhbmNlbFRvdWNoUG9pbnQoaW50IGluZGV4KQogCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxl
cjo6c2NhbGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8gYm9keSA9IGFk
b3B0V0soV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKyAgICBzZXRWYWx1ZShib2R5LCAi
U3ViTWVzc2FnZSIsICJTY2FsZUdlc3R1cmVTdGFydCIpOworICAgIHNldFZhbHVlKGJvZHksICJT
Y2FsZSIsIHNjYWxlKTsKKyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgiRXZlbnRTZW5k
ZXIiLCBib2R5KTsKK30KKwordm9pZCBFdmVudFNlbmRpbmdDb250cm9sbGVyOjpzY2FsZUdlc3R1
cmVDaGFuZ2UoZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8gYm9keSA9IGFkb3B0V0soV0tNdXRh
YmxlRGljdGlvbmFyeUNyZWF0ZSgpKTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU3ViTWVzc2FnZSIs
ICJTY2FsZUdlc3R1cmVDaGFuZ2UiKTsKKyAgICBzZXRWYWx1ZShib2R5LCAiU2NhbGUiLCBzY2Fs
ZSk7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoIkV2ZW50U2VuZGVyIiwgYm9keSk7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6c2NhbGVHZXN0dXJlRW5kKGRvdWJs
ZSBzY2FsZSkKK3sKKyAgICBhdXRvIGJvZHkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25hcnlD
cmVhdGUoKSk7CisgICAgc2V0VmFsdWUoYm9keSwgIlN1Yk1lc3NhZ2UiLCAiU2NhbGVHZXN0dXJl
RW5kIik7CisgICAgc2V0VmFsdWUoYm9keSwgIlNjYWxlIiwgc2NhbGUpOworICAgIHBvc3RTeW5j
aHJvbm91c1BhZ2VNZXNzYWdlKCJFdmVudFNlbmRlciIsIGJvZHkpOworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogLy8gT2JqZWN0IENyZWF0aW9uCiAKIHZvaWQg
RXZlbnRTZW5kaW5nQ29udHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYgY29u
dGV4dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
RXZlbnRTZW5kaW5nQ29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKaW5kZXggNjljMjg2ZjgzMjViNGFlYzdl
MWVmYjdlNjFjZjU0M2Q3ZjE4MjRhZi4uOWVhZWY2YWFiNzFhOTYxYzA0ZDUwMTdiZmYxMTEzMWEx
YjU3NGY4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLmgKQEAgLTg5LDYgKzg5LDEyIEBA
IHB1YmxpYzoKICAgICB2b2lkIGNhbmNlbFRvdWNoUG9pbnQoaW50IGluZGV4KTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICB2b2lkIHNjYWxlR2VzdHVyZVN0
YXJ0KGRvdWJsZSBzY2FsZSk7CisgICAgdm9pZCBzY2FsZUdlc3R1cmVDaGFuZ2UoZG91YmxlIHNj
YWxlKTsKKyAgICB2b2lkIHNjYWxlR2VzdHVyZUVuZChkb3VibGUgc2NhbGUpOworI2VuZGlmCisK
IHByaXZhdGU6CiAgICAgRXZlbnRTZW5kaW5nQ29udHJvbGxlcigpID0gZGVmYXVsdDsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvRXZlbnRT
ZW5kZXJQcm94eUlPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
aW9zL0V2ZW50U2VuZGVyUHJveHlJT1MubW0KaW5kZXggYzExYzk3ZmNlMzQxNzUyYmM0N2UxNzky
Y2YxZWRhZjYyYzkyNWQ3YS4uNjE0NDI4OTI4MDkwZTk0NGY1YzI2MTdjOWE0YzkxMGNmY2U2OTlj
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3Mv
RXZlbnRTZW5kZXJQcm94eUlPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL2lvcy9FdmVudFNlbmRlclByb3h5SU9TLm1tCkBAIC0zOSw3ICszOSw3IEBAIEV2
ZW50U2VuZGVyUHJveHk6OkV2ZW50U2VuZGVyUHJveHkoVGVzdENvbnRyb2xsZXIqIHRlc3RDb250
cm9sbGVyKQogewogICAgIFVOVVNFRF9QQVJBTShtX3Rlc3RDb250cm9sbGVyKTsKICAgICBVTlVT
RURfUEFSQU0obV9sZWZ0TW91c2VCdXR0b25Eb3duKTsKLSAgICBVTlVTRURfUEFSQU0oZXZlbnRO
dW1iZXIpOworICAgIFVOVVNFRF9QQVJBTShtX2V2ZW50TnVtYmVyKTsKIH0KIAogRXZlbnRTZW5k
ZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5z
aAppbmRleCA1OGQ1Zjc4NmFmYjkzZDgwMTA3OGMzNjQ0YjM4MjZhM2Y3NWJmMjUwLi45YTc2NWJh
MzBiOTYxZWY0Y2MxM2RjZjE1NDlmZTJiZGNiYThmZTNjIDEwMDc1NQotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2gK
QEAgLTE1LDUgKzE1LDUgQEAgaWYgWyAhICRDQyBdOyB0aGVuCiBmaQogCiBpZiBbICIke0FDVElP
Tn0iID0gImJ1aWxkIiAtbyAiJHtBQ1RJT059IiA9ICJpbnN0YWxsIiAtbyAiJHtBQ1RJT059IiA9
ICJpbnN0YWxsaGRycyIgXTsgdGhlbgotICAgIG1ha2UgLWYgIiR7V2ViS2l0VGVzdFJ1bm5lcn0v
RGVyaXZlZFNvdXJjZXMubWFrZSIgLWogYC91c3Ivc2Jpbi9zeXNjdGwgLW4gaHcuYWN0aXZlY3B1
YCAiJHtBUkdTW0BdfSIKKyAgICBtYWtlIC1mICIke1dlYktpdFRlc3RSdW5uZXJ9L0Rlcml2ZWRT
b3VyY2VzLm1ha2UiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmFjdGl2ZWNwdWAgU0RLUk9P
VD0iJHtTREtST09UfSIgIiR7QVJHU1tAXX0iCiBmaQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCBhNTVmYTBlMjRjN2M3MDllYjRkYTJhZjFhZDE5ZGY2YTFl
MjAwMGNlLi4xODE3NzNjNDUxODBkNGQxNTI0M2JhOGUyZDA3NjVjOTg3N2U0ZmM4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTc3Nyw2ICsxNzc3LDI3
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihudWxscHRyKTsKICAgICAgICAgfQogI2VuZGlmCisKKyNpZiBFTkFCTEUoTUFDX0dF
U1RVUkVfRVZFTlRTKQorICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhz
dWJNZXNzYWdlTmFtZSwgIlNjYWxlR2VzdHVyZVN0YXJ0IikpIHsKKyAgICAgICAgICAgIGF1dG8g
c2NhbGUgPSBkb3VibGVWYWx1ZShkaWN0aW9uYXJ5LCAiU2NhbGUiKTsKKyAgICAgICAgICAgIG1f
ZXZlbnRTZW5kZXJQcm94eS0+c2NhbGVHZXN0dXJlU3RhcnQoc2NhbGUpOworICAgICAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTY2FsZUdl
c3R1cmVDaGFuZ2UiKSkgeworICAgICAgICAgICAgYXV0byBzY2FsZSA9IGRvdWJsZVZhbHVlKGRp
Y3Rpb25hcnksICJTY2FsZSIpOworICAgICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5zY2Fs
ZUdlc3R1cmVDaGFuZ2Uoc2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKG51bGxwdHIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoc3ViTWVzc2FnZU5hbWUsICJTY2FsZUdlc3R1cmVFbmQiKSkgeworICAgICAg
ICAgICAgYXV0byBzY2FsZSA9IGRvdWJsZVZhbHVlKGRpY3Rpb25hcnksICJTY2FsZSIpOworICAg
ICAgICAgICAgbV9ldmVudFNlbmRlclByb3h5LT5zY2FsZUdlc3R1cmVFbmQoc2NhbGUpOworICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgICAgICB9Cisj
ZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
bWFjL0V2ZW50U2VuZGVyUHJveHkubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVu
dFNlbmRlclByb3h5Lm1tCmluZGV4IDhlOTk0N2IwYjMyNDBmM2ZjMDliM2M2YWRiNjVlOGYyZTAy
Y2ZlZDQuLjI5NmM5MDJmMzc1YjExODlmNDVlZTU2YmIzZmZkNGQ4MjZkZDI2ZjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbQpAQCAtMzcsNiAr
MzcsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLU3RyaW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQ
YWdlUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgorI2ltcG9ydCA8cGFs
L3NwaS9jb2NvYS9JT0tpdFNQSS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBAaW50
ZXJmYWNlIE5TQXBwbGljYXRpb24gKERldGFpbHMpCkBAIC01NCw2ICs1NSw3IEBAIEBwdWJsaWMK
ICAgICBOU1BvaW50IF9ldmVudFNlbmRlcl9sb2NhdGlvbjsKICAgICBOU0ludGVnZXIgX2V2ZW50
U2VuZGVyX3N0YWdlOwogICAgIGZsb2F0IF9ldmVudFNlbmRlcl9wcmVzc3VyZTsKKyAgICBDR0Zs
b2F0IF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9uOwogICAgIENHRmxvYXQgX2V2ZW50U2VuZGVy
X3N0YWdlVHJhbnNpdGlvbjsKICAgICBOU0V2ZW50UGhhc2UgX2V2ZW50U2VuZGVyX3BoYXNlOwog
ICAgIE5TRXZlbnRQaGFzZSBfZXZlbnRTZW5kZXJfbW9tZW50dW1QaGFzZTsKQEAgLTY1LDQwICs2
Nyw0MiBAQCBAcHVibGljCiB9CiAKIC0gKGlkKWluaXRQcmVzc3VyZUV2ZW50QXRMb2NhdGlvbjoo
TlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlNQb2ludClnbG9iYWxMb2NhdGlvbiBz
dGFnZTooTlNJbnRlZ2VyKXN0YWdlIHByZXNzdXJlOihmbG9hdClwcmVzc3VyZSBzdGFnZVRyYW5z
aXRpb246KGZsb2F0KXN0YWdlVHJhbnNpdGlvbiBwaGFzZTooTlNFdmVudFBoYXNlKXBoYXNlIHRp
bWU6KE5TVGltZUludGVydmFsKXRpbWUgZXZlbnROdW1iZXI6KE5TSW50ZWdlcilldmVudE51bWJl
ciB3aW5kb3c6KE5TV2luZG93ICopd2luZG93OworLSAoaWQpaW5pdE1hZ25pZnlFdmVudEF0TG9j
YXRpb246KE5TUG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFsTG9j
YXRpb24gbWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIHBoYXNlOihOU0V2ZW50
UGhhc2UpcGhhc2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRl
Z2VyKWV2ZW50TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3c7CiAtIChOU1RpbWVJbnRl
cnZhbCl0aW1lc3RhbXA7CiBAZW5kCiAKK3N0YXRpYyBDR1NHZXN0dXJlUGhhc2UgRXZlbnRTZW5k
ZXJDR0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UoTlNFdmVudFBoYXNlIHBoYXNlKQorewor
ICAgIHN3aXRjaCAocGhhc2UpIHsKKyAgICBjYXNlIE5TRXZlbnRQaGFzZU1heUJlZ2luOgorICAg
ICAgICByZXR1cm4ga0NHU0dlc3R1cmVQaGFzZU1heUJlZ2luOworCisgICAgY2FzZSBOU0V2ZW50
UGhhc2VCZWdhbjoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VCZWdhbjsKKworICAg
IGNhc2UgTlNFdmVudFBoYXNlQ2hhbmdlZDoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhh
c2VDaGFuZ2VkOworCisgICAgY2FzZSBOU0V2ZW50UGhhc2VDYW5jZWxsZWQ6CisgICAgICAgIHJl
dHVybiBrQ0dTR2VzdHVyZVBoYXNlQ2FuY2VsbGVkOworCisgICAgY2FzZSBOU0V2ZW50UGhhc2VF
bmRlZDoKKyAgICAgICAgcmV0dXJuIGtDR1NHZXN0dXJlUGhhc2VFbmRlZDsKKworICAgIGNhc2Ug
TlNFdmVudFBoYXNlTm9uZToKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4ga0NHU0dlc3R1
cmVQaGFzZU5vbmU7CisgICAgfQorfQorCiBAaW1wbGVtZW50YXRpb24gRXZlbnRTZW5kZXJTeW50
aGV0aWNFdmVudAogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFByZXNzdXJlRXZlbnRBdExvY2F0aW9u
OihOU1BvaW50KWxvY2F0aW9uIGdsb2JhbExvY2F0aW9uOihOU1BvaW50KWdsb2JhbExvY2F0aW9u
IHN0YWdlOihOU0ludGVnZXIpc3RhZ2UgcHJlc3N1cmU6KGZsb2F0KXByZXNzdXJlIHN0YWdlVHJh
bnNpdGlvbjooZmxvYXQpc3RhZ2VUcmFuc2l0aW9uIHBoYXNlOihOU0V2ZW50UGhhc2UpcGhhc2Ug
dGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRlZ2VyKWV2ZW50TnVt
YmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKIHsKLSAgICBDR1NHZXN0dXJlUGhhc2UgZ2Vz
dHVyZVBoYXNlOwotICAgIHN3aXRjaCAocGhhc2UpIHsKLSAgICBjYXNlIE5TRXZlbnRQaGFzZU1h
eUJlZ2luOgotICAgICAgICBnZXN0dXJlUGhhc2UgPSBrQ0dTR2VzdHVyZVBoYXNlTWF5QmVnaW47
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlQmVnYW46Ci0gICAgICAgIGdl
c3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VCZWdhbjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBOU0V2ZW50UGhhc2VDaGFuZ2VkOgotICAgICAgICBnZXN0dXJlUGhhc2UgPSBrQ0dTR2Vz
dHVyZVBoYXNlQ2hhbmdlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOU0V2ZW50UGhhc2VD
YW5jZWxsZWQ6Ci0gICAgICAgIGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VDYW5jZWxs
ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNFdmVudFBoYXNlRW5kZWQ6Ci0gICAgICAg
IGdlc3R1cmVQaGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VFbmRlZDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBOU0V2ZW50UGhhc2VOb25lOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGdlc3R1cmVQ
aGFzZSA9IGtDR1NHZXN0dXJlUGhhc2VOb25lOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAg
ICBhdXRvIGNnRXZlbnQgPSBhZG9wdENGKENHRXZlbnRDcmVhdGUobnVsbHB0cikpOwogICAgIENH
RXZlbnRTZXRUeXBlKGNnRXZlbnQuZ2V0KCksIChDR0V2ZW50VHlwZSlrQ0dTRXZlbnRHZXN0dXJl
KTsKLSAgICBDR0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZl
bnRHZXN0dXJlSElEVHlwZSwgMzIpOwotICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFsdWVGaWVsZChj
Z0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVQaGFzZSwgZ2VzdHVyZVBoYXNlKTsKKyAgICBD
R0V2ZW50U2V0SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0dXJl
SElEVHlwZSwga0lPSElERXZlbnRUeXBlRm9yY2UpOworICAgIENHRXZlbnRTZXRJbnRlZ2VyVmFs
dWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVQaGFzZSwgRXZlbnRTZW5kZXJD
R0dlc3R1cmVQaGFzZUZyb21OU0V2ZW50UGhhc2UocGhhc2UpKTsKICAgICBDR0V2ZW50U2V0RG91
YmxlVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudFN0YWdlUHJlc3N1cmUsIHByZXNz
dXJlKTsKICAgICBDR0V2ZW50U2V0RG91YmxlVmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dF
dmVudFRyYW5zaXRpb25Qcm9ncmVzcywgcHJlc3N1cmUpOwogICAgIENHRXZlbnRTZXRJbnRlZ2Vy
VmFsdWVGaWVsZChjZ0V2ZW50LmdldCgpLCBrQ0dFdmVudEdlc3R1cmVTdGFnZSwgc3RhZ2VUcmFu
c2l0aW9uKTsKQEAgLTEyMyw2ICsxMjcsMjkgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRQcmVzc3Vy
ZUV2ZW50QXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbiBnbG9iYWxMb2NhdGlvbjooTlMKICAg
ICByZXR1cm4gc2VsZjsKIH0KIAorLSAoaWQpaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246KE5T
UG9pbnQpbG9jYXRpb24gZ2xvYmFsTG9jYXRpb246KE5TUG9pbnQpZ2xvYmFsTG9jYXRpb24gbWFn
bmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIHBoYXNlOihOU0V2ZW50UGhhc2UpcGhh
c2UgdGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZSBldmVudE51bWJlcjooTlNJbnRlZ2VyKWV2ZW50
TnVtYmVyIHdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBhdXRvIGNnRXZlbnQgPSBh
ZG9wdENGKENHRXZlbnRDcmVhdGUobnVsbHB0cikpOworICAgIENHRXZlbnRTZXRUeXBlKGNnRXZl
bnQuZ2V0KCksIChDR0V2ZW50VHlwZSlrQ0dTRXZlbnRHZXN0dXJlKTsKKyAgICBDR0V2ZW50U2V0
SW50ZWdlclZhbHVlRmllbGQoY2dFdmVudC5nZXQoKSwga0NHRXZlbnRHZXN0dXJlSElEVHlwZSwg
a0lPSElERXZlbnRUeXBlWm9vbSk7CisgICAgQ0dFdmVudFNldEludGVnZXJWYWx1ZUZpZWxkKGNn
RXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVBoYXNlLCBFdmVudFNlbmRlckNHR2VzdHVyZVBo
YXNlRnJvbU5TRXZlbnRQaGFzZShwaGFzZSkpOworICAgIENHRXZlbnRTZXREb3VibGVWYWx1ZUZp
ZWxkKGNnRXZlbnQuZ2V0KCksIGtDR0V2ZW50R2VzdHVyZVpvb21WYWx1ZSwgbWFnbmlmaWNhdGlv
bik7CisKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIF9pbml0V2l0aENHRXZlbnQ6Y2dFdmVudC5n
ZXQoKSBldmVudFJlZjpudWxscHRyXSkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfZXZl
bnRTZW5kZXJfbG9jYXRpb24gPSBsb2NhdGlvbjsKKyAgICBfZXZlbnRTZW5kZXJfbG9jYXRpb25J
bldpbmRvdyA9IGdsb2JhbExvY2F0aW9uOworICAgIF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9u
ID0gbWFnbmlmaWNhdGlvbjsKKyAgICBfZXZlbnRTZW5kZXJfcGhhc2UgPSBwaGFzZTsKKyAgICBf
ZXZlbnRTZW5kZXJfdGltZXN0YW1wID0gdGltZTsKKyAgICBfZXZlbnRTZW5kZXJfZXZlbnROdW1i
ZXIgPSBldmVudE51bWJlcjsKKyAgICBfZXZlbnRTZW5kZXJfd2luZG93ID0gd2luZG93OworICAg
IF9ldmVudFNlbmRlcl90eXBlID0gTlNFdmVudFR5cGVNYWduaWZ5OworCisgICAgcmV0dXJuIHNl
bGY7Cit9CisKIC0gKENHRmxvYXQpc3RhZ2VUcmFuc2l0aW9uCiB7CiAgICAgcmV0dXJuIF9ldmVu
dFNlbmRlcl9zdGFnZVRyYW5zaXRpb247CkBAIC0xNjMsNiArMTkwLDExIEBAIC0gKGZsb2F0KXBy
ZXNzdXJlCiAgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9wcmVzc3VyZTsKIH0KIAorLSAoQ0dGbG9h
dCltYWduaWZpY2F0aW9uCit7CisgICAgcmV0dXJuIF9ldmVudFNlbmRlcl9tYWduaWZpY2F0aW9u
OworfQorCiAtIChOU0V2ZW50UGhhc2UpcGhhc2UKIHsKICAgICByZXR1cm4gX2V2ZW50U2VuZGVy
X3BoYXNlOwpAQCAtMzA4LDcgKzM0MCw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VE
b3duKHVuc2lnbmVkIGJ1dHRvbk51bWJlciwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1l
Rm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXco
KS0+cGxhdGZvcm1XaW5kb3coKSB3aW5kb3dOdW1iZXJdCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGN1cnJlbnRDb250
ZXh0XSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjor
K2V2ZW50TnVtYmVyIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
TnVtYmVyOisrbV9ldmVudE51bWJlciAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtMzM0LDcgKzM2Niw3IEBAIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCh1bnNpZ25lZCBidXR0b25OdW1iZXIsIFdLRXZlbnRN
b2RpZmllcnMgbW9kaWZpZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRpbWUoKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjpbbV90ZXN0
Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1XaW5kb3coKSB3aW5kb3dOdW1iZXJd
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6W05TR3Jh
cGhpY3NDb250ZXh0IGN1cnJlbnRDb250ZXh0XSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBldmVudE51bWJlcjorK2V2ZW50TnVtYmVyIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJlciAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApA
QCAtMzY2LDcgKzM5OCw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2VuZE1vdXNlRG93blRv
U3RhcnRQcmVzc3VyZUV2ZW50cygpCiAgICAgICAgIHRpbWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JF
dmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQogICAgICAgICB3aW5kb3dOdW1iZXI6W21fdGVz
dENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtV2luZG93KCkgd2luZG93TnVtYmVy
XQogICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBjdXJyZW50Q29udGV4dF0KLSAg
ICAgICAgZXZlbnROdW1iZXI6KytldmVudE51bWJlcgorICAgICAgICBldmVudE51bWJlcjorK21f
ZXZlbnROdW1iZXIKICAgICAgICAgY2xpY2tDb3VudDptX2NsaWNrQ291bnQKICAgICAgICAgcHJl
c3N1cmU6MC4wXTsKIApAQCAtMzkwLDcgKzQyMiw3IEBAIFJldGFpblB0cjxOU0V2ZW50PiBFdmVu
dFNlbmRlclByb3h5OjpiZWdpblByZXNzdXJlRXZlbnQoaW50IHN0YWdlKQogICAgICAgICBzdGFn
ZVRyYW5zaXRpb246MAogICAgICAgICBwaGFzZTpOU0V2ZW50UGhhc2VCZWdhbgogICAgICAgICB0
aW1lOmFic29sdXRlVGltZUZvckV2ZW50VGltZShjdXJyZW50RXZlbnRUaW1lKCkpCi0gICAgICAg
IGV2ZW50TnVtYmVyOisrZXZlbnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50
TnVtYmVyCiAgICAgICAgIHdpbmRvdzpbbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKS0+
cGxhdGZvcm1WaWV3KCkgd2luZG93XV0pOwogCiAgICAgcmV0dXJuIGV2ZW50OwpAQCAtNDA1LDcg
KzQzNyw3IEBAIFJldGFpblB0cjxOU0V2ZW50PiBFdmVudFNlbmRlclByb3h5OjpwcmVzc3VyZUNo
YW5nZUV2ZW50KGludCBzdGFnZSwgZmxvYXQgcHJlc3N1CiAgICAgICAgIHN0YWdlVHJhbnNpdGlv
bjpkaXJlY3Rpb24gPT0gUHJlc3N1cmVDaGFuZ2VEaXJlY3Rpb246OkluY3JlYXNpbmcgPyAwLjUg
OiAtMC41CiAgICAgICAgIHBoYXNlOk5TRXZlbnRQaGFzZUNoYW5nZWQKICAgICAgICAgdGltZTph
YnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQotICAgICAgICBldmVu
dE51bWJlcjorK2V2ZW50TnVtYmVyCisgICAgICAgIGV2ZW50TnVtYmVyOisrbV9ldmVudE51bWJl
cgogICAgICAgICB3aW5kb3c6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRm
b3JtVmlldygpIHdpbmRvd11dKTsKIAogICAgIHJldHVybiBldmVudDsKQEAgLTQzMCw3ICs0NjIs
NyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRm9yY2VDbGljaygpCiAgICAgICAgIHRp
bWVzdGFtcDphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQogICAg
ICAgICB3aW5kb3dOdW1iZXI6W21fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRm
b3JtV2luZG93KCkgd2luZG93TnVtYmVyXQogICAgICAgICBjb250ZXh0OltOU0dyYXBoaWNzQ29u
dGV4dCBjdXJyZW50Q29udGV4dF0KLSAgICAgICAgZXZlbnROdW1iZXI6KytldmVudE51bWJlcgor
ICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKICAgICAgICAgY2xpY2tDb3VudDpt
X2NsaWNrQ291bnQKICAgICAgICAgcHJlc3N1cmU6MC4wXTsKIApAQCAtNDY2LDcgKzQ5OCw3IEBA
IHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c3RhcnRBbmRDYW5jZWxNb3VzZUZvcmNlQ2xpY2soKQog
ICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJlbnRFdmVudFRp
bWUoKSkKICAgICAgICAgd2luZG93TnVtYmVyOlttX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVdpbmRvdygpIHdpbmRvd051bWJlcl0KICAgICAgICAgY29udGV4dDpbTlNH
cmFwaGljc0NvbnRleHQgY3VycmVudENvbnRleHRdCi0gICAgICAgIGV2ZW50TnVtYmVyOisrZXZl
bnROdW1iZXIKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVyCiAgICAgICAgIGNs
aWNrQ291bnQ6bV9jbGlja0NvdW50CiAgICAgICAgIHByZXNzdXJlOjAuMF07CiAKQEAgLTU2Nyw3
ICs1OTksNyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSB4LCBk
b3VibGUgeSwgV0tTdHJpbmdSZWYgcG9pbnRlclR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1lKGN1cnJl
bnRFdmVudFRpbWUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRv
d051bWJlcjp2aWV3LndpbmRvdy53aW5kb3dOdW1iZXIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgY3VycmVudENvbnRl
eHRdIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TnVtYmVyOisr
ZXZlbnROdW1iZXIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRO
dW1iZXI6KyttX2V2ZW50TnVtYmVyIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGlja0NvdW50OihtX2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBtX2NsaWNrQ291bnQgOiAw
KSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZTowXTsK
IApAQCAtODcyLDQgKzkwNCw3NyBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgeCwgaW50IHksIGludAogICAgIH0KIH0K
IAorI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6c2NhbGVHZXN0dXJlU3RhcnQoZG91YmxlIHNjYWxlKQoreworICAgIGF1dG8qIG1haW5XZWJW
aWV3ID0gbV90ZXN0Q29udHJvbGxlci0+bWFpbldlYlZpZXcoKTsKKyAgICBOU1ZpZXcgKnBsYXRm
b3JtVmlldyA9IG1haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKTsKKworICAgIGF1dG8gZXZlbnQg
PSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50aGV0aWNFdmVudCBhbGxvY10gaW5pdE1hZ25pZnlF
dmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCisg
ICAgICAgIGdsb2JhbExvY2F0aW9uOihbbWFpbldlYlZpZXctPnBsYXRmb3JtV2luZG93KCkgY29u
dmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAx
LCAxKV0ub3JpZ2luKQorICAgICAgICBtYWduaWZpY2F0aW9uOnNjYWxlCisgICAgICAgIHBoYXNl
Ok5TRXZlbnRQaGFzZUJlZ2FuCisgICAgICAgIHRpbWU6YWJzb2x1dGVUaW1lRm9yRXZlbnRUaW1l
KGN1cnJlbnRFdmVudFRpbWUoKSkKKyAgICAgICAgZXZlbnROdW1iZXI6KyttX2V2ZW50TnVtYmVy
CisgICAgICAgIHdpbmRvdzpwbGF0Zm9ybVZpZXcud2luZG93XSk7CisKKyAgICBpZiAoTlNWaWV3
ICp0YXJnZXRWaWV3ID0gW3BsYXRmb3JtVmlldyBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2lu
ZG93XV0pIHsKKyAgICAgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZlbnQuZ2V0KCldOwor
ICAgICAgICBbdGFyZ2V0VmlldyBtYWduaWZ5V2l0aEV2ZW50OmV2ZW50LmdldCgpXTsKKyAgICAg
ICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6bmlsXTsKKyAgICB9IGVsc2UgeworICAgICAgICBO
U1BvaW50IHdpbmRvd0xvY2F0aW9uID0gW2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddOworICAgICAg
ICBXVEZMb2dBbHdheXMoImdlc3R1cmVTdGFydCBmYWlsZWQgdG8gZmluZCB0aGUgdGFyZ2V0IHZp
ZXcgYXQgJWYsJWZcbiIsIHdpbmRvd0xvY2F0aW9uLngsIHdpbmRvd0xvY2F0aW9uLnkpOworICAg
IH0KK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzY2FsZUdlc3R1cmVDaGFuZ2UoZG91Ymxl
IHNjYWxlKQoreworICAgIGF1dG8qIG1haW5XZWJWaWV3ID0gbV90ZXN0Q29udHJvbGxlci0+bWFp
bldlYlZpZXcoKTsKKyAgICBOU1ZpZXcgKnBsYXRmb3JtVmlldyA9IG1haW5XZWJWaWV3LT5wbGF0
Zm9ybVZpZXcoKTsKKworICAgIGF1dG8gZXZlbnQgPSBhZG9wdE5TKFtbRXZlbnRTZW5kZXJTeW50
aGV0aWNFdmVudCBhbGxvY10gaW5pdE1hZ25pZnlFdmVudEF0TG9jYXRpb246TlNNYWtlUG9pbnQo
bV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnkpCisgICAgICAgIGdsb2JhbExvY2F0aW9uOihbbWFp
bldlYlZpZXctPnBsYXRmb3JtV2luZG93KCkgY29udmVydFJlY3RUb1NjcmVlbjpOU01ha2VSZWN0
KG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCAxLCAxKV0ub3JpZ2luKQorICAgICAgICBtYWdu
aWZpY2F0aW9uOnNjYWxlCisgICAgICAgIHBoYXNlOk5TRXZlbnRQaGFzZUNoYW5nZWQKKyAgICAg
ICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRpbWUoY3VycmVudEV2ZW50VGltZSgpKQorICAg
ICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1iZXIKKyAgICAgICAgd2luZG93OnBsYXRmb3Jt
Vmlldy53aW5kb3ddKTsKKworICAgIGlmIChOU1ZpZXcgKnRhcmdldFZpZXcgPSBbcGxhdGZvcm1W
aWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddXSkgeworICAgICAgICBbTlNBcHAg
X3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07CisgICAgICAgIFt0YXJnZXRWaWV3IG1hZ25p
ZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVu
dDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAgIE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAgICAgIFdURkxvZ0Fsd2F5cygiZ2VzdHVyZVN0
YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQgdmlldyBhdCAlZiwlZlxuIiwgd2luZG93TG9j
YXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7CisgICAgfQorfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnNjYWxlR2VzdHVyZUVuZChkb3VibGUgc2NhbGUpCit7CisgICAgYXV0byogbWFpbldl
YlZpZXcgPSBtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpOworICAgIE5TVmlldyAqcGxh
dGZvcm1WaWV3ID0gbWFpbldlYlZpZXctPnBsYXRmb3JtVmlldygpOworCisgICAgYXV0byBldmVu
dCA9IGFkb3B0TlMoW1tFdmVudFNlbmRlclN5bnRoZXRpY0V2ZW50IGFsbG9jXSBpbml0TWFnbmlm
eUV2ZW50QXRMb2NhdGlvbjpOU01ha2VQb2ludChtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSkK
KyAgICAgICAgZ2xvYmFsTG9jYXRpb246KFttYWluV2ViVmlldy0+cGxhdGZvcm1XaW5kb3coKSBj
b252ZXJ0UmVjdFRvU2NyZWVuOk5TTWFrZVJlY3QobV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnks
IDEsIDEpXS5vcmlnaW4pCisgICAgICAgIG1hZ25pZmljYXRpb246c2NhbGUKKyAgICAgICAgcGhh
c2U6TlNFdmVudFBoYXNlRW5kZWQKKyAgICAgICAgdGltZTphYnNvbHV0ZVRpbWVGb3JFdmVudFRp
bWUoY3VycmVudEV2ZW50VGltZSgpKQorICAgICAgICBldmVudE51bWJlcjorK21fZXZlbnROdW1i
ZXIKKyAgICAgICAgd2luZG93OnBsYXRmb3JtVmlldy53aW5kb3ddKTsKKworICAgIGlmIChOU1Zp
ZXcgKnRhcmdldFZpZXcgPSBbcGxhdGZvcm1WaWV3IGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5X
aW5kb3ddXSkgeworICAgICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVudC5nZXQoKV07
CisgICAgICAgIFt0YXJnZXRWaWV3IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnQuZ2V0KCldOworICAg
ICAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpuaWxdOworICAgIH0gZWxzZSB7CisgICAgICAg
IE5TUG9pbnQgd2luZG93TG9jYXRpb24gPSBbZXZlbnQgbG9jYXRpb25JbldpbmRvd107CisgICAg
ICAgIFdURkxvZ0Fsd2F5cygiZ2VzdHVyZVN0YXJ0IGZhaWxlZCB0byBmaW5kIHRoZSB0YXJnZXQg
dmlldyBhdCAlZiwlZlxuIiwgd2luZG93TG9jYXRpb24ueCwgd2luZG93TG9jYXRpb24ueSk7Cisg
ICAgfQorfQorCisjZW5kaWYgLy8gRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKwogfSAvLyBu
YW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTdkYzQ1YjU2MDU4NGVjM2I3M2VkMGM5ZmU5NGE2YzExMjMx
NWNmNy4uYmU2MTg1ODk5N2Y5ODkwODE5N2VmMTQ4MWYwMmJjNjBhZmU0ZDU1MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTA1LTE5ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSB3YXkgdG8gY3JlYXRlIGAid2hlZWwiYCBldmVudHMgZnJvbSBn
ZXN0dXJlL3RvdWNoIGV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1Nzg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NjcxNDMwOD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0wNS0xOSAgS3lsZSBQaWRkaW5n
dG9uICA8a3BpZGRpbmd0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFtBTkdMRSBNZXRhbF0gU3Vw
cG9ydCBwcm92b2tpbmcgdmVydGV4IGVtdWxhdGlvbiwgcGFzcyBmcmFnbWVudE91dHB1dCB0ZXN0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmUwN2U5N2Y2YTY5NjY5MTI0MGY2NWNhZjY3ZTQzNjlj
ZmRjMGM5Yy4uMmQ2ODdhYzk2M2M2YzQyYTFjNzAyN2RmN2M1MTY0YmI2YjBkMTE0ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC01Myw2ICs1Myw3IEBAIGZhc3QvdmlzdWFsLXZpZXdwb3J0L2lvcy8g
WyBTa2lwIF0KIGZhc3QvZGV2aWNlLW9yaWVudGF0aW9uIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Rl
dmljZS1vcmllbnRhdGlvbiBbIFNraXAgXQogZmFzdC9ldmVudHMvY3Vyc29ycyBbIFNraXAgXQor
ZmFzdC9ldmVudHMvZ2VzdHVyZSBbIFNraXAgXQogZmFzdC9ldmVudHMvaW9zIFsgU2tpcCBdCiBm
YXN0L2V2ZW50cy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9wb2ludGVyL2lvcyBbIFNr
aXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZ2VzdHVyZS93aGVlbC1m
cm9tLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZ2VzdHVy
ZS93aGVlbC1mcm9tLWdlc3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGIxOWFhNTUy
ZGRiM2UyYWM5MGY1ZDA2ZTBjZWNhOWFjMTg3NTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1NyBAQAorVGVzdHMgd2hlZWwgZXZlbnQgZGlzcGF0Y2hpbmcgZm9yIGdlc3R1
cmUgZXZlbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCB0aGF0IHdo
ZWVsIGV2ZW50cyBhcmUgbm90IGRpc3BhdGNoZWQgaWYgZ2VzdHVyZSBldmVudHMgYXJlIG5vdCBw
cmV2ZW50RGVmYXVsdC4KKworRGlzcGF0Y2hpbmcgJ2dlc3R1cmVzdGFydCcuLi4KK0hhbmRsaW5n
ICdnZXN0dXJlc3RhcnQnIGV2ZW50IGF0ICg1OSwgNTkpLi4uCitIYW5kbGluZyAnd2hlZWwnIGV2
ZW50IGF0ICg1OSwgNTkpLi4uCitQQVNTIGV2ZW50LmN0cmxLZXkgaXMgdHJ1ZQorUEFTUyBldmVu
dC5kZWx0YVkgaXMgd2l0aGluIDAuMDEgb2YgLTEKKworRGlzcGF0Y2hpbmcgJ2dlc3R1cmVjaGFu
Z2UnLi4uCitIYW5kbGluZyAnZ2VzdHVyZWNoYW5nZScgZXZlbnQgYXQgKDU5LCA1OSkuLi4KK0hh
bmRsaW5nICd3aGVlbCcgZXZlbnQgYXQgKDU5LCA1OSkuLi4KK1BBU1MgZXZlbnQuY3RybEtleSBp
cyB0cnVlCitQQVNTIGV2ZW50LmRlbHRhWSBpcyB3aXRoaW4gMC4wMSBvZiAtMgorCitEaXNwYXRj
aGluZyAnZ2VzdHVyZWNoYW5nZScuLi4KK0hhbmRsaW5nICdnZXN0dXJlY2hhbmdlJyBldmVudCBh
dCAoNTksIDU5KS4uLgorSGFuZGxpbmcgJ3doZWVsJyBldmVudCBhdCAoNTksIDU5KS4uLgorUEFT
UyBldmVudC5jdHJsS2V5IGlzIHRydWUKK1BBU1MgZXZlbnQuZGVsdGFZIGlzIHdpdGhpbiAwLjAx
IG9mIC0zCisKK0Rpc3BhdGNoaW5nICdnZXN0dXJlZW5kJy4uLgorSGFuZGxpbmcgJ2dlc3R1cmVl
bmQnIGV2ZW50IGF0ICg1OSwgNTkpLi4uCitIYW5kbGluZyAnd2hlZWwnIGV2ZW50IGF0ICg1OSwg
NTkpLi4uCitQQVNTIGV2ZW50LmN0cmxLZXkgaXMgdHJ1ZQorUEFTUyBldmVudC5kZWx0YVkgaXMg
d2l0aGluIDAuMDEgb2YgLTQKKworVGVzdCB0aGF0IHdoZWVsIGV2ZW50cyBhcmUgbm90IGRpc3Bh
dGNoZWQgaWYgZ2VzdHVyZSBldmVudHMgYXJlIHByZXZlbnREZWZhdWx0LgorCitEaXNwYXRjaGlu
ZyAnZ2VzdHVyZXN0YXJ0Jy4uLgorSGFuZGxpbmcgJ2dlc3R1cmVzdGFydCcgZXZlbnQgYXQgKDU5
LCA1OSkuLi4KK0NhbGxpbmcgYHByZXZlbnREZWZhdWx0YC4uLgorUEFTUyBkaWREaXNwYXRjaFdo
ZWVsIGlzIGZhbHNlCisKK0Rpc3BhdGNoaW5nICdnZXN0dXJlY2hhbmdlJy4uLgorSGFuZGxpbmcg
J2dlc3R1cmVjaGFuZ2UnIGV2ZW50IGF0ICg1OSwgNTkpLi4uCitDYWxsaW5nIGBwcmV2ZW50RGVm
YXVsdGAuLi4KK1BBU1MgZGlkRGlzcGF0Y2hXaGVlbCBpcyBmYWxzZQorCitEaXNwYXRjaGluZyAn
Z2VzdHVyZWNoYW5nZScuLi4KK0hhbmRsaW5nICdnZXN0dXJlY2hhbmdlJyBldmVudCBhdCAoNTks
IDU5KS4uLgorQ2FsbGluZyBgcHJldmVudERlZmF1bHRgLi4uCitQQVNTIGRpZERpc3BhdGNoV2hl
ZWwgaXMgZmFsc2UKKworRGlzcGF0Y2hpbmcgJ2dlc3R1cmVlbmQnLi4uCitIYW5kbGluZyAnZ2Vz
dHVyZWVuZCcgZXZlbnQgYXQgKDU5LCA1OSkuLi4KK0NhbGxpbmcgYHByZXZlbnREZWZhdWx0YC4u
LgorUEFTUyBkaWREaXNwYXRjaFdoZWVsIGlzIGZhbHNlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9nZXN0dXJlL3doZWVsLWZyb20tZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvZ2VzdHVyZS93aGVlbC1mcm9tLWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YzQ3MGFjYzc2MzIzOWFmNjg3MzE4N2MzMGY2NDkxNDEyNWE2ZTllCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZ2VzdHVyZS93aGVlbC1mcm9tLWdlc3R1cmUuaHRt
bApAQCAtMCwwICsxLDExNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorI3RhcmdldCB7CisgICAgYm9yZGVyOiAxcHggc29saWQ7CisgICAgd2lkdGg6IDEwMHB4
OworICAgIGhlaWdodDogMTAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordmFyIGRpZERp
c3BhdGNoV2hlZWwgPSBmYWxzZTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9u
IGRpc3BhdGNoQW5kSGFuZGxlR2VzdHVyZUV2ZW50KGV2ZW50VG9XYWl0Rm9yLCBzY2FsZSwgc2hv
dWxkUHJldmVudERlZmF1bHQpIHsKKyAgICBkZWJ1ZygiIik7CisKKyAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBmdW5jdGlvbiB3aGVlbEhhbmRs
ZXIoZXZlbnQpIHsKKyAgICAgICAgICAgIGRlYnVnKGBIYW5kbGluZyAnd2hlZWwnIGV2ZW50IGF0
ICgke2V2ZW50LnBhZ2VYfSwgJHtldmVudC5wYWdlWX0pLi4uYCk7CisKKyAgICAgICAgICAgIHNo
b3VsZEJlVHJ1ZSgiZXZlbnQuY3RybEtleSIpOworICAgICAgICAgICAgc2hvdWxkQmVDbG9zZVRv
KCJldmVudC5kZWx0YVkiLCBzY2FsZSAqIC0xMDAsIDAuMDEpOworCisgICAgICAgICAgICBpZiAo
IXNob3VsZFByZXZlbnREZWZhdWx0KQorICAgICAgICAgICAgICAgIGhhbmRsZWQoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdlc3R1cmVIYW5kbGVyKGV2ZW50KSB7CisgICAgICAg
ICAgICBkZWJ1ZyhgSGFuZGxpbmcgJyR7ZXZlbnQudHlwZX0nIGV2ZW50IGF0ICgke2V2ZW50LnBh
Z2VYfSwgJHtldmVudC5wYWdlWX0pLi4uYCk7CisKKyAgICAgICAgICAgIGlmICghc2hvdWxkUHJl
dmVudERlZmF1bHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBkZWJ1
ZygiQ2FsbGluZyBgcHJldmVudERlZmF1bHRgLi4uIik7CisgICAgICAgICAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOworCisgICAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gZXZlbnRUb1dh
aXRGb3IpIHsKKyAgICAgICAgICAgICAgICBkaWREaXNwYXRjaFdoZWVsID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgLy8gR2l2ZSB0aW1lIGZvciBhIGAid2hlZWwiYCBldmVudCB0byBiZSBkaXNw
YXRjaGVkIHNvIGZhaWx1cmVzIGNhbiBiZSBmb3VuZC4KKyAgICAgICAgICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgiZGlkRGlzcGF0
Y2hXaGVlbCIpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkKCk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBoYW5k
bGVkKCkgeworICAgICAgICAgICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIiwg
d2hlZWxIYW5kbGVyKTsKKyAgICAgICAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJn
ZXN0dXJlc3RhcnQiLCBnZXN0dXJlSGFuZGxlcik7CisgICAgICAgICAgICB0YXJnZXQucmVtb3Zl
RXZlbnRMaXN0ZW5lcigiZ2VzdHVyZWNoYW5nZSIsIGdlc3R1cmVIYW5kbGVyKTsKKyAgICAgICAg
ICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJnZXN0dXJlZW5kIiwgZ2VzdHVyZUhhbmRs
ZXIpOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisKKyAgICAgICAgdGFyZ2V0
LmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIiwgd2hlZWxIYW5kbGVyLCB7b25jZTogdHJ1ZX0pOwor
CisgICAgICAgIC8vIEFkZCBsaXN0ZW5lcnMgZm9yIGVhY2ggcGhhc2UganVzdCBpbiBjYXNlIG11
bHRpcGxlIGFyZSBkaXNwYXRjaGVkICh3aGljaCB3b3VsZCBiZSB3cm9uZykuCisgICAgICAgIHRh
cmdldC5hZGRFdmVudExpc3RlbmVyKCJnZXN0dXJlc3RhcnQiLCBnZXN0dXJlSGFuZGxlciwge29u
Y2U6IHRydWV9KTsKKyAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImdlc3R1cmVjaGFu
Z2UiLCBnZXN0dXJlSGFuZGxlciwge29uY2U6IHRydWV9KTsKKyAgICAgICAgdGFyZ2V0LmFkZEV2
ZW50TGlzdGVuZXIoImdlc3R1cmVlbmQiLCBnZXN0dXJlSGFuZGxlciwge29uY2U6IHRydWV9KTsK
KworICAgICAgICBkZWJ1ZyhgRGlzcGF0Y2hpbmcgJyR7ZXZlbnRUb1dhaXRGb3J9Jy4uLmApOwor
ICAgICAgICBzd2l0Y2ggKGV2ZW50VG9XYWl0Rm9yKSB7CisgICAgICAgIGNhc2UgImdlc3R1cmVz
dGFydCI6CisgICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZUdlc3R1cmVTdGFydChzY2FsZSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiZ2VzdHVyZWNoYW5nZSI6CisgICAg
ICAgICAgICBldmVudFNlbmRlci5zY2FsZUdlc3R1cmVDaGFuZ2Uoc2NhbGUpOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgImdlc3R1cmVlbmQiOgorICAgICAgICAgICAgZXZlbnRT
ZW5kZXIuc2NhbGVHZXN0dXJlRW5kKHNjYWxlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgaWYgKCF3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZGVidWcoIkZBSUw6IFRoaXMgdGVzdCByZXF1
aXJlcyB3aW5kb3cuZXZlbnRTZW5kZXIuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0TGVmdCArICh0YXJnZXQub2Zm
c2V0V2lkdGggLyAyKSwgdGFyZ2V0Lm9mZnNldFRvcCArICh0YXJnZXQub2Zmc2V0SGVpZ2h0IC8g
MikpOworCisgICAgZGVidWcoIlRlc3QgdGhhdCB3aGVlbCBldmVudHMgYXJlIG5vdCBkaXNwYXRj
aGVkIGlmIGdlc3R1cmUgZXZlbnRzIGFyZSBub3QgcHJldmVudERlZmF1bHQuIik7CisgICAgYXdh
aXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1cmVzdGFydCIsIDAuMDEsIGZh
bHNlKTsKKyAgICBhd2FpdCBkaXNwYXRjaEFuZEhhbmRsZUdlc3R1cmVFdmVudCgiZ2VzdHVyZWNo
YW5nZSIsIDAuMDIsIGZhbHNlKTsKKyAgICBhd2FpdCBkaXNwYXRjaEFuZEhhbmRsZUdlc3R1cmVF
dmVudCgiZ2VzdHVyZWNoYW5nZSIsIDAuMDMsIGZhbHNlKTsKKyAgICBhd2FpdCBkaXNwYXRjaEFu
ZEhhbmRsZUdlc3R1cmVFdmVudCgiZ2VzdHVyZWVuZCIsIDAuMDQsIGZhbHNlKTsKKworICAgIGRl
YnVnKCIiKTsKKworICAgIGRlYnVnKCJUZXN0IHRoYXQgd2hlZWwgZXZlbnRzIGFyZSBub3QgZGlz
cGF0Y2hlZCBpZiBnZXN0dXJlIGV2ZW50cyBhcmUgcHJldmVudERlZmF1bHQuIik7CisgICAgYXdh
aXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZlbnQoImdlc3R1cmVzdGFydCIsIDAuMDEsIHRy
dWUpOworICAgIGF3YWl0IGRpc3BhdGNoQW5kSGFuZGxlR2VzdHVyZUV2ZW50KCJnZXN0dXJlY2hh
bmdlIiwgMC4wMiwgdHJ1ZSk7CisgICAgYXdhaXQgZGlzcGF0Y2hBbmRIYW5kbGVHZXN0dXJlRXZl
bnQoImdlc3R1cmVjaGFuZ2UiLCAwLjAzLCB0cnVlKTsKKyAgICBhd2FpdCBkaXNwYXRjaEFuZEhh
bmRsZUdlc3R1cmVFdmVudCgiZ2VzdHVyZWVuZCIsIDAuMDQsIHRydWUpOworCisgICAgZGVidWco
IiIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgd2hlZWwgZXZlbnQgZGlzcGF0Y2hpbmcgZm9yIGdlc3R1
cmUgZXZlbnRzLiIpOworCitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>