<?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>218864</bug_id>
          
          <creation_ts>2020-11-12 11:24:44 -0800</creation_ts>
          <short_desc>[iOS][FCR] Add new look for progress bars</short_desc>
          <delta_ts>2020-12-01 14:46:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=219410</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>218808</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706943</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-12 11:24:44 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706944</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-12 11:25:01 -0800</bug_when>
    <thetext>&lt;rdar://problem/71334958&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706945</commentid>
    <comment_count>2</comment_count>
      <attachid>413956</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-12 11:26:43 -0800</bug_when>
    <thetext>Created attachment 413956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706975</commentid>
    <comment_count>3</comment_count>
      <attachid>413956</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-12 12:22:14 -0800</bug_when>
    <thetext>Comment on attachment 413956
Patch

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

Can we find a way to regression-test this code?

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:954
&gt; +static const Seconds progressAnimationFrameRate = 33_ms; // 30 fps

Please use constexpr for cases like this.

Please include comments explaining &quot;why&quot; in a case like this. How did we decide that this should be 30 fps?

This constant should not be named &quot;frame rate&quot; because it does not contain a frame rate or frame frequency value. Instead it contains a frame duration or frame interval. Let’s not use a &quot;counterfactual&quot; in the name.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:969
&gt; +    if (rect.width() &lt; 10 || rect.height() &lt; 4) {

Where did this constants come from? Ideally we use named constants for such things. I think the code below implies that these are &quot;the size of a standard progress bar&quot;.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:975
&gt; +    int progressBarHeight = 4;

Please use constexpr for something like this. Maybe outside the function with the other constants? Or at the top? With comment explaining why.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:977
&gt; +    float verticalOffset = (rect.height() - progressBarHeight) / 2.0f;
&gt; +    float verticalRenderingPosition = rect.y() + verticalOffset;

I don’t think we need a separate local variable for this. Also seems the name &quot;vertical rendering position&quot; is a little wordy. Might look for a shorter name, like top or barTop maybe?

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:978
&gt; +    FloatSize roundedCornerRadius(2.5f, 1.5f);

I suggest using constexpr here and having a comment explaining where this comes from. Might also want a shorter name, like cornerRadius.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:981
&gt; +    FloatRoundedRect roundedTrackRect(trackRect, roundedCornerRadius, roundedCornerRadius, roundedCornerRadius, roundedCornerRadius);

Seems like we should add a constructor for FloatRoundedRect when the radius is the same for all four corners, to make this code easier to read.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:982
&gt; +    context.fillRoundedRect(roundedTrackRect, SRGBA&lt;uint8_t&gt; { 238, 238, 238 });

Seems like this color should also be named constant, so we can comment where it came from.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:985
&gt; +    float barLeft = trackRect.x();

Seems like this could be rect.x() instead that that would be a little clearer.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:987
&gt; +    auto&amp; renderProgress = downcast&lt;RenderProgress&gt;(renderer);

Very strange that this cast is needed; can we fix theme API so this is done by the caller?

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:990
&gt; +        double position = clampTo(renderProgress.position(), 0.0f, 1.0f);
&gt; +        barWidth = position * trackRect.width();

It’s very strange to include the &quot;f&quot; and make these float constants when clamping a double. You could use clampTo&lt;float&gt; maybe? Or maybe this:

    barWidth = std::clamp(renderProgress.position(), 0, 1) * trackRect.width();

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:999
&gt; +        auto startTime = renderProgress.animationStartTime();
&gt; +        auto currentTime = MonotonicTime::now();
&gt; +        Seconds elapsed = currentTime - startTime;

I don’t think we need these local variables.

    auto elapsed = renderProgress.animationStartTime() - MonotonicTime::now();

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1002
&gt; +        float position = fmodf(elapsed.value(), 1.0f);
&gt; +        float offset = position * (trackRect.width() + barWidth);

Again, I think doing these in one line might be better.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1008
&gt; +            barLeft = trackRect.x() - barWidth + offset;

Maybe this instead:

    barLeft -= barWidth - offset;

Trying to figure out what would be clearest.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1014
&gt; +    context.fillRoundedRect(FloatRoundedRect(barRect, roundedCornerRadius, roundedCornerRadius, roundedCornerRadius, roundedCornerRadius), SRGBA&lt;uint8_t&gt; { 0, 122, 255 });

Named constant for this color?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707015</commentid>
    <comment_count>4</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-12 14:28:50 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 413956 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413956&amp;action=review
&gt; 
&gt; Can we find a way to regression-test this code?

I think (mismatch) ref tests are the only thing we can test for here. Such as a 50% progress bar having a different appearance from a 100% progress bar, as well as seeing how the progress bar responds to different CSS styles. I will add a runtime flag to enable testing of the redesigned elements and then come back and add tests to this patch. 
 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:954
&gt; &gt; +static const Seconds progressAnimationFrameRate = 33_ms; // 30 fps
&gt; 
&gt; Please use constexpr for cases like this.
&gt; 
&gt; Please include comments explaining &quot;why&quot; in a case like this. How did we
&gt; decide that this should be 30 fps?
&gt; 
&gt; This constant should not be named &quot;frame rate&quot; because it does not contain a
&gt; frame rate or frame frequency value. Instead it contains a frame duration or
&gt; frame interval. Let’s not use a &quot;counterfactual&quot; in the name.

Will do. This constant was taken from RenderThemeMac, so I will clean up the name there too.

&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:987
&gt; &gt; +    auto&amp; renderProgress = downcast&lt;RenderProgress&gt;(renderer);
&gt; 
&gt; Very strange that this cast is needed; can we fix theme API so this is done
&gt; by the caller?

I can move the cast to the caller in this instance, since paintProgressBar has always early returned if !is&lt;RenderProgress&gt;(renderer).

But it cannot be a general change to the theme API, since any RenderBox could have &quot;-webkit-appearance&quot; in it&apos;s style to paint a native control. That is why RenderTheme::paint only deals with RenderBoxes, and calls the appropriate method based on their &quot;-webkit-appearance&quot; value.

It looks like the only two appearance values that enforce a particular &quot;Render*&quot; are progress-bar (RenderProgress) and attachment (RenderAttachment).

Should I still move the cast to the caller or keep things the way they are for more consistency in the RenderTheme::paint code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707025</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-12 14:37:03 -0800</bug_when>
    <thetext>(In reply to Aditya Keerthi from comment #4)
&gt; Should I still move the cast to the caller or keep things the way they are
&gt; for more consistency in the RenderTheme::paint code?

The cast should go wherever the check is. I did’t completely follow the explanation. If there is somewhere that is doing a check, the cast should be right there.

The anti-pattern we are trying to avoid or keep to a minimum: Check in one function, pass an argument of a less-specific type, then cast in another function based on the knowledge that the check was done in the first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707031</commentid>
    <comment_count>6</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-12 14:45:54 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; (In reply to Aditya Keerthi from comment #4)
&gt; &gt; Should I still move the cast to the caller or keep things the way they are
&gt; &gt; for more consistency in the RenderTheme::paint code?
&gt; 
&gt; The cast should go wherever the check is. I did’t completely follow the
&gt; explanation. If there is somewhere that is doing a check, the cast should be
&gt; right there.
&gt; 
&gt; The anti-pattern we are trying to avoid or keep to a minimum: Check in one
&gt; function, pass an argument of a less-specific type, then cast in another
&gt; function based on the knowledge that the check was done in the first.

The cast is currently performed in the same method as the check (no checks are performed earlier), so I will keep the cast as-is.

However, I will move the cast closer to the check for clarity (the check is at the top of RenderThemeIOS::paintProgressBar).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707971</commentid>
    <comment_count>7</comment_count>
      <attachid>414275</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-16 13:21:19 -0800</bug_when>
    <thetext>Created attachment 414275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707974</commentid>
    <comment_count>8</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-16 13:23:12 -0800</bug_when>
    <thetext>This patch will apply once https://bugs.webkit.org/show_bug.cgi?id=218808 has landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708709</commentid>
    <comment_count>9</comment_count>
      <attachid>414275</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-11-18 12:11:05 -0800</bug_when>
    <thetext>Comment on attachment 414275
Patch

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

The new patch LGTM (just a minor comment).

It looks like Darin reviewed it already as well.

&gt; Source/WebCore/rendering/RenderThemeIOS.h:116
&gt; +    Seconds animationRepeatIntervalForProgressBar(RenderProgress&amp;) const final;

Nit - can this take a `const RenderProgress&amp;`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709180</commentid>
    <comment_count>10</comment_count>
      <attachid>414601</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-11-19 10:59:26 -0800</bug_when>
    <thetext>Created attachment 414601
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709335</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-19 16:43:44 -0800</bug_when>
    <thetext>commit-queue failed to commit attachment 414601 to WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709354</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-19 17:42:07 -0800</bug_when>
    <thetext>Committed r270065: &lt;https://trac.webkit.org/changeset/270065&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414601.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413956</attachid>
            <date>2020-11-12 11:26:43 -0800</date>
            <delta_ts>2020-11-16 13:21:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218864-20201112142646.patch</filename>
            <type>text/plain</type>
            <size>5486</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEwZGMyYmJlNDNiZjUx
MDQ5ZGNkM2Q4ODM4YWI1NTI1MjQxOGRmYS4uNmRjOTI3NDNiNTAyN2M2OGI3NjcyZDQ4MDdjZmQ4
ZDkzODY2MDM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTExLTEyICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBuZXcgbG9vayBmb3IgcHJvZ3Jlc3MgYmFycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMz
NDk1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjphbmltYXRpb25S
ZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNzQmFyKToKKworICAgICAgICBVcGRhdGVkIGFwcGVh
cmFuY2Ugb2YgZGV0ZXJtaW5hdGUgcHJvZ3Jlc3MgYmFycyB0byBtYXRjaCBVSUtpdC4KKworICAg
ICAgICBBZGRlZCBhbiBhbmltYXRlZCBpbmRldGVybWluYXRlIHByb2dyZXNzIGJhciwgYnkgaW1w
bGVtZW50aW5nIHRoZQorICAgICAgICBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNz
QmFyIG1ldGhvZCBpbiBSZW5kZXJUaGVtZUlPUy4gVGhpcworICAgICAgICBtYXRjaGVzIFJlbmRl
clRoZW1lTWFjLiBPbiBtYWNPUywgdGhlIGFuaW1hdGlvbiBzdGFydCB0aW1lIGFuZCB0aGUKKyAg
ICAgICAgY3VycmVudCB0aW1lIGFyZSBmb3J3YXJkZWQgdG8gQ29yZVVJIGZvciBkcmF3aW5nLiBI
b3dldmVyLCBvbiBpT1MsIHdlCisgICAgICAgIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIHBhaW50
IHRoZSBhbmltYXRlZCBwcm9ncmVzcyBiYXIgb3Vyc2VsdmVzLgorCiAyMDIwLTExLTExICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBuZXcgbG9vayBmb3IgY2hlY2tib3hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MuaAppbmRleCA4Mzk0YWNmOWE0NDA4OTQ4NmFkOTcyNWZhODhkODlmNGRhNzZjMDU3
Li4yYzdjNTc2ZTJmZjk0Yjk4ZTQ0MWY1MGFiODg5NTAzOTI4YTBhNWFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtMTAwLDYgKzEwMCw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUmLCBjb25zdCBF
bGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludFNsaWRlclRodW1iRGVjb3Jh
dGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpIG92ZXJyaWRlOwogCisjaWYgRU5BQkxFKElPU19GT1JNX0NPTlRST0xfUkVGUkVTSCkKKyAg
ICBTZWNvbmRzIGFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJv
Z3Jlc3MmKSBjb25zdCBmaW5hbDsKKyNlbmRpZgogICAgIGJvb2wgcGFpbnRQcm9ncmVzc0Jhcihj
b25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3Zl
cnJpZGU7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCBhMWZiMzU3N2U4NDFlN2YxMmEyYzdhMWY0
OGU0ZDhkNmU3M2ZmY2NlLi5lNTM1YzEzNGUwZDY2YTY1M2NlNmMxMzc1NTA0ZjVlYTViMTEwNGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC05NDks
NiArOTQ5LDc1IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50U2xpZGVyVGh1bWJEZWNvcmF0
aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKKyNpZiBFTkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQorCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0ZSA9IDMzX21zOyAvLyAzMCBmcHMKKwor
U2Vjb25kcyBSZW5kZXJUaGVtZUlPUzo6YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVz
c0JhcihSZW5kZXJQcm9ncmVzcyYpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2dyZXNzQW5pbWF0
aW9uRnJhbWVSYXRlOworfQorCitib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNzQmFy
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIGlmICghaXM8UmVuZGVyUHJvZ3Jlc3M+KHJl
bmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBhdXRvJiBjb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQoKTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoY29udGV4dCk7CisKKyAgICBpZiAocmVjdC53aWR0aCgpIDwgMTAgfHwgcmVjdC5oZWlnaHQo
KSA8IDQpIHsKKyAgICAgICAgLy8gVGhlIHJlY3QgaXMgc21hbGxlciB0aGFuIHRoZSBzdGFuZGFy
ZCBwcm9ncmVzcyBiYXIuIFdlIGNsaXAgdG8gdGhlIGVsZW1lbnQncyByZWN0IHRvIGF2b2lkCisg
ICAgICAgIC8vIGxlYWtpbmcgcGl4ZWxzIG91dHNpZGUgdGhlIHJlcGFpbnQgcmVjdC4KKyAgICAg
ICAgY29udGV4dC5jbGlwKHJlY3QpOworICAgIH0KKworICAgIGludCBwcm9ncmVzc0JhckhlaWdo
dCA9IDQ7CisgICAgZmxvYXQgdmVydGljYWxPZmZzZXQgPSAocmVjdC5oZWlnaHQoKSAtIHByb2dy
ZXNzQmFySGVpZ2h0KSAvIDIuMGY7CisgICAgZmxvYXQgdmVydGljYWxSZW5kZXJpbmdQb3NpdGlv
biA9IHJlY3QueSgpICsgdmVydGljYWxPZmZzZXQ7CisgICAgRmxvYXRTaXplIHJvdW5kZWRDb3Ju
ZXJSYWRpdXMoMi41ZiwgMS41Zik7CisKKyAgICBGbG9hdFJlY3QgdHJhY2tSZWN0KHJlY3QueCgp
LCB2ZXJ0aWNhbFJlbmRlcmluZ1Bvc2l0aW9uLCByZWN0LndpZHRoKCksIHByb2dyZXNzQmFySGVp
Z2h0KTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRUcmFja1JlY3QodHJhY2tSZWN0LCBy
b3VuZGVkQ29ybmVyUmFkaXVzLCByb3VuZGVkQ29ybmVyUmFkaXVzLCByb3VuZGVkQ29ybmVyUmFk
aXVzLCByb3VuZGVkQ29ybmVyUmFkaXVzKTsKKyAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChy
b3VuZGVkVHJhY2tSZWN0LCBTUkdCQTx1aW50OF90PiB7IDIzOCwgMjM4LCAyMzggfSk7CisKKyAg
ICBmbG9hdCBiYXJXaWR0aDsKKyAgICBmbG9hdCBiYXJMZWZ0ID0gdHJhY2tSZWN0LngoKTsKKwor
ICAgIGF1dG8mIHJlbmRlclByb2dyZXNzID0gZG93bmNhc3Q8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRl
cmVyKTsKKyAgICBpZiAocmVuZGVyUHJvZ3Jlc3MuaXNEZXRlcm1pbmF0ZSgpKSB7CisgICAgICAg
IGRvdWJsZSBwb3NpdGlvbiA9IGNsYW1wVG8ocmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSwgMC4w
ZiwgMS4wZik7CisgICAgICAgIGJhcldpZHRoID0gcG9zaXRpb24gKiB0cmFja1JlY3Qud2lkdGgo
KTsKKworICAgICAgICBpZiAoIXJlbmRlclByb2dyZXNzLnN0eWxlKCkuaXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpKQorICAgICAgICAgICAgYmFyTGVmdCA9IHRyYWNrUmVjdC5tYXhYKCkgLSBiYXJX
aWR0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBiYXJXaWR0aCA9IDAuMjVmICogdHJhY2tSZWN0
LndpZHRoKCk7CisKKyAgICAgICAgYXV0byBzdGFydFRpbWUgPSByZW5kZXJQcm9ncmVzcy5hbmlt
YXRpb25TdGFydFRpbWUoKTsKKyAgICAgICAgYXV0byBjdXJyZW50VGltZSA9IE1vbm90b25pY1Rp
bWU6Om5vdygpOworICAgICAgICBTZWNvbmRzIGVsYXBzZWQgPSBjdXJyZW50VGltZSAtIHN0YXJ0
VGltZTsKKworICAgICAgICBmbG9hdCBwb3NpdGlvbiA9IGZtb2RmKGVsYXBzZWQudmFsdWUoKSwg
MS4wZik7CisgICAgICAgIGZsb2F0IG9mZnNldCA9IHBvc2l0aW9uICogKHRyYWNrUmVjdC53aWR0
aCgpICsgYmFyV2lkdGgpOworCisgICAgICAgIGJvb2wgcmV2ZXJzZURpcmVjdGlvbiA9IHN0YXRp
Y19jYXN0PGludD4oZWxhcHNlZC52YWx1ZSgpKSAlIDI7CisgICAgICAgIGlmIChyZXZlcnNlRGly
ZWN0aW9uKQorICAgICAgICAgICAgYmFyTGVmdCA9IHRyYWNrUmVjdC5tYXhYKCkgLSBvZmZzZXQ7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJhckxlZnQgPSB0cmFja1JlY3QueCgpIC0gYmFy
V2lkdGggKyBvZmZzZXQ7CisKKyAgICAgICAgY29udGV4dC5jbGlwUm91bmRlZFJlY3Qocm91bmRl
ZFRyYWNrUmVjdCk7CisgICAgfQorCisgICAgRmxvYXRSZWN0IGJhclJlY3QoYmFyTGVmdCwgdmVy
dGljYWxSZW5kZXJpbmdQb3NpdGlvbiwgYmFyV2lkdGgsIHByb2dyZXNzQmFySGVpZ2h0KTsKKyAg
ICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChGbG9hdFJvdW5kZWRSZWN0KGJhclJlY3QsIHJvdW5k
ZWRDb3JuZXJSYWRpdXMsIHJvdW5kZWRDb3JuZXJSYWRpdXMsIHJvdW5kZWRDb3JuZXJSYWRpdXMs
IHJvdW5kZWRDb3JuZXJSYWRpdXMpLCBTUkdCQTx1aW50OF90PiB7IDAsIDEyMiwgMjU1IH0pOwor
CisgICAgcmV0dXJuIGZhbHNlOworfQorCisjZWxzZQorCiBib29sIFJlbmRlclRoZW1lSU9TOjpw
YWludFByb2dyZXNzQmFyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmICghaXM8UmVu
ZGVyUHJvZ3Jlc3M+KHJlbmRlcmVyKSkKQEAgLTEwMzAsNiArMTA5OSw4IEBAIGJvb2wgUmVuZGVy
VGhlbWVJT1M6OnBhaW50UHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwg
Y29uc3QgUGFpbnRJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjZW5kaWYKKwogI2lmIEVOQUJM
RShEQVRBTElTVF9FTEVNRU5UKQogSW50U2l6ZSBSZW5kZXJUaGVtZUlPUzo6c2xpZGVyVGlja1Np
emUoKSBjb25zdAogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414275</attachid>
            <date>2020-11-16 13:21:19 -0800</date>
            <delta_ts>2020-11-18 12:11:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218864-20201116162126.patch</filename>
            <type>text/plain</type>
            <size>16632</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGViYWYyYjNjY2I4NjY0
OWJmNDFhZWU1OWViNmFiOGUxNjZlNDE3OS4uZDcwZmNhNjQ2NTFhYzM5NzJhOGYwZGQ4MWQ0NDYw
NDYzYWVhZWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTExLTE2ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBuZXcgbG9vayBmb3IgcHJvZ3Jlc3MgYmFycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMz
NDk1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0czogZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvZmlsbGVk
LWFwcGVhcmFuY2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250
cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvaW5kZXRlcm1pbmF0ZS1hcHBlYXJhbmNlLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3J0
bC1hcHBlYXJhbmNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29u
dHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS13aWR0aC5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpGbG9hdFJvdW5kZWRSZWN0OjpSYWRpaTo6UmFkaWkpOgorCisgICAg
ICAgIEFkZGVkIGEgbmV3IGluaXRpYWxpemVyIHRvIGJlIHVzZWQgd2hlbiBhbGwgcmFkaWkgaGF2
ZSB0aGUgc2FtZSB2YWx1ZQorICAgICAgICBidXQgdGhlIGhvcml6b250YWwgYW5kIHZlcnRpY2Fs
IGNvbXBvbmVudHMgb2YgYW4gaW5kaXZpZHVhbCByYWRpdXMgYXJlCisgICAgICAgIG5vdCBlcXVh
bC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
SU9TOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9T
OjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNzQmFyRkNSKToKKworICAgICAg
ICBVcGRhdGVkIGFwcGVhcmFuY2Ugb2YgZGV0ZXJtaW5hdGUgcHJvZ3Jlc3MgYmFycyB0byBtYXRj
aCBVSUtpdC4KKworICAgICAgICBBZGRlZCBhbiBhbmltYXRlZCBpbmRldGVybWluYXRlIHByb2dy
ZXNzIGJhciwgYnkgaW1wbGVtZW50aW5nIHRoZQorICAgICAgICBhbmltYXRpb25SZXBlYXRJbnRl
cnZhbEZvclByb2dyZXNzQmFyIG1ldGhvZCBpbiBSZW5kZXJUaGVtZUlPUy4gVGhpcworICAgICAg
ICBtYXRjaGVzIFJlbmRlclRoZW1lTWFjLiBPbiBtYWNPUywgdGhlIGFuaW1hdGlvbiBzdGFydCB0
aW1lIGFuZCB0aGUKKyAgICAgICAgY3VycmVudCB0aW1lIGFyZSBmb3J3YXJkZWQgdG8gQ29yZVVJ
IGZvciBkcmF3aW5nLiBIb3dldmVyLCBvbiBpT1MsIHdlCisgICAgICAgIHVzZSB0aGlzIGluZm9y
bWF0aW9uIHRvIHBhaW50IHRoZSBhbmltYXRlZCBwcm9ncmVzcyBiYXIgb3Vyc2VsdmVzLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOiBSZW5hbWVkIGNvbnN0YW50IGZv
ciBhY2N1cmFjeS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphbmltYXRpb25S
ZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyIGNvbnN0KToKKwogMjAyMC0xMS0xMyAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bRkNSXSBBZGQg
bmV3IGxvb2sgZm9yIGNoZWNrYm94ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaAppbmRleCA4ZWZlZTU3YTllNDdjYzkwNzZhOGE1
ZTc3YmVmMjIyMTQwZWI4ZGI3Li5jNTg0ZmIyYzgyMDA0M2UwMjFhY2IxOWZhMWYxOWJlNDY5MTEz
ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJv
dW5kZWRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
b3VuZGVkUmVjdC5oCkBAIC02Niw2ICs2NiwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHsKICAgICAg
ICAgfQogCisgICAgICAgIGV4cGxpY2l0IFJhZGlpKGZsb2F0IHVuaWZvcm1SYWRpdXNXaWR0aCwg
ZmxvYXQgdW5pZm9ybVJhZGl1c0hlaWdodCkKKyAgICAgICAgICAgIDogbV90b3BMZWZ0KHVuaWZv
cm1SYWRpdXNXaWR0aCwgdW5pZm9ybVJhZGl1c0hlaWdodCkKKyAgICAgICAgICAgICwgbV90b3BS
aWdodCh1bmlmb3JtUmFkaXVzV2lkdGgsIHVuaWZvcm1SYWRpdXNIZWlnaHQpCisgICAgICAgICAg
ICAsIG1fYm90dG9tTGVmdCh1bmlmb3JtUmFkaXVzV2lkdGgsIHVuaWZvcm1SYWRpdXNIZWlnaHQp
CisgICAgICAgICAgICAsIG1fYm90dG9tUmlnaHQodW5pZm9ybVJhZGl1c1dpZHRoLCB1bmlmb3Jt
UmFkaXVzSGVpZ2h0KQorICAgICAgICB7CisgICAgICAgIH0KKwogICAgICAgICB2b2lkIHNldFRv
cExlZnQoY29uc3QgRmxvYXRTaXplJiBzaXplKSB7IG1fdG9wTGVmdCA9IHNpemU7IH0KICAgICAg
ICAgdm9pZCBzZXRUb3BSaWdodChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV90b3BSaWdodCA9
IHNpemU7IH0KICAgICAgICAgdm9pZCBzZXRCb3R0b21MZWZ0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6
ZSkgeyBtX2JvdHRvbUxlZnQgPSBzaXplOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5oCmluZGV4IDVhMTRjNjNhNzc3ODI4NjcyZDg4NjkzNTQwMmI1YjNlMTJhMTk5
NDEuLjE5ZjcwM2RiZDY2ZTdjNzZjYzNkMjYwZjU1MjI0MjMyNjJkYmZlNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC0xMTIsNiArMTEyLDkgQEAgcHJp
dmF0ZToKIAogI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCiAgICAgYm9vbCBw
YWludENoZWNrYm94KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSBvdmVycmlkZTsKKworICAgIFNlY29uZHMgYW5pbWF0aW9uUmVwZWF0SW50ZXJ2
YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wg
cGFpbnRQcm9ncmVzc0JhckZDUihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jik7CiAjZW5kaWYKIAogICAgIGJvb2wgc3VwcG9ydHNGb2N1c1Jpbmco
Y29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCAzZWI0MjllYmI1M2FhODkxOTQ3NjhiN2I0YWY2NzU2
ZGEwMTZhZjhjLi42MzUzMGUyYWNmNWIxOWI5YTY4NTdiNjRkMTM2ODRkNjY3M2YyY2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC05MDIsNiArOTAy
LDExIEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50U2xpZGVyVGh1bWJEZWNvcmF0aW9ucyhj
b25zdCBSZW5kZXJPYmplY3QmIGJveCwgY29uc3QKIAogYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFp
bnRQcm9ncmVzc0Jhcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyNpZiBFTkFCTEUoSU9TX0ZP
Uk1fQ09OVFJPTF9SRUZSRVNIKQorICAgIGlmIChyZW5kZXJlci5zZXR0aW5ncygpLmlPU0Zvcm1D
b250cm9sUmVmcmVzaEVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIHBhaW50UHJvZ3Jlc3NCYXJG
Q1IocmVuZGVyZXIsIHBhaW50SW5mbywgcmVjdCk7CisjZW5kaWYKKwogICAgIGlmICghaXM8UmVu
ZGVyUHJvZ3Jlc3M+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTIwMzQs
NiArMjAzOSw3MCBAQCBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludENoZWNrYm94KGNvbnN0IFJl
bmRlck9iamVjdCYgYm94LCBjb25zdCBQYWludEluZm8mIHBhaQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAorLy8gQW5pbWF0ZSB0aGUgaW5kZXRlcm1pbmF0ZSBwcm9ncmVzcyBiYXIgYXQgMzAgZnBz
LiBUaGlzIHZhbHVlIHdhcyBjaG9zZW4gdG8KKy8vIGVuc3VyZSBhIHNtb290aCBhbmltYXRpb24s
IHdoaWxlIHRyeWluZyB0byByZWR1Y2UgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUKKy8vIHByb2dy
ZXNzIGJhciBpcyByZXBhaW50ZWQuCitjb25zdGV4cHIgU2Vjb25kcyBwcm9ncmVzc0FuaW1hdGlv
blJlcGVhdEludGVydmFsID0gMzNfbXM7CisKK1NlY29uZHMgUmVuZGVyVGhlbWVJT1M6OmFuaW1h
dGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MmKSBjb25zdAor
eworICAgIHJldHVybiBwcm9ncmVzc0FuaW1hdGlvblJlcGVhdEludGVydmFsOworfQorCitib29s
IFJlbmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNzQmFyRkNSKGNvbnN0IFJlbmRlck9iamVjdCYg
cmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0
KQoreworICAgIGlmICghaXM8UmVuZGVyUHJvZ3Jlc3M+KHJlbmRlcmVyKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgYXV0byYgcmVuZGVyUHJvZ3Jlc3MgPSBkb3duY2FzdDxSZW5kZXJQcm9n
cmVzcz4ocmVuZGVyZXIpOworCisgICAgYXV0byYgY29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0
KCk7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwor
CisgICAgY29uc3RleHByIGF1dG8gYmFySGVpZ2h0ID0gNC4wZjsKKyAgICBGbG9hdFJvdW5kZWRS
ZWN0OjpSYWRpaSBiYXJDb3JuZXJSYWRpaSgyLjVmLCAxLjVmKTsKKworICAgIGlmIChyZWN0Lmhl
aWdodCgpIDwgYmFySGVpZ2h0KSB7CisgICAgICAgIC8vIFRoZSByZWN0IGlzIHNtYWxsZXIgdGhh
biB0aGUgc3RhbmRhcmQgcHJvZ3Jlc3MgYmFyLiBXZSBjbGlwIHRvIHRoZQorICAgICAgICAvLyBl
bGVtZW50J3MgcmVjdCB0byBhdm9pZCBsZWFraW5nIHBpeGVscyBvdXRzaWRlIHRoZSByZXBhaW50
IHJlY3QuCisgICAgICAgIGNvbnRleHQuY2xpcChyZWN0KTsKKyAgICB9CisKKyAgICBmbG9hdCBi
YXJUb3AgPSByZWN0LnkoKSArIChyZWN0LmhlaWdodCgpIC0gYmFySGVpZ2h0KSAvIDIuMGY7CisK
KyAgICBGbG9hdFJlY3QgdHJhY2tSZWN0KHJlY3QueCgpLCBiYXJUb3AsIHJlY3Qud2lkdGgoKSwg
YmFySGVpZ2h0KTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRUcmFja1JlY3QodHJhY2tS
ZWN0LCBiYXJDb3JuZXJSYWRpaSk7CisgICAgY29udGV4dC5maWxsUm91bmRlZFJlY3Qocm91bmRl
ZFRyYWNrUmVjdCwgY29udHJvbEJhY2tncm91bmRDb2xvcik7CisKKyAgICBmbG9hdCBiYXJXaWR0
aDsKKyAgICBmbG9hdCBiYXJMZWZ0ID0gcmVjdC54KCk7CisKKyAgICBpZiAocmVuZGVyUHJvZ3Jl
c3MuaXNEZXRlcm1pbmF0ZSgpKSB7CisgICAgICAgIGJhcldpZHRoID0gY2xhbXBUbzxmbG9hdD4o
cmVuZGVyUHJvZ3Jlc3MucG9zaXRpb24oKSwgMC4wZiwgMS4wZikgKiB0cmFja1JlY3Qud2lkdGgo
KTsKKworICAgICAgICBpZiAoIXJlbmRlclByb2dyZXNzLnN0eWxlKCkuaXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpKQorICAgICAgICAgICAgYmFyTGVmdCA9IHRyYWNrUmVjdC5tYXhYKCkgLSBiYXJX
aWR0aDsKKyAgICB9IGVsc2UgeworICAgICAgICBiYXJXaWR0aCA9IDAuMjVmICogdHJhY2tSZWN0
LndpZHRoKCk7CisKKyAgICAgICAgU2Vjb25kcyBlbGFwc2VkID0gTW9ub3RvbmljVGltZTo6bm93
KCkgLSByZW5kZXJQcm9ncmVzcy5hbmltYXRpb25TdGFydFRpbWUoKTsKKyAgICAgICAgZmxvYXQg
cG9zaXRpb24gPSBmbW9kZihlbGFwc2VkLnZhbHVlKCksIDEuMGYpOworICAgICAgICBmbG9hdCBv
ZmZzZXQgPSBwb3NpdGlvbiAqICh0cmFja1JlY3Qud2lkdGgoKSArIGJhcldpZHRoKTsKKworICAg
ICAgICBib29sIHJldmVyc2VEaXJlY3Rpb24gPSBzdGF0aWNfY2FzdDxpbnQ+KGVsYXBzZWQudmFs
dWUoKSkgJSAyOworICAgICAgICBpZiAocmV2ZXJzZURpcmVjdGlvbikKKyAgICAgICAgICAgIGJh
ckxlZnQgPSB0cmFja1JlY3QubWF4WCgpIC0gb2Zmc2V0OworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBiYXJMZWZ0IC09IGJhcldpZHRoIC0gb2Zmc2V0OworCisgICAgICAgIGNvbnRleHQuY2xp
cFJvdW5kZWRSZWN0KHJvdW5kZWRUcmFja1JlY3QpOworICAgIH0KKworICAgIEZsb2F0UmVjdCBi
YXJSZWN0KGJhckxlZnQsIGJhclRvcCwgYmFyV2lkdGgsIGJhckhlaWdodCk7CisgICAgY29udGV4
dC5maWxsUm91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChiYXJSZWN0LCBiYXJDb3JuZXJSYWRp
aSksIGNvbnRyb2xDb2xvcik7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKICNlbmRpZiAvLyBF
TkFCTEUoSU9TX0ZPUk1fQ09OVFJPTF9SRUZSRVNIKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNGQyMGQx
NzY3OGE3ZTIwZDdiNzUyNDdkNWVlYWQ2N2E0OWNkZmUwYi4uZjlhY2NlODk2OTY2YTU2ZTBlYjAx
OTYwMmQ5OTIzMWVkMzNhN2JmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIEBpbnRlcmZhY2UgTlNTZWFyY2hGaWVsZENl
bGwgKCkKIEBwcm9wZXJ0eSAoZ2V0dGVyPWlzQ2VudGVyZWRMb29rKSBCT09MIGNlbnRlcmVkTG9v
azsKIEBlbmQKIAotc3RhdGljIGNvbnN0IFNlY29uZHMgcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJh
dGUgPSAzM19tczsgLy8gMzAgZnBzCitjb25zdGV4cHIgU2Vjb25kcyBwcm9ncmVzc0FuaW1hdGlv
blJlcGVhdEludGVydmFsID0gMzNfbXM7IC8vIDMwIGZwcwogCiBAaW50ZXJmYWNlIFdlYkNvcmVS
ZW5kZXJUaGVtZU5vdGlmaWNhdGlvbk9ic2VydmVyIDogTlNPYmplY3QKIEBlbmQKQEAgLTEzNDcs
NyArMTM0Nyw3IEBAIGludCBSZW5kZXJUaGVtZU1hYzo6bWluaW11bVByb2dyZXNzQmFySGVpZ2h0
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIAogU2Vjb25kcyBSZW5kZXJUaGVtZU1h
Yzo6YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyYp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHByb2dyZXNzQW5pbWF0aW9uRnJhbWVSYXRlOworICAgIHJl
dHVybiBwcm9ncmVzc0FuaW1hdGlvblJlcGVhdEludGVydmFsOwogfQogCiB2b2lkIFJlbmRlclRo
ZW1lTWFjOjphZGp1c3RQcm9ncmVzc0JhclN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVu
dCopIGNvbnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZjVhYjBjZDBmOTZmZTI3MjE3ODY3YjQ1MzQyZTI0NzEyYTk0ZTNl
OS4uNWEwMDVhMGQ0NTVhZmRjYjYyZjVjMGIzMDY3YjEzYjBiMjVhMjZmOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI0IEBACisyMDIwLTExLTE2ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFkZCBuZXcgbG9vayBmb3IgcHJvZ3Jlc3MgYmFycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODY0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMzNDk1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byB2ZXJpZnkgZGlmZmVyZW50
IHN0YXRlcyBhbmQgYXBwZWFyYW5jZXMgb2YgbmF0aXZlIHByb2dyZXNzIGJhcnMuCisKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9maWxsZWQt
YXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9maWxsZWQtYXBwZWFyYW5j
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVm
cmVzaC9wcm9ncmVzcy9pbmRldGVybWluYXRlLWFwcGVhcmFuY2UtZXhwZWN0ZWQtbWlzbWF0Y2gu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJl
c2gvcHJvZ3Jlc3MvaW5kZXRlcm1pbmF0ZS1hcHBlYXJhbmNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3J0bC1hcHBl
YXJhbmNlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3J0bC1hcHBlYXJhbmNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3By
b2dyZXNzL3N0eWxlLWhlaWdodC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS1oZWlnaHQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gv
cHJvZ3Jlc3Mvc3R5bGUtd2lkdGgtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mvc3R5bGUt
d2lkdGguaHRtbDogQWRkZWQuCisKIDIwMjAtMTEtMTMgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0
aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW0ZDUl0gQWRkIG5ldyBsb29rIGZvciBjaGVj
a2JveGVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRy
b2wtcmVmcmVzaC9wcm9ncmVzcy9maWxsZWQtYXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJv
Z3Jlc3MvZmlsbGVkLWFwcGVhcmFuY2UtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kM2ZhYTIwODg4NzhlNTlhNzU1YTNhZjA4MWQzYzVkZjA1Y2Q0MzE3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJv
Z3Jlc3MvZmlsbGVkLWFwcGVhcmFuY2UtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApAQCAtMCwwICsx
LDkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIElPU0Zvcm1D
b250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9
MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcm9ncmVzcyB2YWx1ZT0iMC4wIj48L3Byb2dyZXNzPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3Mv
Zm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvZmlsbGVkLWFwcGVhcmFuY2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2Zp
bGxlZC1hcHBlYXJhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIxNzRlYzMwMzViNmE1OGEwZmI2YzBl
ZjdiNDEyNmI3NjE5ZThiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2ZpbGxlZC1hcHBlYXJhbmNlLmh0
bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBp
bml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8cHJvZ3Jlc3MgdmFsdWU9IjAuNiI+
PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2luZGV0ZXJtaW5hdGUt
YXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvaW5kZXRlcm1pbmF0ZS1hcHBlYXJh
bmNlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNmYWEyMDg4ODc4ZTU5YTc1
NWEzYWYwODFkM2M1ZGYwNWNkNDMxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2luZGV0ZXJtaW5hdGUt
YXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgSU9TRm9ybUNvbnRyb2xSZWZyZXNo
RW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4K
Kzxib2R5PgorPHByb2dyZXNzIHZhbHVlPSIwLjAiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wt
cmVmcmVzaC9wcm9ncmVzcy9pbmRldGVybWluYXRlLWFwcGVhcmFuY2UuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2luZGV0ZXJt
aW5hdGUtYXBwZWFyYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MmVkYzJkMWZlYWJhMTE0YjJkNmFh
ZGYzMDljZDk1M2M3YTE3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9pbmRldGVybWluYXRlLWFwcGVh
cmFuY2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIElPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcm9ncmVzcz48L3By
b2dyZXNzPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvcnRsLWFwcGVhcmFuY2UtZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29u
dHJvbC1yZWZyZXNoL3Byb2dyZXNzL3J0bC1hcHBlYXJhbmNlLWV4cGVjdGVkLW1pc21hdGNoLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGJiY2Q5ZDI0OGMyMjBkOWQzNjk2NWFjYTU5YTMwNjc4NzBjMGQ3MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJv
bC1yZWZyZXNoL3Byb2dyZXNzL3J0bC1hcHBlYXJhbmNlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwK
QEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8cHJvZ3Jlc3MgdmFsdWU9IjAuNSIgZGly
PSJsdHIiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9ydGwtYXBw
ZWFyYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJl
ZnJlc2gvcHJvZ3Jlc3MvcnRsLWFwcGVhcmFuY2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTc4MDc3OWI3
OGMzMzNkZTIxMzk3N2JlNzI4NjcwYTI4ZWQzMjhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvcnRsLWFw
cGVhcmFuY2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIElPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBdIC0tPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcm9ncmVzcyB2
YWx1ZT0iMC41IiBkaXI9InJ0bCI+PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3By
b2dyZXNzL3N0eWxlLWhlaWdodC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mvc3R5bGUtaGVpZ2h0LWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDg4YWViZjA3YzE2MzRlOWViMTEzOGQ1YmVjOTg4ZWYwMzI5OTI3
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29u
dHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIElPU0Zv
cm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2Nh
bGU9MSI+Cis8c3R5bGU+CisKK3Byb2dyZXNzIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgdG9wOiA0MnB4OworICAgIGxlZnQ6IDBweDsKK30KKworPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorPHByb2dyZXNzIHZhbHVlPSIwLjUiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVm
cmVzaC9wcm9ncmVzcy9zdHlsZS1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjgyZjY2ZDRiMDU1Y2Q3NzQ0YWQzZTQxY2MwNzI3ZjdiODgyMTc1YzYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVz
aC9wcm9ncmVzcy9zdHlsZS1oZWlnaHQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUg
aHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFi
bGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCitw
cm9ncmVzcyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMHB4OworICAgIGxl
ZnQ6IDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8cHJvZ3Jlc3MgdmFsdWU9IjAuNSI+PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZy
ZXNoL3Byb2dyZXNzL3N0eWxlLXdpZHRoLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS13
aWR0aC1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3M2EwYmM1ZWMzOWM3YTE1
YTU2ZmE1ODA1YWNhMTc5NDEzYzJlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS13aWR0aC1l
eHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgSU9TRm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZD10cnVl
IF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxib2R5PgorPHBy
b2dyZXNzIHZhbHVlPSIwLjUiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9n
cmVzcy9zdHlsZS13aWR0aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1j
b250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mvc3R5bGUtd2lkdGguaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzA4
ZmRiZDBlMmQ1NzA3MjE1MmM2MTBiZTc4MGY0NGExZjQ3ZmFiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mv
c3R5bGUtd2lkdGguaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkPXRydWUgXSAt
LT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCitwcm9ncmVzcyB7Cisg
ICAgd2lkdGg6IDIwMHB4OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cHJvZ3Jl
c3MgdmFsdWU9IjAuNSI+PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="431107"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414601</attachid>
            <date>2020-11-19 10:59:26 -0800</date>
            <delta_ts>2020-11-19 17:42:08 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-218864-20201119135934.patch</filename>
            <type>text/plain</type>
            <size>22113</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2VhYjBkZjhkNGVlODdm
ZjI3ODg2MDNiMGZjNTRkY2ExYjJmMzFmMC4uNmQ0NDUzZGU5NmFkMDI5ZjY4ZGY4ZWM0NGQyYjcw
M2Q3MWE3YTA1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTExLTE5ICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtGQ1JdIEFk
ZCBuZXcgbG9vayBmb3IgcHJvZ3Jlc3MgYmFycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTMz
NDk1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlciBhbmQgV2Vuc29uIEhzaWVo
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9w
cm9ncmVzcy9maWxsZWQtYXBwZWFyYW5jZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1z
L2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9pbmRldGVybWluYXRlLWFwcGVhcmFu
Y2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJl
c2gvcHJvZ3Jlc3MvcnRsLWFwcGVhcmFuY2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jt
cy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mvc3R5bGUtaGVpZ2h0Lmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNz
L3N0eWxlLXdpZHRoLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91
bmRlZFJlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpOjpS
YWRpaSk6CisKKyAgICAgICAgQWRkZWQgYSBuZXcgaW5pdGlhbGl6ZXIgdG8gYmUgdXNlZCB3aGVu
IGFsbCByYWRpaSBoYXZlIHRoZSBzYW1lIHZhbHVlCisgICAgICAgIGJ1dCB0aGUgaG9yaXpvbnRh
bCBhbmQgdmVydGljYWwgY29tcG9uZW50cyBvZiBhbiBpbmRpdmlkdWFsIHJhZGl1cyBhcmUKKyAg
ICAgICAgbm90IGVxdWFsLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZv
clByb2dyZXNzQmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjphbmlt
YXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWUuaDogVXBkYXRlZCBtZXRob2RzIHRvIHRha2UgY29uc3QgcGFyYW1ldGVyLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVBZHdhaXRhOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dy
ZXNzQmFyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQWR3YWl0YTo6YW5p
bWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0JhciBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lQWR3YWl0YS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNzQmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lSU9TOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFy
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNz
QmFyRkNSKToKKworICAgICAgICBVcGRhdGVkIGFwcGVhcmFuY2Ugb2YgZGV0ZXJtaW5hdGUgcHJv
Z3Jlc3MgYmFycyB0byBtYXRjaCBVSUtpdC4KKworICAgICAgICBBZGRlZCBhbiBhbmltYXRlZCBp
bmRldGVybWluYXRlIHByb2dyZXNzIGJhciwgYnkgaW1wbGVtZW50aW5nIHRoZQorICAgICAgICBh
bmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyIG1ldGhvZCBpbiBSZW5kZXJUaGVt
ZUlPUy4gVGhpcworICAgICAgICBtYXRjaGVzIFJlbmRlclRoZW1lTWFjLiBPbiBtYWNPUywgdGhl
IGFuaW1hdGlvbiBzdGFydCB0aW1lIGFuZCB0aGUKKyAgICAgICAgY3VycmVudCB0aW1lIGFyZSBm
b3J3YXJkZWQgdG8gQ29yZVVJIGZvciBkcmF3aW5nLiBIb3dldmVyLCBvbiBpT1MsIHdlCisgICAg
ICAgIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRvIHBhaW50IHRoZSBhbmltYXRlZCBwcm9ncmVzcyBi
YXIgb3Vyc2VsdmVzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOiBSZW5hbWVkIGNvbnN0YW50IGZv
ciBhY2N1cmFjeS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjphbmltYXRpb25S
ZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyIGNvbnN0KToKKwogMjAyMC0xMS0xOCAgQWRpdHlh
IEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU11bRkNSXSBSZW5h
bWUgVUEgc3R5bGUgc2hlZXQgdG8gZm9sbG93IG5hbWluZyBjb252ZW50aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJvdW5kZWRSZWN0LmgKaW5kZXgg
MjhlNDk2MjVkZWI5ZGU3NzcyOWNkNTVlMDkzMjQ0Y2RlYmUwMjUzYi4uNzcyNGQwM2UxODE1OGNm
YjViNmRjMWU5YzQ5ZGNmODg2ZWRmYjdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSb3VuZGVkUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0Um91bmRlZFJlY3QuaApAQCAtNjcsNiArNjcsMTQgQEAgcHVi
bGljOgogICAgICAgICB7CiAgICAgICAgIH0KIAorICAgICAgICBleHBsaWNpdCBSYWRpaShmbG9h
dCB1bmlmb3JtUmFkaXVzV2lkdGgsIGZsb2F0IHVuaWZvcm1SYWRpdXNIZWlnaHQpCisgICAgICAg
ICAgICA6IG1fdG9wTGVmdCh1bmlmb3JtUmFkaXVzV2lkdGgsIHVuaWZvcm1SYWRpdXNIZWlnaHQp
CisgICAgICAgICAgICAsIG1fdG9wUmlnaHQodW5pZm9ybVJhZGl1c1dpZHRoLCB1bmlmb3JtUmFk
aXVzSGVpZ2h0KQorICAgICAgICAgICAgLCBtX2JvdHRvbUxlZnQodW5pZm9ybVJhZGl1c1dpZHRo
LCB1bmlmb3JtUmFkaXVzSGVpZ2h0KQorICAgICAgICAgICAgLCBtX2JvdHRvbVJpZ2h0KHVuaWZv
cm1SYWRpdXNXaWR0aCwgdW5pZm9ybVJhZGl1c0hlaWdodCkKKyAgICAgICAgeworICAgICAgICB9
CisKICAgICAgICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyBtX3Rv
cExlZnQgPSBzaXplOyB9CiAgICAgICAgIHZvaWQgc2V0VG9wUmlnaHQoY29uc3QgRmxvYXRTaXpl
JiBzaXplKSB7IG1fdG9wUmlnaHQgPSBzaXplOyB9CiAgICAgICAgIHZvaWQgc2V0Qm90dG9tTGVm
dChjb25zdCBGbG9hdFNpemUmIHNpemUpIHsgbV9ib3R0b21MZWZ0ID0gc2l6ZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggMDRhOTMwYzgwYTdjNzhkYzAx
MDgwNTI5MTUwMzI5ZjNhYTNhMTMyYi4uZTdhMGY2ODQzZjA5YTgyNzhmMThkZGVhMmViYWQxNjI5
MTZlNzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0x
MTE4LDEyICsxMTE4LDEyIEBAIHZvaWQgUmVuZGVyVGhlbWU6OnBhaW50U2xpZGVyVGlja3MoY29u
c3QgUmVuZGVyT2JqZWN0JiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50CiAKICNlbmRpZgogCi1T
ZWNvbmRzIFJlbmRlclRoZW1lOjphbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFy
KFJlbmRlclByb2dyZXNzJikgY29uc3QKK1NlY29uZHMgUmVuZGVyVGhlbWU6OmFuaW1hdGlvblJl
cGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyUHJvZ3Jlc3MmKSBjb25zdAog
ewogICAgIHJldHVybiAwX3M7CiB9CiAKLVNlY29uZHMgUmVuZGVyVGhlbWU6OmFuaW1hdGlvbkR1
cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MmKSBjb25zdAorU2Vjb25kcyBSZW5k
ZXJUaGVtZTo6YW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0Jhcihjb25zdCBSZW5kZXJQcm9n
cmVzcyYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDBfczsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKaW5kZXggYmUxOTkwM2Q1YWI2NDZmYWU5NDJjYzIyOWQ0MWMxNDhlOGQ0
ZTdmNS4uYTk4NDhhZGEyNGRmNWFlZjJiZjRmNTU3NGQ5ODE3MmQ5MjNhMjkwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTE4Nyw5ICsxODcsOSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBTY3JvbGxiYXJDb250cm9sU2l6ZSBzY3JvbGxiYXJDb250cm9sU2l6ZUZv
clBhcnQoQ29udHJvbFBhcnQpIHsgcmV0dXJuIFNjcm9sbGJhckNvbnRyb2xTaXplOjpSZWd1bGFy
OyB9CiAKICAgICAvLyBSZXR1cm5zIHRoZSByZXBlYXQgaW50ZXJ2YWwgb2YgdGhlIGFuaW1hdGlv
biBmb3IgdGhlIHByb2dyZXNzIGJhci4KLSAgICB2aXJ0dWFsIFNlY29uZHMgYW5pbWF0aW9uUmVw
ZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyYpIGNvbnN0OworICAgIHZp
cnR1YWwgU2Vjb25kcyBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKGNvbnN0
IFJlbmRlclByb2dyZXNzJikgY29uc3Q7CiAgICAgLy8gUmV0dXJucyB0aGUgZHVyYXRpb24gb2Yg
dGhlIGFuaW1hdGlvbiBmb3IgdGhlIHByb2dyZXNzIGJhci4KLSAgICB2aXJ0dWFsIFNlY29uZHMg
YW5pbWF0aW9uRHVyYXRpb25Gb3JQcm9ncmVzc0JhcihSZW5kZXJQcm9ncmVzcyYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgU2Vjb25kcyBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKGNvbnN0
IFJlbmRlclByb2dyZXNzJikgY29uc3Q7CiAgICAgdmlydHVhbCBJbnRSZWN0IHByb2dyZXNzQmFy
UmVjdEZvckJvdW5kcyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBJbnRSZWN0JikgY29uc3Q7
CiAKICNpZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVBZHdhaXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUFkd2FpdGEuY3BwCmluZGV4IDRhMDY3YzA2OWUxZGNmMzcyMjVhZjQ3Zjc0N2RlMzNl
NjNiNjA1ZWYuLjNlODQzNTY0ODYwODFhMWYzZmUxNmI1ODdiNzk0M2Y4OTViZTIzMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUFkd2FpdGEuY3BwCkBAIC0z
MDIsMTIgKzMwMiwxMiBAQCBib29sIFJlbmRlclRoZW1lQWR3YWl0YTo6cGFpbnRNZW51TGlzdEJ1
dHRvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyTwogICAgIHJldHVybiBwYWlu
dE1lbnVMaXN0KHJlbmRlck9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKIH0KIAotU2Vjb25kcyBS
ZW5kZXJUaGVtZUFkd2FpdGE6OmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIo
UmVuZGVyUHJvZ3Jlc3MmKSBjb25zdAorU2Vjb25kcyBSZW5kZXJUaGVtZUFkd2FpdGE6OmFuaW1h
dGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyUHJvZ3Jlc3MmKSBj
b25zdAogewogICAgIHJldHVybiBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0ZTsKIH0KIAotU2Vj
b25kcyBSZW5kZXJUaGVtZUFkd2FpdGE6OmFuaW1hdGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIo
UmVuZGVyUHJvZ3Jlc3MmKSBjb25zdAorU2Vjb25kcyBSZW5kZXJUaGVtZUFkd2FpdGE6OmFuaW1h
dGlvbkR1cmF0aW9uRm9yUHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyUHJvZ3Jlc3MmKSBjb25zdAog
ewogICAgIHJldHVybiBwcm9ncmVzc0FuaW1hdGlvbkZyYW1lUmF0ZSAqIHByb2dyZXNzQW5pbWF0
aW9uRnJhbWVDb3VudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUFkd2FpdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUFkd2FpdGEuaAppbmRleCBiODdlMjM2N2JiNzljYTFmYjMwYTdjZjA2NDE1YmZkNzA2YzNhMmZj
Li5hOTFmZGI2NzBiMDZkM2YxYWE3MWNjNjI5ZTAwMDI3MzJmMzZlYWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVBZHdhaXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQWR3YWl0YS5oCkBAIC03MCw4ICs3MCw4IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRlck9iamVjdCYsIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogICAgIGJvb2wgcGFpbnRN
ZW51TGlzdEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlckJveCYsIGNvbnN0IFBhaW50SW5m
byYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogCi0gICAgU2Vjb25kcyBhbmltYXRpb25SZXBl
YXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNzJikgY29uc3QgZmluYWw7Ci0g
ICAgU2Vjb25kcyBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKFJlbmRlclByb2dyZXNz
JikgY29uc3QgZmluYWw7CisgICAgU2Vjb25kcyBhbmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclBy
b2dyZXNzQmFyKGNvbnN0IFJlbmRlclByb2dyZXNzJikgY29uc3QgZmluYWw7CisgICAgU2Vjb25k
cyBhbmltYXRpb25EdXJhdGlvbkZvclByb2dyZXNzQmFyKGNvbnN0IFJlbmRlclByb2dyZXNzJikg
Y29uc3QgZmluYWw7CiAgICAgSW50UmVjdCBwcm9ncmVzc0JhclJlY3RGb3JCb3VuZHMoY29uc3Qg
UmVuZGVyT2JqZWN0JiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgcGFp
bnRQcm9ncmVzc0Jhcihjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLmgKaW5kZXggYWQwMmZlN2I4ZDNlMTc1MWNiNzZlZWQxNTRiMjI3YWExNWJmZGM0Yi4uODU4
NWQ2MDE4YzQ3YTAxYTJiZmU2YmM3OGQwNjNmMWQ0NmVmODcyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKQEAgLTExMyw2ICsxMTMsOSBAQCBwcml2YXRlOgog
I2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCiAgICAgYm9vbCBwYWludENoZWNr
Ym94KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZTsKICAgICBib29sIHBhaW50UmFkaW8oY29uc3QgUmVuZGVyT2JqZWN0JiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworCisgICAgU2Vjb25kcyBh
bmltYXRpb25SZXBlYXRJbnRlcnZhbEZvclByb2dyZXNzQmFyKGNvbnN0IFJlbmRlclByb2dyZXNz
JikgY29uc3QgZmluYWw7CisgICAgYm9vbCBwYWludFByb2dyZXNzQmFyRkNSKGNvbnN0IFJlbmRl
ck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICNlbmRpZgogCiAg
ICAgYm9vbCBzdXBwb3J0c0ZvY3VzUmluZyhjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IGRjZWJj
ZTQ4NWUzNjIzNThjODRjZTQyMGFkODZmNGEzMjY0MjQ1OWIuLjViMDkxYzBmZmVmOGRmMGQxY2E5
MjY2NzJhYjAwNzQ1YTJhMzFlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVJT1MubW0KQEAgLTkwNyw2ICs5MDcsMTEgQEAgYm9vbCBSZW5kZXJUaGVtZUlPUzo6cGFp
bnRTbGlkZXJUaHVtYkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYgYm94LCBjb25zdAog
CiBib29sIFJlbmRlclRoZW1lSU9TOjpwYWludFByb2dyZXNzQmFyKGNvbnN0IFJlbmRlck9iamVj
dCYgcmVuZGVyZXIsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQogeworI2lmIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JFRlJFU0gpCisgICAgaWYgKHJl
bmRlcmVyLnNldHRpbmdzKCkuaU9TRm9ybUNvbnRyb2xSZWZyZXNoRW5hYmxlZCgpKQorICAgICAg
ICByZXR1cm4gcGFpbnRQcm9ncmVzc0JhckZDUihyZW5kZXJlciwgcGFpbnRJbmZvLCByZWN0KTsK
KyNlbmRpZgorCiAgICAgaWYgKCFpczxSZW5kZXJQcm9ncmVzcz4ocmVuZGVyZXIpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIApAQCAtMjA2OSw2ICsyMDc0LDcwIEBAIGJvb2wgUmVuZGVyVGhlbWVJ
T1M6OnBhaW50UmFkaW8oY29uc3QgUmVuZGVyT2JqZWN0JiBib3gsIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisvLyBBbmltYXRlIHRoZSBpbmRldGVybWlu
YXRlIHByb2dyZXNzIGJhciBhdCAzMCBmcHMuIFRoaXMgdmFsdWUgd2FzIGNob3NlbiB0bworLy8g
ZW5zdXJlIGEgc21vb3RoIGFuaW1hdGlvbiwgd2hpbGUgdHJ5aW5nIHRvIHJlZHVjZSB0aGUgbnVt
YmVyIG9mIHRpbWVzIHRoZQorLy8gcHJvZ3Jlc3MgYmFyIGlzIHJlcGFpbnRlZC4KK2NvbnN0ZXhw
ciBTZWNvbmRzIHByb2dyZXNzQW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWwgPSAzM19tczsKKworU2Vj
b25kcyBSZW5kZXJUaGVtZUlPUzo6YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxGb3JQcm9ncmVzc0Jh
cihjb25zdCBSZW5kZXJQcm9ncmVzcyYpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2dyZXNzQW5p
bWF0aW9uUmVwZWF0SW50ZXJ2YWw7Cit9CisKK2Jvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50UHJv
Z3Jlc3NCYXJGQ1IoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlciwgY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgaWYgKCFpczxSZW5kZXJQ
cm9ncmVzcz4ocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBhdXRvJiByZW5k
ZXJQcm9ncmVzcyA9IGRvd25jYXN0PFJlbmRlclByb2dyZXNzPihyZW5kZXJlcik7CisKKyAgICBh
dXRvJiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQoKTsKKyAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBjb25zdGV4cHIgYXV0byBiYXJI
ZWlnaHQgPSA0LjBmOworICAgIEZsb2F0Um91bmRlZFJlY3Q6OlJhZGlpIGJhckNvcm5lclJhZGlp
KDIuNWYsIDEuNWYpOworCisgICAgaWYgKHJlY3QuaGVpZ2h0KCkgPCBiYXJIZWlnaHQpIHsKKyAg
ICAgICAgLy8gVGhlIHJlY3QgaXMgc21hbGxlciB0aGFuIHRoZSBzdGFuZGFyZCBwcm9ncmVzcyBi
YXIuIFdlIGNsaXAgdG8gdGhlCisgICAgICAgIC8vIGVsZW1lbnQncyByZWN0IHRvIGF2b2lkIGxl
YWtpbmcgcGl4ZWxzIG91dHNpZGUgdGhlIHJlcGFpbnQgcmVjdC4KKyAgICAgICAgY29udGV4dC5j
bGlwKHJlY3QpOworICAgIH0KKworICAgIGZsb2F0IGJhclRvcCA9IHJlY3QueSgpICsgKHJlY3Qu
aGVpZ2h0KCkgLSBiYXJIZWlnaHQpIC8gMi4wZjsKKworICAgIEZsb2F0UmVjdCB0cmFja1JlY3Qo
cmVjdC54KCksIGJhclRvcCwgcmVjdC53aWR0aCgpLCBiYXJIZWlnaHQpOworICAgIEZsb2F0Um91
bmRlZFJlY3Qgcm91bmRlZFRyYWNrUmVjdCh0cmFja1JlY3QsIGJhckNvcm5lclJhZGlpKTsKKyAg
ICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChyb3VuZGVkVHJhY2tSZWN0LCBjb250cm9sQmFja2dy
b3VuZENvbG9yKTsKKworICAgIGZsb2F0IGJhcldpZHRoOworICAgIGZsb2F0IGJhckxlZnQgPSBy
ZWN0LngoKTsKKworICAgIGlmIChyZW5kZXJQcm9ncmVzcy5pc0RldGVybWluYXRlKCkpIHsKKyAg
ICAgICAgYmFyV2lkdGggPSBjbGFtcFRvPGZsb2F0PihyZW5kZXJQcm9ncmVzcy5wb3NpdGlvbigp
LCAwLjBmLCAxLjBmKSAqIHRyYWNrUmVjdC53aWR0aCgpOworCisgICAgICAgIGlmICghcmVuZGVy
UHJvZ3Jlc3Muc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAgICAgICBi
YXJMZWZ0ID0gdHJhY2tSZWN0Lm1heFgoKSAtIGJhcldpZHRoOworICAgIH0gZWxzZSB7CisgICAg
ICAgIGJhcldpZHRoID0gMC4yNWYgKiB0cmFja1JlY3Qud2lkdGgoKTsKKworICAgICAgICBTZWNv
bmRzIGVsYXBzZWQgPSBNb25vdG9uaWNUaW1lOjpub3coKSAtIHJlbmRlclByb2dyZXNzLmFuaW1h
dGlvblN0YXJ0VGltZSgpOworICAgICAgICBmbG9hdCBwb3NpdGlvbiA9IGZtb2RmKGVsYXBzZWQu
dmFsdWUoKSwgMS4wZik7CisgICAgICAgIGZsb2F0IG9mZnNldCA9IHBvc2l0aW9uICogKHRyYWNr
UmVjdC53aWR0aCgpICsgYmFyV2lkdGgpOworCisgICAgICAgIGJvb2wgcmV2ZXJzZURpcmVjdGlv
biA9IHN0YXRpY19jYXN0PGludD4oZWxhcHNlZC52YWx1ZSgpKSAlIDI7CisgICAgICAgIGlmIChy
ZXZlcnNlRGlyZWN0aW9uKQorICAgICAgICAgICAgYmFyTGVmdCA9IHRyYWNrUmVjdC5tYXhYKCkg
LSBvZmZzZXQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJhckxlZnQgLT0gYmFyV2lkdGgg
LSBvZmZzZXQ7CisKKyAgICAgICAgY29udGV4dC5jbGlwUm91bmRlZFJlY3Qocm91bmRlZFRyYWNr
UmVjdCk7CisgICAgfQorCisgICAgRmxvYXRSZWN0IGJhclJlY3QoYmFyTGVmdCwgYmFyVG9wLCBi
YXJXaWR0aCwgYmFySGVpZ2h0KTsKKyAgICBjb250ZXh0LmZpbGxSb3VuZGVkUmVjdChGbG9hdFJv
dW5kZWRSZWN0KGJhclJlY3QsIGJhckNvcm5lclJhZGlpKSwgY29udHJvbENvbG9yKTsKKworICAg
IHJldHVybiBmYWxzZTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShJT1NfRk9STV9DT05UUk9MX1JF
RlJFU0gpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLmgKaW5kZXggNGY1Nzk2NTkzNjllYzRiNmU5MDM0Zjc5MGNmZjJlMDI5
YjVjNGUxNS4uZDA1NzVjOWE4N2ZmNWNmODJjNWU1ZTZkNGFkODZkMGYwODZhNjQ5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTg4LDcgKzg4LDcgQEAg
cHVibGljOgogICAgIGJvb2wgc3VwcG9ydHNNZXRlcihDb250cm9sUGFydCkgY29uc3QgZmluYWw7
CiAKICAgICAvLyBSZXR1cm5zIHRoZSByZXBlYXQgaW50ZXJ2YWwgb2YgdGhlIGFuaW1hdGlvbiBm
b3IgdGhlIHByb2dyZXNzIGJhci4KLSAgICBTZWNvbmRzIGFuaW1hdGlvblJlcGVhdEludGVydmFs
Rm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3MmKSBjb25zdCBmaW5hbDsKKyAgICBTZWNvbmRz
IGFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoY29uc3QgUmVuZGVyUHJvZ3Jl
c3MmKSBjb25zdCBmaW5hbDsKICAgICBJbnRSZWN0IHByb2dyZXNzQmFyUmVjdEZvckJvdW5kcyhj
b25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBJbnRSZWN0JikgY29uc3QgZmluYWw7CiAKICAgICAv
LyBDb250cm9scyBjb2xvciB2YWx1ZXMgcmV0dXJuZWQgZnJvbSBwbGF0Zm9ybUZvY3VzUmluZ0Nv
bG9yKCkuIHN5c3RlbUNvbG9yKCkgd2lsbCBiZSB1c2VkIHdoZW4gZmFsc2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMWE1NTAzOWQ4OGUwY2Y5M2Y2
Mjg3NmI1MjcyY2VjODk3MjY2NTJlYy4uNTE2MDExMDcwMzliYzdmZWZjZjkwZGNiNmQyMThkNTJi
MDkzMzZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpA
QCAtMTE1LDcgKzExNSw3IEBAIEBpbnRlcmZhY2UgTlNTZWFyY2hGaWVsZENlbGwgKCkKIEBwcm9w
ZXJ0eSAoZ2V0dGVyPWlzQ2VudGVyZWRMb29rKSBCT09MIGNlbnRlcmVkTG9vazsKIEBlbmQKIAot
c3RhdGljIGNvbnN0IFNlY29uZHMgcHJvZ3Jlc3NBbmltYXRpb25GcmFtZVJhdGUgPSAzM19tczsg
Ly8gMzAgZnBzCitjb25zdGV4cHIgU2Vjb25kcyBwcm9ncmVzc0FuaW1hdGlvblJlcGVhdEludGVy
dmFsID0gMzNfbXM7IC8vIDMwIGZwcwogCiBAaW50ZXJmYWNlIFdlYkNvcmVSZW5kZXJUaGVtZU5v
dGlmaWNhdGlvbk9ic2VydmVyIDogTlNPYmplY3QKIEBlbmQKQEAgLTEzNDQsOSArMTM0NCw5IEBA
IGludCBSZW5kZXJUaGVtZU1hYzo6bWluaW11bVByb2dyZXNzQmFySGVpZ2h0KGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSkgY29uc3QKICAgICByZXR1cm4gc2l6ZUZvclN5c3RlbUZvbnQoc3R5bGUs
IHByb2dyZXNzQmFyU2l6ZXMoKSkuaGVpZ2h0KCk7CiB9CiAKLVNlY29uZHMgUmVuZGVyVGhlbWVN
YWM6OmFuaW1hdGlvblJlcGVhdEludGVydmFsRm9yUHJvZ3Jlc3NCYXIoUmVuZGVyUHJvZ3Jlc3Mm
KSBjb25zdAorU2Vjb25kcyBSZW5kZXJUaGVtZU1hYzo6YW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWxG
b3JQcm9ncmVzc0Jhcihjb25zdCBSZW5kZXJQcm9ncmVzcyYpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHByb2dyZXNzQW5pbWF0aW9uRnJhbWVSYXRlOworICAgIHJldHVybiBwcm9ncmVzc0FuaW1hdGlv
blJlcGVhdEludGVydmFsOwogfQogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RQcm9ncmVz
c0JhclN0eWxlKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCopIGNvbnN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODIz
NTY1MzM1ZTNkZDhmNmNiMTI1MDhhNGY4Y2U4YjJjZWQ1ZGVlZS4uOWRiMmJkN2NjMDBjZTJjOTI4
ODI1MjczMzc5NTFlZDA4NDlmNzI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTExLTE5
ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXVtG
Q1JdIEFkZCBuZXcgbG9vayBmb3IgcHJvZ3Jlc3MgYmFycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTMzNDk1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlciBhbmQgV2Vuc29u
IEhzaWVoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIHZlcmlmeSBkaWZmZXJlbnQgc3RhdGVz
IGFuZCBhcHBlYXJhbmNlcyBvZiBuYXRpdmUgcHJvZ3Jlc3MgYmFycy4KKworICAgICAgICAqIGZh
c3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2ZpbGxlZC1hcHBlYXJh
bmNlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2ZpbGxlZC1hcHBlYXJhbmNlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3By
b2dyZXNzL2luZGV0ZXJtaW5hdGUtYXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9n
cmVzcy9pbmRldGVybWluYXRlLWFwcGVhcmFuY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvcnRsLWFwcGVhcmFuY2Ut
ZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3Mv
Zm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvcnRsLWFwcGVhcmFuY2UuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mv
c3R5bGUtaGVpZ2h0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVz
cy9zdHlsZS13aWR0aC1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS13aWR0aC5o
dG1sOiBBZGRlZC4KKwogMjAyMC0xMS0xOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVuc2tpcCBzZXZlcmFsIHdlYmF1ZGlvIHRlc3RzIG9u
IEFwcGxlIFNpbGljb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9m
b3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9maWxsZWQtYXBwZWFyYW5jZS1leHBlY3RlZC1t
aXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJl
ZnJlc2gvcHJvZ3Jlc3MvZmlsbGVkLWFwcGVhcmFuY2UtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kM2ZhYTIwODg4NzhlNTlhNzU1YTNhZjA4MWQzYzVkZjA1Y2Q0MzE3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJl
ZnJlc2gvcHJvZ3Jlc3MvZmlsbGVkLWFwcGVhcmFuY2UtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbApA
QCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IElPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRp
YWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcm9ncmVzcyB2YWx1ZT0iMC4wIj48L3By
b2dyZXNzPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvZmlsbGVkLWFwcGVhcmFuY2Uu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3By
b2dyZXNzL2ZpbGxlZC1hcHBlYXJhbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIxNzRlYzMwMzViNmE1
OGEwZmI2YzBlZjdiNDEyNmI3NjE5ZThiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2ZpbGxlZC1hcHBl
YXJhbmNlLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkPXRydWUgXSAtLT4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNl
LXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8cHJvZ3Jlc3MgdmFs
dWU9IjAuNiI+PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2luZGV0
ZXJtaW5hdGUtYXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvaW5kZXRlcm1pbmF0
ZS1hcHBlYXJhbmNlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDNmYWEyMDg4
ODc4ZTU5YTc1NWEzYWYwODFkM2M1ZGYwNWNkNDMxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL2luZGV0
ZXJtaW5hdGUtYXBwZWFyYW5jZS1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsOSBA
QAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgSU9TRm9ybUNvbnRy
b2xSZWZyZXNoRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4K
KzwvaGVhZD4KKzxib2R5PgorPHByb2dyZXNzIHZhbHVlPSIwLjAiPjwvcHJvZ3Jlc3M+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3Jt
LWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9pbmRldGVybWluYXRlLWFwcGVhcmFuY2UuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNz
L2luZGV0ZXJtaW5hdGUtYXBwZWFyYW5jZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4MmVkYzJkMWZlYWJh
MTE0YjJkNmFhZGYzMDljZDk1M2M3YTE3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9pbmRldGVybWlu
YXRlLWFwcGVhcmFuY2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIElPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcm9n
cmVzcz48L3Byb2dyZXNzPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvcnRsLWFwcGVh
cmFuY2UtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9z
L2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3J0bC1hcHBlYXJhbmNlLWV4cGVjdGVkLW1p
c21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJiY2Q5ZDI0OGMyMjBkOWQzNjk2NWFjYTU5YTMwNjc4
NzBjMGQ3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zv
cm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3J0bC1hcHBlYXJhbmNlLWV4cGVjdGVkLW1pc21h
dGNoLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgorPGJvZHk+Cis8cHJvZ3Jlc3MgdmFsdWU9
IjAuNSIgZGlyPSJsdHIiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVz
cy9ydGwtYXBwZWFyYW5jZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1j
b250cm9sLXJlZnJlc2gvcHJvZ3Jlc3MvcnRsLWFwcGVhcmFuY2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
NTc4MDc3OWI3OGMzMzNkZTIxMzk3N2JlNzI4NjcwYTI4ZWQzMjhkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jl
c3MvcnRsLWFwcGVhcmFuY2UuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPiA8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIElPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1
ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3
aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
cm9ncmVzcyB2YWx1ZT0iMC41IiBkaXI9InJ0bCI+PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1y
ZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mvc3R5bGUtaGVpZ2h0
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDg4YWViZjA3YzE2MzRlOWViMTEzOGQ1YmVjOTg4
ZWYwMzI5OTI3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9z
L2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIElPU0Zvcm1Db250cm9sUmVmcmVzaEVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGlu
aXRpYWwtc2NhbGU9MSI+Cis8c3R5bGU+CisKK3Byb2dyZXNzIHsKKyAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgdG9wOiA0MnB4OworICAgIGxlZnQ6IDBweDsKK30KKworPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPHByb2dyZXNzIHZhbHVlPSIwLjUiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNv
bnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS1oZWlnaHQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL2Zvcm0tY29udHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLWhlaWdodC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgyZjY2ZDRiMDU1Y2Q3NzQ0YWQzZTQxY2MwNzI3ZjdiODgyMTc1YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRy
b2wtcmVmcmVzaC9wcm9ncmVzcy9zdHlsZS1oZWlnaHQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8
IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBJT1NGb3JtQ29udHJvbFJl
ZnJlc2hFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0
eWxlPgorCitwcm9ncmVzcyB7CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMHB4
OworICAgIGxlZnQ6IDBweDsKKyAgICBoZWlnaHQ6IDEwMHB4OworfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+Cis8cHJvZ3Jlc3MgdmFsdWU9IjAuNSI+PC9wcm9ncmVzcz4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2Zvcm0tY29u
dHJvbC1yZWZyZXNoL3Byb2dyZXNzL3N0eWxlLXdpZHRoLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVz
cy9zdHlsZS13aWR0aC1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3M2EwYmM1
ZWMzOWM3YTE1YTU2ZmE1ODA1YWNhMTc5NDEzYzJlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVmcmVzaC9wcm9ncmVzcy9zdHls
ZS13aWR0aC1leHBlY3RlZC1taXNtYXRjaC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgSU9TRm9ybUNvbnRyb2xSZWZyZXNoRW5h
YmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNv
bnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KKzwvaGVhZD4KKzxi
b2R5PgorPHByb2dyZXNzIHZhbHVlPSIwLjUiPjwvcHJvZ3Jlc3M+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9mb3JtLWNvbnRyb2wtcmVm
cmVzaC9wcm9ncmVzcy9zdHlsZS13aWR0aC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
b3MvZm9ybS1jb250cm9sLXJlZnJlc2gvcHJvZ3Jlc3Mvc3R5bGUtd2lkdGguaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzA4ZmRiZDBlMmQ1NzA3MjE1MmM2MTBiZTc4MGY0NGExZjQ3ZmFiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9ybS1jb250cm9sLXJlZnJlc2gv
cHJvZ3Jlc3Mvc3R5bGUtd2lkdGguaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBJT1NGb3JtQ29udHJvbFJlZnJlc2hFbmFibGVk
PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPHN0eWxlPgorCitwcm9n
cmVzcyB7CisgICAgd2lkdGg6IDIwMHB4OworfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8cHJvZ3Jlc3MgdmFsdWU9IjAuNSI+PC9wcm9ncmVzcz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>