<?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>213324</bug_id>
          
          <creation_ts>2020-06-17 17:47:38 -0700</creation_ts>
          <short_desc>[Intl] Enable RelativeTimeFormat and Locale by default</short_desc>
          <delta_ts>2020-06-18 16:17:27 -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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663726</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-17 17:47:38 -0700</bug_when>
    <thetext>[Intl] Enable RelativeTimeFormat and Locale by default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663727</commentid>
    <comment_count>1</comment_count>
      <attachid>402171</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-17 17:50:12 -0700</bug_when>
    <thetext>Created attachment 402171
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663764</commentid>
    <comment_count>2</comment_count>
      <attachid>402171</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-17 20:18:49 -0700</bug_when>
    <thetext>Comment on attachment 402171
Patch

r=me
Looks like you have some test failure to fix before landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663787</commentid>
    <comment_count>3</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-17 21:18:08 -0700</bug_when>
    <thetext>Oh! Interesting, this looks like a real bug.
The bug is that we are deleting UNumberFormat twice.

151     UErrorCode status = U_ZERO_ERROR;
152     m_numberFormat = std::unique_ptr&lt;UNumberFormat, UNumberFormatDeleter&gt;(unum_open(UNUM_DECIMAL, nullptr, 0, dataLocaleWithExtensions.data(), nullptr, &amp;status));
153     if (UNLIKELY(U_FAILURE(status))) {
154         throwTypeError(globalObject, scope, &quot;failed to initialize RelativeTimeFormat&quot;_s);
155         return;
156     }
157
158     m_relativeDateTimeFormatter = std::unique_ptr&lt;URelativeDateTimeFormatter, URelativeDateTimeFormatterDeleter&gt;(ureldatefmt_open(dataLocaleWithExtensions.data(), m_numberFormat.get(), m_style, UDISPCTX_CAPITALIZATION_FOR_STANDALONE, &amp;status));
159     if (UNLIKELY(U_FAILURE(status))) {
160         throwTypeError(globalObject, scope, &quot;failed to initialize RelativeTimeFormat&quot;_s);
161         return;
162     }
163 }

In L158, we pass m_numberFormat.get() while it is owned by m_numberFormat&apos;s unique_ptr.
But according to the document, https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/ureldatefmt_8h.html#ad321349fc3e3f6da7c0b1a542dc49ffb

&gt; nfToAdopt	A number formatter to set for this URelativeDateTimeFormatter object (instead of the default decimal formatter). Ownership of this UNumberFormat object will pass to the URelativeDateTimeFormatter object (the URelativeDateTimeFormatter adopts the UNumberFormat), which becomes responsible for closing it. If the caller wishes to retain ownership of the UNumberFormat object, the caller must clone it (with unum_clone) and pass the clone to ureldatefmt_open. May be NULL to use the default decimal formatter.

the ownership will be adopted by URelativeDateTimeFormatter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663792</commentid>
    <comment_count>4</comment_count>
      <attachid>402184</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-17 22:02:40 -0700</bug_when>
    <thetext>Created attachment 402184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663793</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-17 22:04:52 -0700</bug_when>
    <thetext>Thanks for helping me identify the issue! Asking for review again just to make sure I&apos;m not overlooking some established pattern for this sort of thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663898</commentid>
    <comment_count>6</comment_count>
      <attachid>402184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 09:45:40 -0700</bug_when>
    <thetext>Comment on attachment 402184
Patch

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

r=me with one comment.

&gt; Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:155
&gt; +    m_relativeDateTimeFormatter = std::unique_ptr&lt;URelativeDateTimeFormatter, URelativeDateTimeFormatterDeleter&gt;(ureldatefmt_open(dataLocaleWithExtensions.data(), m_rawNumberFormat, m_style, UDISPCTX_CAPITALIZATION_FOR_STANDALONE, &amp;status));
&gt;      if (UNLIKELY(U_FAILURE(status))) {
&gt;          throwTypeError(globalObject, scope, &quot;failed to initialize RelativeTimeFormat&quot;_s);
&gt;          return;

I think we could leak m_rawNumberFormat if opening m_relativeDateTimeFormatter failed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663937</commentid>
    <comment_count>7</comment_count>
      <attachid>402184</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-06-18 11:48:40 -0700</bug_when>
    <thetext>Comment on attachment 402184
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:155
&gt;&gt;          return;
&gt; 
&gt; I think we could leak m_rawNumberFormat if opening m_relativeDateTimeFormatter failed here.

Can you check the semantics of ownership of numberFormat when the opening fails in ICU?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663964</commentid>
    <comment_count>8</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-18 13:03:19 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #7)
&gt; Comment on attachment 402184 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402184&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:155
&gt; &gt;&gt;          return;
&gt; &gt; 
&gt; &gt; I think we could leak m_rawNumberFormat if opening m_relativeDateTimeFormatter failed here.
&gt; 
&gt; Can you check the semantics of ownership of numberFormat when the opening
&gt; fails in ICU?

Thanks for catching that! Looks like the only way this should be able to fail for us is if ICU fails to allocate a SharedNumberFormat for the UNumberFormat we pass in:
https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/reldatefmt.cpp#L1240

So it should be safe for us to unum_close here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663968</commentid>
    <comment_count>9</comment_count>
      <attachid>402229</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-18 13:08:05 -0700</bug_when>
    <thetext>Created attachment 402229
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663981</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-18 13:48:55 -0700</bug_when>
    <thetext>Committed r263227: &lt;https://trac.webkit.org/changeset/263227&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402229.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663982</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-18 13:49:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/64502909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663985</commentid>
    <comment_count>12</comment_count>
      <attachid>402229</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-18 14:14:53 -0700</bug_when>
    <thetext>Comment on attachment 402229
Patch for landing

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

&gt; Source/JavaScriptCore/runtime/IntlObject.cpp:155
&gt; -void IntlObject::finishCreation(VM&amp; vm, JSGlobalObject* globalObject)
&gt; +void IntlObject::finishCreation(VM&amp; vm, JSGlobalObject*)
&gt;  {
&gt;      Base::finishCreation(vm);
&gt; -    if (Options::useIntlLocale()) {
&gt; -        auto* localeConstructor = IntlLocaleConstructor::create(vm, IntlLocaleConstructor::createStructure(vm, globalObject, globalObject-&gt;functionPrototype()), jsCast&lt;IntlLocalePrototype*&gt;(globalObject-&gt;localeStructure()-&gt;storedPrototypeObject()));
&gt; -        putDirectWithoutTransition(vm, vm.propertyNames-&gt;Locale, localeConstructor, static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; -    }
&gt; -    if (Options::useIntlRelativeTimeFormat()) {
&gt; -        auto* relativeTimeFormatConstructor = IntlRelativeTimeFormatConstructor::create(vm, IntlRelativeTimeFormatConstructor::createStructure(vm, globalObject, globalObject-&gt;functionPrototype()), jsCast&lt;IntlRelativeTimeFormatPrototype*&gt;(globalObject-&gt;relativeTimeFormatStructure()-&gt;storedPrototypeObject()));
&gt; -        putDirectWithoutTransition(vm, vm.propertyNames-&gt;RelativeTimeFormat, relativeTimeFormatConstructor, static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; -    }
&gt;  }

Can we remove this now-empty function somehow?

&gt; Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:280
&gt; +    status = callBufferProducingFunction(unum_formatDoubleForFields, m_rawNumberFormat, absValue, buffer, iterator.get());

Seems fragile to just use this. Not sure we’re guaranteed that the adopted formatter can continue to be used. Could we clone instead? Or find a way to do this formatting with ureldatefmt calls?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663989</commentid>
    <comment_count>13</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-18 14:32:23 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #12)
&gt; Comment on attachment 402229 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402229&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/IntlObject.cpp:155
&gt; &gt; -void IntlObject::finishCreation(VM&amp; vm, JSGlobalObject* globalObject)
&gt; &gt; +void IntlObject::finishCreation(VM&amp; vm, JSGlobalObject*)
&gt; &gt;  {
&gt; &gt;      Base::finishCreation(vm);
&gt; &gt; -    if (Options::useIntlLocale()) {
&gt; &gt; -        auto* localeConstructor = IntlLocaleConstructor::create(vm, IntlLocaleConstructor::createStructure(vm, globalObject, globalObject-&gt;functionPrototype()), jsCast&lt;IntlLocalePrototype*&gt;(globalObject-&gt;localeStructure()-&gt;storedPrototypeObject()));
&gt; &gt; -        putDirectWithoutTransition(vm, vm.propertyNames-&gt;Locale, localeConstructor, static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; &gt; -    }
&gt; &gt; -    if (Options::useIntlRelativeTimeFormat()) {
&gt; &gt; -        auto* relativeTimeFormatConstructor = IntlRelativeTimeFormatConstructor::create(vm, IntlRelativeTimeFormatConstructor::createStructure(vm, globalObject, globalObject-&gt;functionPrototype()), jsCast&lt;IntlRelativeTimeFormatPrototype*&gt;(globalObject-&gt;relativeTimeFormatStructure()-&gt;storedPrototypeObject()));
&gt; &gt; -        putDirectWithoutTransition(vm, vm.propertyNames-&gt;RelativeTimeFormat, relativeTimeFormatConstructor, static_cast&lt;unsigned&gt;(PropertyAttribute::DontEnum));
&gt; &gt; -    }
&gt; &gt;  }
&gt; 
&gt; Can we remove this now-empty function somehow?

I was initially going to, but we&apos;re going to need to do the same add-and-remove dance for every new Intl feature.

&gt; &gt; Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:280
&gt; &gt; +    status = callBufferProducingFunction(unum_formatDoubleForFields, m_rawNumberFormat, absValue, buffer, iterator.get());
&gt; 
&gt; Seems fragile to just use this. Not sure we’re guaranteed that the adopted
&gt; formatter can continue to be used. Could we clone instead? Or find a way to
&gt; do this formatting with ureldatefmt calls?

The UNumberFormat should be guaranteed to live as long as the URelativeDateTimeFormatter does. We control the lifetime of the latter and assert that it&apos;s been instantiated correctly inside the formatInternal call a few lines prior (though we could assert here too if we&apos;d like). We certainly can clone, but it seems very silly -- the only reason we&apos;re passing in a UNumberFormat in the first place (instead of letting the URelativeDateTimeFormatter create a default one internally) is because we need direct access to it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663992</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-18 14:37:07 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #13)
&gt; (In reply to Darin Adler from comment #12)
&gt; &gt; Seems fragile to just use this. Not sure we’re guaranteed that the adopted
&gt; &gt; formatter can continue to be used. Could we clone instead? Or find a way to
&gt; &gt; do this formatting with ureldatefmt calls?
&gt; 
&gt; The UNumberFormat should be guaranteed to live as long as the
&gt; URelativeDateTimeFormatter does.

Why? Couldn’t a future version consume the UNumberFormat instead of keeping a pointer to it?

I’m not sure I understand the API contract fully; if you’re sure, I will back off.

&gt; the only reason we&apos;re passing in a UNumberFormat in the first place (instead of letting the URelativeDateTimeFormatter create a default one internally) is because we need direct access to it here

Can we just create our own and let URelativeDateTimeFormatter create its own? Is it important that they are the same object? A performance optimization? Affects behavior and correctness?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1664039</commentid>
    <comment_count>15</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-06-18 16:17:27 -0700</bug_when>
    <thetext>You&apos;re right that the contract I&apos;m assuming isn&apos;t explicit, so yeah, better safe than sorry.

Committed r263243: &lt;https://trac.webkit.org/changeset/263243&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402171</attachid>
            <date>2020-06-17 17:50:12 -0700</date>
            <delta_ts>2020-06-17 22:02:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213324-20200617175011.patch</filename>
            <type>text/plain</type>
            <size>12231</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZGJjY2FlMmU5Mzk2NzkzNjdmNTkyYmQ4NWY1N2M2OWY1NjEwZDkxLi41OTFkMTEzMjNhODg3NWM5
NjIyYThhNzkwNWUzNWJkMTMxZDY0YmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMC0wNi0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0ludGxdIEVuYWJsZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExv
Y2FsZSBieSBkZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTMzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZURh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVMb2NhbGVDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZU51bWJlckZvcm1hdENvbnN0cnVjdG9yKToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIFVuY29uZGl0
aW9uYWxpemUgY3JlYXRpb24gb2YgUmVsYXRpdmVUaW1lRm9ybWF0IGFuZCBMb2NhbGUgY29uc3Ry
dWN0b3JzLgorCisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorICAgICAgICBSZW1v
dmUgZmVhdHVyZSBmbGFncy4KKwogMjAyMC0wNi0xNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lA
YXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZyZWV6ZSBKU0JpZ0ludCB3aGVuIHNldHRpbmcg
aXQgYXMgYSBjb25zdGFudCBpbiBBSQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsT2JqZWN0LmNwcAppbmRleCA3OGMwM2ZkOWRlMzcwZGZmZGI4MDYxNWE5OGQ0ZTE2MmRmYjBk
NjY1Li4xZGZhMjA4MmFmMTQyM2Y0ZDNlZDNlMTMzMGE5NDk2M2JlZWE0MzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtNzAsMTggKzcwLDI1
IEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUNvbGxhdG9yQ29uc3RydWN0b3IoVk0mIHZtLCBKU09i
amVjdCogb2JqZWN0KQogICAgIHJldHVybiBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KHZtLCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxP
YmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJbnRsQ29s
bGF0b3JQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmNvbGxhdG9yU3RydWN0dXJlKCktPnN0b3Jl
ZFByb3RvdHlwZU9iamVjdCgpKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGNyZWF0ZU51bWJlckZv
cm1hdENvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKK3N0YXRpYyBKU1ZhbHVl
IGNyZWF0ZURhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0
KQogewogICAgIEludGxPYmplY3QqIGludGxPYmplY3QgPSBqc0Nhc3Q8SW50bE9iamVjdCo+KG9i
amVjdCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGludGxPYmplY3QtPmds
b2JhbE9iamVjdCh2bSk7Ci0gICAgcmV0dXJuIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKHZtLCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2
bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nh
c3Q8SW50bE51bWJlckZvcm1hdFByb3RvdHlwZSo+KGdsb2JhbE9iamVjdC0+bnVtYmVyRm9ybWF0
U3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7CisgICAgcmV0dXJuIEludGxE
YXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEludGxEYXRlVGltZUZvcm1hdENv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PEludGxEYXRlVGltZUZvcm1hdFByb3RvdHlw
ZSo+KGdsb2JhbE9iamVjdC0+ZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90
eXBlT2JqZWN0KCkpKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgY3JlYXRlRGF0ZVRpbWVGb3JtYXRD
b25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCitzdGF0aWMgSlNWYWx1ZSBjcmVh
dGVMb2NhbGVDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgSW50
bE9iamVjdCogaW50bE9iamVjdCA9IGpzQ2FzdDxJbnRsT2JqZWN0Kj4ob2JqZWN0KTsKICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gaW50bE9iamVjdC0+Z2xvYmFsT2JqZWN0KHZt
KTsKLSAgICByZXR1cm4gSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwg
SW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nhc3Q8SW50bERh
dGVUaW1lRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5kYXRlVGltZUZvcm1hdFN0cnVj
dHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOworICAgIHJldHVybiBJbnRsTG9jYWxl
Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bExvY2FsZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgp
KSwganNDYXN0PEludGxMb2NhbGVQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmxvY2FsZVN0cnVj
dHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOworfQorCitzdGF0aWMgSlNWYWx1ZSBj
cmVhdGVOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCit7
CisgICAgSW50bE9iamVjdCogaW50bE9iamVjdCA9IGpzQ2FzdDxJbnRsT2JqZWN0Kj4ob2JqZWN0
KTsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gaW50bE9iamVjdC0+Z2xvYmFs
T2JqZWN0KHZtKTsKKyAgICByZXR1cm4gSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpjcmVh
dGUodm0sIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJ
bnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5udW1iZXJGb3JtYXRTdHJ1
Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKIH0KIAogc3RhdGljIEpTVmFsdWUg
Y3JlYXRlUGx1cmFsUnVsZXNDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCkBA
IC05MSw2ICs5OCwxMyBAQCBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVQbHVyYWxSdWxlc0NvbnN0cnVj
dG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gSW50bFBsdXJhbFJ1bGVz
Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90
eXBlKCkpLCBqc0Nhc3Q8SW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5w
bHVyYWxSdWxlc1N0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwogfQogCitz
dGF0aWMgSlNWYWx1ZSBjcmVhdGVSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0s
IEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAgSW50bE9iamVjdCogaW50bE9iamVjdCA9IGpzQ2Fz
dDxJbnRsT2JqZWN0Kj4ob2JqZWN0KTsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
ID0gaW50bE9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKKyAgICByZXR1cm4gSW50bFJlbGF0aXZl
VGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEludGxSZWxhdGl2ZVRpbWVGb3JtYXRD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJbnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJv
dG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5yZWxhdGl2ZVRpbWVGb3JtYXRTdHJ1Y3R1cmUoKS0+c3Rv
cmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKK30KKwogfQogCiAjaW5jbHVkZSAiSW50bE9iamVjdC5s
dXQuaCIKQEAgLTEwMiw4ICsxMTYsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgIGdldENhbm9uaWNh
bExvY2FsZXMgICBpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMgICAgICAgICAgICBE
b250RW51bXxGdW5jdGlvbiAxCiAgIENvbGxhdG9yICAgICAgICAgICAgICBjcmVhdGVDb2xsYXRv
ckNvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNr
CiAgIERhdGVUaW1lRm9ybWF0ICAgICAgICBjcmVhdGVEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9y
ICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCisgIExvY2FsZSAgICAgICAg
ICAgICAgICBjcmVhdGVMb2NhbGVDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICBEb250
RW51bXxQcm9wZXJ0eUNhbGxiYWNrCiAgIE51bWJlckZvcm1hdCAgICAgICAgICBjcmVhdGVOdW1i
ZXJGb3JtYXRDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxi
YWNrCiAgIFBsdXJhbFJ1bGVzICAgICAgICAgICBjcmVhdGVQbHVyYWxSdWxlc0NvbnN0cnVjdG9y
ICAgICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCisgIFJlbGF0aXZlVGlt
ZUZvcm1hdCAgICBjcmVhdGVSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvciAgICAgICAgICBE
b250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCiBAZW5kCiAqLwogCkBAIC0xMzMsMTcgKzE0OSw5IEBA
IEludGxPYmplY3QqIEludGxPYmplY3Q6OmNyZWF0ZShWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSoKICAgICByZXR1cm4gb2JqZWN0OwogfQogCi12b2lkIElu
dGxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCkKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9i
amVjdCopCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIGlmIChPcHRpb25z
Ojp1c2VJbnRsTG9jYWxlKCkpIHsKLSAgICAgICAgYXV0byogbG9jYWxlQ29uc3RydWN0b3IgPSBJ
bnRsTG9jYWxlQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bExvY2FsZUNvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblBy
b3RvdHlwZSgpKSwganNDYXN0PEludGxMb2NhbGVQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmxv
Y2FsZVN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwotICAgICAgICBwdXRE
aXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+TG9jYWxlLCBsb2Nh
bGVDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpE
b250RW51bSkpOwotICAgIH0KLSAgICBpZiAoT3B0aW9uczo6dXNlSW50bFJlbGF0aXZlVGltZUZv
cm1hdCgpKSB7Ci0gICAgICAgIGF1dG8qIHJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yID0g
SW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEludGxSZWxhdGl2
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5yZWxhdGl2ZVRpbWVGb3JtYXRTdHJ1
Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKLSAgICAgICAgcHV0RGlyZWN0V2l0
aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlJlbGF0aXZlVGltZUZvcm1hdCwg
cmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9w
ZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICB9CiB9CiAKIFN0cnVjdHVyZSogSW50bE9i
amVjdDo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9uc0xpc3QuaAppbmRleCA3YWU0MDk5MzE5OWNiMGU1NmEwOWVmNDQ4NjgyY2UwYzJlNWRiNzll
Li5mMTJlMTFjMjIxZGI1MDA2YWEzNDFjNTFkZDRhNzAwOWUzNGIwNjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTQ4OSw4ICs0ODksNiBAQCBj
b25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9IGZhbHNlOwogICAg
IHYoQm9vbCwgdXNlV2ViQXNzZW1ibHlNdWx0aVZhbHVlcywgdHJ1ZSwgTm9ybWFsLCAiQWxsb3cg
dHlwZXMgZnJvbSB0aGUgd2FzbSBtdWxpdC12YWx1ZXMgc3BlYy4iKSBcCiAgICAgdihCb29sLCB1
c2VXZWFrUmVmcywgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgV2Vha1JlZiBjb25zdHJ1Y3Rv
ci4iKSBcCiAgICAgdihCb29sLCB1c2VCaWdJbnQsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHdl
IHdpbGwgZW5hYmxlIEJpZ0ludCBzdXBwb3J0LiIpIFwKLSAgICB2KEJvb2wsIHVzZUludGxMb2Nh
bGUsIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwuTG9jYWxlIGNvbnN0cnVjdG9yLiIp
IFwKLSAgICB2KEJvb2wsIHVzZUludGxSZWxhdGl2ZVRpbWVGb3JtYXQsIGZhbHNlLCBOb3JtYWws
ICJFeHBvc2UgdGhlIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0IGNvbnN0cnVjdG9yLiIpIFwKICAg
ICB2KEJvb2wsIHVzZUFycmF5QWxsb2NhdGlvblByb2ZpbGluZywgdHJ1ZSwgTm9ybWFsLCAiSWYg
dHJ1ZSwgd2Ugd2lsbCB1c2Ugb3VyIG5vcm1hbCBhcnJheSBhbGxvY2F0aW9uIHByb2ZpbGluZy4g
SWYgZmFsc2UsIHRoZSBhbGxvY2F0aW9uIHByb2ZpbGUgd2lsbCBhbHdheXMgY2xhaW0gdG8gYmUg
dW5kZWNpZGVkLiIpIFwKICAgICB2KEJvb2wsIGZvcmNlUG9seVByb3RvLCBmYWxzZSwgTm9ybWFs
LCAiSWYgdHJ1ZSwgY3JlYXRlX3RoaXMgd2lsbCBhbHdheXMgY3JlYXRlIGFuIG9iamVjdCB3aXRo
IGEgcG9seSBwcm90byBzdHJ1Y3R1cmUuIikgXAogICAgIHYoQm9vbCwgZm9yY2VNaW5pVk1Nb2Rl
LCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgaXQgd2lsbCBmb3JjZSBtaW5pIFZNIG1vZGUgb24u
IikgXApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDRjNDAxYTQ5NjQ2MTFlYjAwZmY2NmQ2ZmIyYzJkMWRkYzdkNTVkMzMuLjBmMWE2NTQxY2MwMzM5
NDA5NGMyZDkzZjdlMzQwZTRhZjU1NWJiYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNi0xNyAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgW0ludGxdIEVuYWJs
ZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExvY2FsZSBieSBkZWZhdWx0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWpzYy1zdHJl
c3MtdGVzdHM6CisgICAgICAgIFJlbW92ZSBmZWF0dXJlIGZsYWdzLgorCiAyMDIwLTA2LTE3ICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
NjMwNDQpOiBbbWFjT1NdIFRlc3RXZWJLaXRBUEkuVGV4dE1hbmlwdWxhdGlvbi5JbnNlcnRpbmdD
b250ZW50SW50b0FscmVhZHlNYW5pcHVsYXRlZENvbnRlbnRDcmVhdGVzVGV4dE1hbmlwdWxhdGlv
bkl0ZW0gaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRl
eCA1YjRjZGM1MjFiMzkxZjM0YWViMDVkNmU3ODJlOGVjN2RiN2IzZWY3Li43MDJkNjFmNDhmYTI3
YWRhZmNmNTZkM2M2NmUyZTMyMzM0ZjAyOWVmIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVz
dHMKQEAgLTczMSwxNCArNzMxLDYgQEAgZGVmIHJ1bkJpZ0ludEVuYWJsZWRCYXNlbGluZSgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogICAgIHJ1bigiYmlnLWludC1lbmFibGVkLWJhc2Vs
aW5lIiwgIi0tdXNlQmlnSW50PXRydWUiLCAiLS11c2VERkdKSVQ9MCIsICpvcHRpb25hbFRlc3RT
cGVjaWZpY09wdGlvbnMpCiBlbmQKIAotZGVmIHJ1bkludGxMb2NhbGVFbmFibGVkKCpvcHRpb25h
bFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcnVuKCJpbnRsLWxvY2FsZS1lbmFibGVkIiwgIi0t
dXNlSW50bExvY2FsZT10cnVlIiAsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZp
Y09wdGlvbnMpKQotZW5kCi0KLWRlZiBydW5JbnRsUmVsYXRpdmVUaW1lRm9ybWF0RW5hYmxlZCgq
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQotICAgIHJ1bigiaW50bC1yZWxhdGl2ZXRpbWVm
b3JtYXQtZW5hYmxlZCIsICItLXVzZUludGxSZWxhdGl2ZVRpbWVGb3JtYXQ9dHJ1ZSIgLCAqKEZU
TF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKLWVuZAotCiBkZWYgcnVu
RlRMTm9DSklUKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcnVuKCJtaXNjLWZ0
bC1uby1jaml0IiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUyArIG9wdGlvbmFsVGVz
dFNwZWNpZmljT3B0aW9ucykpCiBlbmQKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIv
SlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjc2MjY1M2VmNDVjNGRlMTFlZDkxMmZjYWQwOGIwNWFm
ZjM1NTZhYy4uMDlkNGM1YWFlNzljNWU3ZDlkMzJiY2NkNTM5MTY3YTFkMWU4NGJmNiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMC0wNi0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CisKKyAgICAgICAgW0ludGxdIEVuYWJsZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExvY2Fs
ZSBieSBkZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTMzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0cmVzcy9pbnRsLWxvY2FsZS1hcy1pbnRsLXBhcmFtLmpzOgorICAgICAgICAqIHN0
cmVzcy9pbnRsLWxvY2FsZS5qczoKKyAgICAgICAgKiBzdHJlc3MvaW50bC1yZWxhdGl2ZXRpbWVm
b3JtYXQuanM6CisgICAgICAgICogdGVzdDI2Mi9jb25maWcueWFtbDoKKyAgICAgICAgUmVtb3Zl
IGZlYXR1cmUgZmxhZ3MuCisKIDIwMjAtMDYtMTcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFw
cGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBGcmVlemUgSlNCaWdJbnQgd2hlbiBzZXR0aW5nIGl0
IGFzIGEgY29uc3RhbnQgaW4gQUkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9j
YWxlLWFzLWludGwtcGFyYW0uanMgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1hcy1pbnRs
LXBhcmFtLmpzCmluZGV4IDBiZGZiNzY3MTFiMWMzOWE0MjJjMjY4NTE2YjYxZGYyNzg5NjRiMjEu
LjljODNkZGFlYzdlZjcxOTkxZTlmZGE5OTkxZjU2ODNlMjdlYzc5MDQgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLWFzLWludGwtcGFyYW0uanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvaW50bC1sb2NhbGUtYXMtaW50bC1wYXJhbS5qcwpAQCAtMSw1ICsxLDMgQEAKLS8vQCBy
dW5JbnRsTG9jYWxlRW5hYmxlZCgiLS11c2VJbnRsUmVsYXRpdmVUaW1lRm9ybWF0PXRydWUiKQot
CiBjb25zdCB0YWcgPSAnamEtSGFudC1LUi11LWNhLWJ1ZGRoaXN0LWNvLWVvci1oYy1oMTEta2Yt
bG93ZXIta24tZmFsc2UtbnUtdGhhaSc7CiBjb25zdCBsb2NhbGUgPSBuZXcgSW50bC5Mb2NhbGUo
dGFnKTsKIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMgYi9KU1Rl
c3RzL3N0cmVzcy9pbnRsLWxvY2FsZS5qcwppbmRleCBiNTE3NmQyYzBiNDYxZGYyZDZmNmRmZjFm
NjI5YWE4MzZkNDdiYTk3Li5iZDZiODNhZDZhM2Y3NjZlMDExNjMxYWI1ZDU4MmQ2ZTI0NDdlMGY5
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy9pbnRsLWxvY2FsZS5qcwpAQCAtMSw1ICsxLDMgQEAKLS8vQCBydW5JbnRsTG9jYWxl
RW5hYmxlZAotCiBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAgICAgaWYg
KGFjdHVhbCAhPT0gZXhwZWN0ZWQpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQg
JHtleHBlY3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1yZWxh
dGl2ZXRpbWVmb3JtYXQuanMKaW5kZXggZTNiYjM4ODk0NjU1MDY3YWYzN2RkY2ZlNGZjODNmMzgx
NDQ1ZTA3NS4uM2YzYTg3YTFmMjJjMGJjZDlhNDk1YWI0YWM0MWM4YzUzMjI4MzIwOCAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQuanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQuanMKQEAgLTEsNSArMSwzIEBACi0v
L0AgcnVuSW50bFJlbGF0aXZlVGltZUZvcm1hdEVuYWJsZWQKLQogZnVuY3Rpb24gc2hvdWxkQmUo
YWN0dWFsLCBleHBlY3RlZCkgewogICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQogICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoYGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9
YCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwgYi9KU1Rlc3RzL3Rl
c3QyNjIvY29uZmlnLnlhbWwKaW5kZXggMzliYzQ4NzljNThiYjcxYmM5NWNiY2RhNWQ2MTI4ZjEz
Y2E5M2IwNy4uYTc5ZjJkYmUzNjE2NmYwYjhlYmI5OTlkYjg1Y2Y0ZTE2NGI5NGRmMSAxMDA2NDQK
LS0tIGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbApAQCAtMiw4ICsyLDYgQEAKIC0tLQogZmxhZ3M6CiAgIEJpZ0ludDogdXNlQmln
SW50Ci0gIEludGwuTG9jYWxlOiB1c2VJbnRsTG9jYWxlCi0gIEludGwuUmVsYXRpdmVUaW1lRm9y
bWF0OiB1c2VJbnRsUmVsYXRpdmVUaW1lRm9ybWF0CiAgIFdlYWtSZWY6IHVzZVdlYWtSZWZzCiAg
IGNsYXNzLWZpZWxkcy1wdWJsaWM6IHVzZVB1YmxpY0NsYXNzRmllbGRzCiAgIGNsYXNzLWZpZWxk
cy1wcml2YXRlOiB1c2VQcml2YXRlQ2xhc3NGaWVsZHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402184</attachid>
            <date>2020-06-17 22:02:40 -0700</date>
            <delta_ts>2020-06-18 13:08:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213324-20200617220239.patch</filename>
            <type>text/plain</type>
            <size>16244</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZGJjY2FlMmU5Mzk2NzkzNjdmNTkyYmQ4NWY1N2M2OWY1NjEwZDkxLi5iMzdmMjllZjBmZTRhZTY3
ZWUxMzBiYjZjMWJmNDgyNTM5ODljYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wNi0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0ludGxdIEVuYWJsZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExv
Y2FsZSBieSBkZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTMzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNyZWF0ZURh
dGVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOgorICAgICAgICAoSlNDOjpjcmVhdGVMb2NhbGVDb25z
dHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZU51bWJlckZvcm1hdENvbnN0cnVjdG9yKToK
KyAgICAgICAgKEpTQzo6Y3JlYXRlUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IpOgorICAg
ICAgICAoSlNDOjpJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIFVuY29uZGl0
aW9uYWxpemUgY3JlYXRpb24gb2YgUmVsYXRpdmVUaW1lRm9ybWF0IGFuZCBMb2NhbGUgY29uc3Ry
dWN0b3JzLgorCisgICAgICAgICogcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcDoK
KyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1hdDo6aW5pdGlhbGl6ZVJlbGF0aXZl
VGltZUZvcm1hdCk6CisgICAgICAgIChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6OmZvcm1h
dFRvUGFydHMgY29uc3QpOgorICAgICAgICAoSlNDOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0OjpV
TnVtYmVyRm9ybWF0RGVsZXRlcjo6b3BlcmF0b3IoKSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0Lmg6CisgICAgICAgIEZpeCBhbiBhY3R1
YWwgYnVnIC0tIFVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyICphZG9wdHMqIHRoZSBVTnVtYmVy
Rm9ybWF0IGl0J3MgaW5zdGFudGlhdGVkIHdpdGgsCisgICAgICAgIHNvIHdlIGNhbid0IGtlZXAg
YSB1bmlxdWVfcHRyIHRvIGl0LgorCisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgor
ICAgICAgICBSZW1vdmUgZmVhdHVyZSBmbGFncy4KKwogMjAyMC0wNi0xNyAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZyZWV6ZSBKU0JpZ0ludCB3
aGVuIHNldHRpbmcgaXQgYXMgYSBjb25zdGFudCBpbiBBSQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAppbmRleCA3OGMwM2ZkOWRlMzcwZGZmZGI4MDYxNWE5
OGQ0ZTE2MmRmYjBkNjY1Li4xZGZhMjA4MmFmMTQyM2Y0ZDNlZDNlMTMzMGE5NDk2M2JlZWE0MzAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAt
NzAsMTggKzcwLDI1IEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZUNvbGxhdG9yQ29uc3RydWN0b3Io
Vk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBJbnRsQ29sbGF0b3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlKHZtLCBJbnRsQ29sbGF0b3JDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpz
Q2FzdDxJbnRsQ29sbGF0b3JQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmNvbGxhdG9yU3RydWN0
dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlIGNy
ZWF0ZU51bWJlckZvcm1hdENvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKK3N0
YXRpYyBKU1ZhbHVlIGNyZWF0ZURhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBKU09i
amVjdCogb2JqZWN0KQogewogICAgIEludGxPYmplY3QqIGludGxPYmplY3QgPSBqc0Nhc3Q8SW50
bE9iamVjdCo+KG9iamVjdCk7CiAgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGlu
dGxPYmplY3QtPmdsb2JhbE9iamVjdCh2bSk7Ci0gICAgcmV0dXJuIEludGxOdW1iZXJGb3JtYXRD
b25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBJbnRsTnVtYmVyRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90
eXBlKCkpLCBqc0Nhc3Q8SW50bE51bWJlckZvcm1hdFByb3RvdHlwZSo+KGdsb2JhbE9iamVjdC0+
bnVtYmVyRm9ybWF0U3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7CisgICAg
cmV0dXJuIEludGxEYXRlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEludGxEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PEludGxEYXRlVGltZUZv
cm1hdFByb3RvdHlwZSo+KGdsb2JhbE9iamVjdC0+ZGF0ZVRpbWVGb3JtYXRTdHJ1Y3R1cmUoKS0+
c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgY3JlYXRlRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCitzdGF0aWMg
SlNWYWx1ZSBjcmVhdGVMb2NhbGVDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3Qp
CiB7CiAgICAgSW50bE9iamVjdCogaW50bE9iamVjdCA9IGpzQ2FzdDxJbnRsT2JqZWN0Kj4ob2Jq
ZWN0KTsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gaW50bE9iamVjdC0+Z2xv
YmFsT2JqZWN0KHZtKTsKLSAgICByZXR1cm4gSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6
OmNyZWF0ZSh2bSwgSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBq
c0Nhc3Q8SW50bERhdGVUaW1lRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5kYXRlVGlt
ZUZvcm1hdFN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOworICAgIHJldHVy
biBJbnRsTG9jYWxlQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bExvY2FsZUNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlv
blByb3RvdHlwZSgpKSwganNDYXN0PEludGxMb2NhbGVQcm90b3R5cGUqPihnbG9iYWxPYmplY3Qt
PmxvY2FsZVN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOworfQorCitzdGF0
aWMgSlNWYWx1ZSBjcmVhdGVOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0
KiBvYmplY3QpCit7CisgICAgSW50bE9iamVjdCogaW50bE9iamVjdCA9IGpzQ2FzdDxJbnRsT2Jq
ZWN0Kj4ob2JqZWN0KTsKKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gaW50bE9i
amVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKKyAgICByZXR1cm4gSW50bE51bWJlckZvcm1hdENvbnN0
cnVjdG9yOjpjcmVhdGUodm0sIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3Ry
dWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUo
KSksIGpzQ2FzdDxJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5udW1i
ZXJGb3JtYXRTdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKIH0KIAogc3Rh
dGljIEpTVmFsdWUgY3JlYXRlUGx1cmFsUnVsZXNDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2JqZWN0
KiBvYmplY3QpCkBAIC05MSw2ICs5OCwxMyBAQCBzdGF0aWMgSlNWYWx1ZSBjcmVhdGVQbHVyYWxS
dWxlc0NvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gSW50
bFBsdXJhbFJ1bGVzQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bFBsdXJhbFJ1bGVzQ29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1
bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nhc3Q8SW50bFBsdXJhbFJ1bGVzUHJvdG90eXBlKj4oZ2xv
YmFsT2JqZWN0LT5wbHVyYWxSdWxlc1N0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3Qo
KSkpOwogfQogCitzdGF0aWMgSlNWYWx1ZSBjcmVhdGVSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1
Y3RvcihWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCit7CisgICAgSW50bE9iamVjdCogaW50bE9i
amVjdCA9IGpzQ2FzdDxJbnRsT2JqZWN0Kj4ob2JqZWN0KTsKKyAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gaW50bE9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKKyAgICByZXR1cm4g
SW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUodm0sIEludGxSZWxhdGl2
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3Qs
IGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJbnRsUmVsYXRpdmVU
aW1lRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5yZWxhdGl2ZVRpbWVGb3JtYXRTdHJ1
Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKK30KKwogfQogCiAjaW5jbHVkZSAi
SW50bE9iamVjdC5sdXQuaCIKQEAgLTEwMiw4ICsxMTYsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
IGdldENhbm9uaWNhbExvY2FsZXMgICBpbnRsT2JqZWN0RnVuY0dldENhbm9uaWNhbExvY2FsZXMg
ICAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiAgIENvbGxhdG9yICAgICAgICAgICAgICBj
cmVhdGVDb2xsYXRvckNvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICBEb250RW51bXxQcm9w
ZXJ0eUNhbGxiYWNrCiAgIERhdGVUaW1lRm9ybWF0ICAgICAgICBjcmVhdGVEYXRlVGltZUZvcm1h
dENvbnN0cnVjdG9yICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCisgIExv
Y2FsZSAgICAgICAgICAgICAgICBjcmVhdGVMb2NhbGVDb25zdHJ1Y3RvciAgICAgICAgICAgICAg
ICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCiAgIE51bWJlckZvcm1hdCAgICAgICAg
ICBjcmVhdGVOdW1iZXJGb3JtYXRDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICBEb250RW51bXxQ
cm9wZXJ0eUNhbGxiYWNrCiAgIFBsdXJhbFJ1bGVzICAgICAgICAgICBjcmVhdGVQbHVyYWxSdWxl
c0NvbnN0cnVjdG9yICAgICAgICAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCisg
IFJlbGF0aXZlVGltZUZvcm1hdCAgICBjcmVhdGVSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rv
ciAgICAgICAgICBEb250RW51bXxQcm9wZXJ0eUNhbGxiYWNrCiBAZW5kCiAqLwogCkBAIC0xMzMs
MTcgKzE0OSw5IEBAIEludGxPYmplY3QqIEludGxPYmplY3Q6OmNyZWF0ZShWTSYgdm0sIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSoKICAgICByZXR1cm4gb2JqZWN0Owog
fQogCi12b2lkIEludGxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKK3ZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCopCiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAg
IGlmIChPcHRpb25zOjp1c2VJbnRsTG9jYWxlKCkpIHsKLSAgICAgICAgYXV0byogbG9jYWxlQ29u
c3RydWN0b3IgPSBJbnRsTG9jYWxlQ29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bExvY2FsZUNv
bnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0
LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PEludGxMb2NhbGVQcm90b3R5cGUqPihnbG9i
YWxPYmplY3QtPmxvY2FsZVN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwot
ICAgICAgICBwdXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+
TG9jYWxlLCBsb2NhbGVDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIH0KLSAgICBpZiAoT3B0aW9uczo6dXNlSW50bFJl
bGF0aXZlVGltZUZvcm1hdCgpKSB7Ci0gICAgICAgIGF1dG8qIHJlbGF0aXZlVGltZUZvcm1hdENv
bnN0cnVjdG9yID0gSW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGUodm0s
IEludGxSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBn
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJ
bnRsUmVsYXRpdmVUaW1lRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5yZWxhdGl2ZVRp
bWVGb3JtYXRTdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKLSAgICAgICAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPlJlbGF0aXZl
VGltZUZvcm1hdCwgcmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3IsIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pKTsKLSAgICB9CiB9CiAKIFN0cnVj
dHVyZSogSW50bE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSBwcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCmluZGV4IDgw
OWU2NjhhMTAzNzc4MzQ0NWQ0NGY1MjJmNzdjNzRmZmMyODA5NzUuLjhjZWQ2OGQ5MjI4OGI5ZjFm
MjVhYjk5ODU0MmFiODc5ZjUxNWI3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwCkBAIC00NiwxMiArNDYs
NiBAQCB2b2lkIEludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6OlVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0
dGVyRGVsZXRlcjo6b3BlcmF0b3IoKShVUmVsYQogICAgICAgICB1cmVsZGF0ZWZtdF9jbG9zZShy
ZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyKTsKIH0KIAotdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9y
bWF0OjpVTnVtYmVyRm9ybWF0RGVsZXRlcjo6b3BlcmF0b3IoKShVTnVtYmVyRm9ybWF0KiBudW1i
ZXJGb3JtYXQpIGNvbnN0Ci17Ci0gICAgaWYgKG51bWJlckZvcm1hdCkKLSAgICAgICAgdW51bV9j
bG9zZShudW1iZXJGb3JtYXQpOwotfQotCiBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KiBJbnRsUmVs
YXRpdmVUaW1lRm9ybWF0OjpjcmVhdGUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsK
ICAgICBhdXRvKiBmb3JtYXQgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxJbnRsUmVsYXRp
dmVUaW1lRm9ybWF0Pih2bS5oZWFwKSkgSW50bFJlbGF0aXZlVGltZUZvcm1hdCh2bSwgc3RydWN0
dXJlKTsKQEAgLTE0OSwxMyArMTQzLDEzIEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6
aW5pdGlhbGl6ZVJlbGF0aXZlVGltZUZvcm1hdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAg
bV9udW1lcmljID0gKG51bWVyaWMgPT0gImFsd2F5cyIpOwogCiAgICAgVUVycm9yQ29kZSBzdGF0
dXMgPSBVX1pFUk9fRVJST1I7Ci0gICAgbV9udW1iZXJGb3JtYXQgPSBzdGQ6OnVuaXF1ZV9wdHI8
VU51bWJlckZvcm1hdCwgVU51bWJlckZvcm1hdERlbGV0ZXI+KHVudW1fb3BlbihVTlVNX0RFQ0lN
QUwsIG51bGxwdHIsIDAsIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIG51bGxwdHIs
ICZzdGF0dXMpKTsKKyAgICBtX3Jhd051bWJlckZvcm1hdCA9IHVudW1fb3BlbihVTlVNX0RFQ0lN
QUwsIG51bGxwdHIsIDAsIGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIG51bGxwdHIs
ICZzdGF0dXMpOwogICAgIGlmIChVTkxJS0VMWShVX0ZBSUxVUkUoc3RhdHVzKSkpIHsKICAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBpbml0aWFs
aXplIFJlbGF0aXZlVGltZUZvcm1hdCJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX3JlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIgPSBzdGQ6OnVuaXF1ZV9wdHI8VVJlbGF0aXZl
RGF0ZVRpbWVGb3JtYXR0ZXIsIFVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyRGVsZXRlcj4odXJl
bGRhdGVmbXRfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMuZGF0YSgpLCBtX251bWJlckZv
cm1hdC5nZXQoKSwgbV9zdHlsZSwgVURJU1BDVFhfQ0FQSVRBTElaQVRJT05fRk9SX1NUQU5EQUxP
TkUsICZzdGF0dXMpKTsKKyAgICBtX3JlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIgPSBzdGQ6OnVu
aXF1ZV9wdHI8VVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIsIFVSZWxhdGl2ZURhdGVUaW1lRm9y
bWF0dGVyRGVsZXRlcj4odXJlbGRhdGVmbXRfb3BlbihkYXRhTG9jYWxlV2l0aEV4dGVuc2lvbnMu
ZGF0YSgpLCBtX3Jhd051bWJlckZvcm1hdCwgbV9zdHlsZSwgVURJU1BDVFhfQ0FQSVRBTElaQVRJ
T05fRk9SX1NUQU5EQUxPTkUsICZzdGF0dXMpKTsKICAgICBpZiAoVU5MSUtFTFkoVV9GQUlMVVJF
KHN0YXR1cykpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBSZWxhdGl2ZVRpbWVGb3JtYXQiX3MpOwogICAgICAgICBy
ZXR1cm47CkBAIC0yODIsNyArMjc2LDcgQEAgSlNWYWx1ZSBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0
Ojpmb3JtYXRUb1BhcnRzKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGRvdWIKICAgICBk
b3VibGUgYWJzVmFsdWUgPSBzdGQ6OmFicyh2YWx1ZSk7CiAKICAgICBWZWN0b3I8VUNoYXIsIDMy
PiBidWZmZXI7Ci0gICAgc3RhdHVzID0gY2FsbEJ1ZmZlclByb2R1Y2luZ0Z1bmN0aW9uKHVudW1f
Zm9ybWF0RG91YmxlRm9yRmllbGRzLCBtX251bWJlckZvcm1hdC5nZXQoKSwgYWJzVmFsdWUsIGJ1
ZmZlciwgaXRlcmF0b3IuZ2V0KCkpOworICAgIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdG
dW5jdGlvbih1bnVtX2Zvcm1hdERvdWJsZUZvckZpZWxkcywgbV9yYXdOdW1iZXJGb3JtYXQsIGFi
c1ZhbHVlLCBidWZmZXIsIGl0ZXJhdG9yLmdldCgpKTsKICAgICBpZiAoVV9GQUlMVVJFKHN0YXR1
cykpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAi
ZmFpbGVkIHRvIGZvcm1hdCByZWxhdGl2ZSB0aW1lIl9zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5oCmluZGV4IDA4
NDdiNWU4MzNjMmViMDdlZjA0M2E0OGM0YTE0YTYyOWJjYWE4NjguLjQ3NGM4MmE3OTcyYjM0MWE2
MTFiMDVmZTg2NDhjM2NmMjcwZjE1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9JbnRsUmVsYXRpdmVUaW1lRm9ybWF0LmgKQEAgLTY5LDEyICs2OSw5IEBA
IHByaXZhdGU6CiAgICAgc3RydWN0IFVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyRGVsZXRlciB7
CiAgICAgICAgIHZvaWQgb3BlcmF0b3IoKShVUmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlciopIGNv
bnN0OwogICAgIH07Ci0gICAgc3RydWN0IFVOdW1iZXJGb3JtYXREZWxldGVyIHsKLSAgICAgICAg
dm9pZCBvcGVyYXRvcigpKFVOdW1iZXJGb3JtYXQqKSBjb25zdDsKLSAgICB9OwogCiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFVSZWxhdGl2ZURhdGVUaW1lRm9ybWF0dGVyLCBVUmVsYXRpdmVEYXRlVGlt
ZUZvcm1hdHRlckRlbGV0ZXI+IG1fcmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlcjsKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8VU51bWJlckZvcm1hdCwgVU51bWJlckZvcm1hdERlbGV0ZXI+IG1fbnVtYmVy
Rm9ybWF0OworICAgIFVOdW1iZXJGb3JtYXQqIG1fcmF3TnVtYmVyRm9ybWF0OwogCiAgICAgU3Ry
aW5nIG1fbG9jYWxlOwogICAgIFN0cmluZyBtX251bWJlcmluZ1N5c3RlbTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDdhZTQwOTkzMTk5Y2IwZTU2
YTA5ZWY0NDg2ODJjZTBjMmU1ZGI3OWUuLmYxMmUxMWMyMjFkYjUwMDZhYTM0MWM1MWRkNGE3MDA5
ZTM0YjA2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aApAQCAtNDg5LDggKzQ4OSw2IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3Ry
ZWFtaW5nQXBpID0gZmFsc2U7CiAgICAgdihCb29sLCB1c2VXZWJBc3NlbWJseU11bHRpVmFsdWVz
LCB0cnVlLCBOb3JtYWwsICJBbGxvdyB0eXBlcyBmcm9tIHRoZSB3YXNtIG11bGl0LXZhbHVlcyBz
cGVjLiIpIFwKICAgICB2KEJvb2wsIHVzZVdlYWtSZWZzLCBmYWxzZSwgTm9ybWFsLCAiRXhwb3Nl
IHRoZSBXZWFrUmVmIGNvbnN0cnVjdG9yLiIpIFwKICAgICB2KEJvb2wsIHVzZUJpZ0ludCwgdHJ1
ZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCBlbmFibGUgQmlnSW50IHN1cHBvcnQuIikgXAot
ICAgIHYoQm9vbCwgdXNlSW50bExvY2FsZSwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50
bC5Mb2NhbGUgY29uc3RydWN0b3IuIikgXAotICAgIHYoQm9vbCwgdXNlSW50bFJlbGF0aXZlVGlt
ZUZvcm1hdCwgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgSW50bC5SZWxhdGl2ZVRpbWVGb3Jt
YXQgY29uc3RydWN0b3IuIikgXAogICAgIHYoQm9vbCwgdXNlQXJyYXlBbGxvY2F0aW9uUHJvZmls
aW5nLCB0cnVlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxsIHVzZSBvdXIgbm9ybWFsIGFycmF5
IGFsbG9jYXRpb24gcHJvZmlsaW5nLiBJZiBmYWxzZSwgdGhlIGFsbG9jYXRpb24gcHJvZmlsZSB3
aWxsIGFsd2F5cyBjbGFpbSB0byBiZSB1bmRlY2lkZWQuIikgXAogICAgIHYoQm9vbCwgZm9yY2VQ
b2x5UHJvdG8sIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBjcmVhdGVfdGhpcyB3aWxsIGFsd2F5
cyBjcmVhdGUgYW4gb2JqZWN0IHdpdGggYSBwb2x5IHByb3RvIHN0cnVjdHVyZS4iKSBcCiAgICAg
dihCb29sLCBmb3JjZU1pbmlWTU1vZGUsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBpdCB3aWxs
IGZvcmNlIG1pbmkgVk0gbW9kZSBvbi4iKSBcCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGM0MDFhNDk2NDYxMWViMDBmZjY2ZDZmYjJjMmQxZGRj
N2Q1NWQzMy4uMGYxYTY1NDFjYzAzMzk0MDk0YzJkOTNmN2UzNDBlNGFmNTU1YmJiMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIwLTA2LTE3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
KworICAgICAgICBbSW50bF0gRW5hYmxlIFJlbGF0aXZlVGltZUZvcm1hdCBhbmQgTG9jYWxlIGJ5
IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMzMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKyAgICAgICAgUmVtb3ZlIGZlYXR1cmUg
ZmxhZ3MuCisKIDIwMjAtMDYtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjI2MzA0NCk6IFttYWNPU10gVGVzdFdlYktpdEFQSS5UZXh0
TWFuaXB1bGF0aW9uLkluc2VydGluZ0NvbnRlbnRJbnRvQWxyZWFkeU1hbmlwdWxhdGVkQ29udGVu
dENyZWF0ZXNUZXh0TWFuaXB1bGF0aW9uSXRlbSBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IDViNGNkYzUyMWIzOTFmMzRhZWIwNWQ2ZTc4MmU4ZWM3
ZGI3YjNlZjcuLjcwMmQ2MWY0OGZhMjdhZGFmY2Y1NmQzYzY2ZTJlMzIzMzRmMDI5ZWYgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtNzMxLDE0ICs3MzEsNiBAQCBkZWYgcnVuQmln
SW50RW5hYmxlZEJhc2VsaW5lKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcnVu
KCJiaWctaW50LWVuYWJsZWQtYmFzZWxpbmUiLCAiLS11c2VCaWdJbnQ9dHJ1ZSIsICItLXVzZURG
R0pJVD0wIiwgKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCi1kZWYgcnVuSW50
bExvY2FsZUVuYWJsZWQoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKLSAgICBydW4oImlu
dGwtbG9jYWxlLWVuYWJsZWQiLCAiLS11c2VJbnRsTG9jYWxlPXRydWUiICwgKihGVExfT1BUSU9O
UyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCi1lbmQKLQotZGVmIHJ1bkludGxSZWxh
dGl2ZVRpbWVGb3JtYXRFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAg
cnVuKCJpbnRsLXJlbGF0aXZldGltZWZvcm1hdC1lbmFibGVkIiwgIi0tdXNlSW50bFJlbGF0aXZl
VGltZUZvcm1hdD10cnVlIiAsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09w
dGlvbnMpKQotZW5kCi0KIGRlZiBydW5GVExOb0NKSVQoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykKICAgICBydW4oIm1pc2MtZnRsLW5vLWNqaXQiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJ
VF9PUFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKIGVuZApkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyNzYyNjUzZWY0
NWM0ZGUxMWVkOTEyZmNhZDA4YjA1YWZmMzU1NmFjLi4wOWQ0YzVhYWU3OWM1ZTdkOWQzMmJjY2Q1
MzkxNjdhMWQxZTg0YmY2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA2LTE3ICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBbSW50bF0gRW5hYmxlIFJlbGF0
aXZlVGltZUZvcm1hdCBhbmQgTG9jYWxlIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzMyNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2ludGwtbG9jYWxlLWFzLWludGwt
cGFyYW0uanM6CisgICAgICAgICogc3RyZXNzL2ludGwtbG9jYWxlLmpzOgorICAgICAgICAqIHN0
cmVzcy9pbnRsLXJlbGF0aXZldGltZWZvcm1hdC5qczoKKyAgICAgICAgKiB0ZXN0MjYyL2NvbmZp
Zy55YW1sOgorICAgICAgICBSZW1vdmUgZmVhdHVyZSBmbGFncy4KKwogMjAyMC0wNi0xNyAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEZyZWV6ZSBK
U0JpZ0ludCB3aGVuIHNldHRpbmcgaXQgYXMgYSBjb25zdGFudCBpbiBBSQpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUtYXMtaW50bC1wYXJhbS5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL2ludGwtbG9jYWxlLWFzLWludGwtcGFyYW0uanMKaW5kZXggMGJkZmI3NjcxMWIxYzM5YTQy
MmMyNjg1MTZiNjFkZjI3ODk2NGIyMS4uOWM4M2RkYWVjN2VmNzE5OTFlOWZkYTk5OTFmNTY4M2Uy
N2VjNzkwNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUtYXMtaW50bC1w
YXJhbS5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1hcy1pbnRsLXBhcmFtLmpz
CkBAIC0xLDUgKzEsMyBAQAotLy9AIHJ1bkludGxMb2NhbGVFbmFibGVkKCItLXVzZUludGxSZWxh
dGl2ZVRpbWVGb3JtYXQ9dHJ1ZSIpCi0KIGNvbnN0IHRhZyA9ICdqYS1IYW50LUtSLXUtY2EtYnVk
ZGhpc3QtY28tZW9yLWhjLWgxMS1rZi1sb3dlci1rbi1mYWxzZS1udS10aGFpJzsKIGNvbnN0IGxv
Y2FsZSA9IG5ldyBJbnRsLkxvY2FsZSh0YWcpOwogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9pbnRsLWxvY2FsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLmpzCmluZGV4IGI1
MTc2ZDJjMGI0NjFkZjJkNmY2ZGZmMWY2MjlhYTgzNmQ0N2JhOTcuLmJkNmI4M2FkNmEzZjc2NmUw
MTE2MzFhYjVkNTgyZDZlMjQ0N2UwZjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwt
bG9jYWxlLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLmpzCkBAIC0xLDUgKzEs
MyBAQAotLy9AIHJ1bkludGxMb2NhbGVFbmFibGVkCi0KIGZ1bmN0aW9uIHNob3VsZEJlKGFjdHVh
bCwgZXhwZWN0ZWQpIHsKICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290ICR7YWN0dWFsfWApOwpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW50bC1yZWxhdGl2ZXRpbWVmb3JtYXQuanMgYi9K
U1Rlc3RzL3N0cmVzcy9pbnRsLXJlbGF0aXZldGltZWZvcm1hdC5qcwppbmRleCBlM2JiMzg4OTQ2
NTUwNjdhZjM3ZGRjZmU0ZmM4M2YzODE0NDVlMDc1Li4zZjNhODdhMWYyMmMwYmNkOWE0OTVhYjRh
YzQxYzhjNTMyMjgzMjA4IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLXJlbGF0aXZl
dGltZWZvcm1hdC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9pbnRsLXJlbGF0aXZldGltZWZvcm1h
dC5qcwpAQCAtMSw1ICsxLDMgQEAKLS8vQCBydW5JbnRsUmVsYXRpdmVUaW1lRm9ybWF0RW5hYmxl
ZAotCiBmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CiAgICAgaWYgKGFjdHVh
bCAhPT0gZXhwZWN0ZWQpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcihgZXhwZWN0ZWQgJHtleHBl
Y3RlZH0gYnV0IGdvdCAke2FjdHVhbH1gKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi9j
b25maWcueWFtbCBiL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAppbmRleCAzOWJjNDg3OWM1
OGJiNzFiYzk1Y2JjZGE1ZDYxMjhmMTNjYTkzYjA3Li5hNzlmMmRiZTM2MTY2ZjBiOGViYjk5OWRi
ODVjZjRlMTY0Yjk0ZGYxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIvY29uZmlnLnlhbWwK
KysrIGIvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCkBAIC0yLDggKzIsNiBAQAogLS0tCiBm
bGFnczoKICAgQmlnSW50OiB1c2VCaWdJbnQKLSAgSW50bC5Mb2NhbGU6IHVzZUludGxMb2NhbGUK
LSAgSW50bC5SZWxhdGl2ZVRpbWVGb3JtYXQ6IHVzZUludGxSZWxhdGl2ZVRpbWVGb3JtYXQKICAg
V2Vha1JlZjogdXNlV2Vha1JlZnMKICAgY2xhc3MtZmllbGRzLXB1YmxpYzogdXNlUHVibGljQ2xh
c3NGaWVsZHMKICAgY2xhc3MtZmllbGRzLXByaXZhdGU6IHVzZVByaXZhdGVDbGFzc0ZpZWxkcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402229</attachid>
            <date>2020-06-18 13:08:05 -0700</date>
            <delta_ts>2020-06-18 13:48:55 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213324-20200618130805.patch</filename>
            <type>text/plain</type>
            <size>16288</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZGJjY2FlMmU5Mzk2NzkzNjdmNTkyYmQ4NWY1N2M2OWY1NjEwZDkxLi45OWE4YTU0OWIwNjMxNTEz
ZTlkM2NlMzk3Yzg0ODc5Njk4NmQzYTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAyMC0wNi0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgW0ludGxdIEVuYWJsZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExv
Y2FsZSBieSBkZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTMzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisg
ICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6Y3JlYXRlRGF0
ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChKU0M6OmNyZWF0ZUxvY2FsZUNvbnN0
cnVjdG9yKToKKyAgICAgICAgKEpTQzo6Y3JlYXRlTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpjcmVhdGVSZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcik6CisgICAg
ICAgIChKU0M6OkludGxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgVW5jb25kaXRp
b25hbGl6ZSBjcmVhdGlvbiBvZiBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExvY2FsZSBjb25zdHJ1
Y3RvcnMuCisKKyAgICAgICAgKiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwOgor
ICAgICAgICAoSlNDOjpJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojppbml0aWFsaXplUmVsYXRpdmVU
aW1lRm9ybWF0KToKKyAgICAgICAgKEpTQzo6SW50bFJlbGF0aXZlVGltZUZvcm1hdDo6Zm9ybWF0
VG9QYXJ0cyBjb25zdCk6CisgICAgICAgIChKU0M6OkludGxSZWxhdGl2ZVRpbWVGb3JtYXQ6OlVO
dW1iZXJGb3JtYXREZWxldGVyOjpvcGVyYXRvcigpIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaDoKKyAgICAgICAgRml4IGFuIGFjdHVh
bCBidWcgLS0gVVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIgKmFkb3B0cyogdGhlIFVOdW1iZXJG
b3JtYXQgaXQncyBpbnN0YW50aWF0ZWQgd2l0aCwKKyAgICAgICAgc28gd2UgY2FuJ3Qga2VlcCBh
IHVuaXF1ZV9wdHIgdG8gaXQuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnNMaXN0Lmg6Cisg
ICAgICAgIFJlbW92ZSBmZWF0dXJlIGZsYWdzLgorCiAyMDIwLTA2LTE3ICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRnJlZXplIEpTQmlnSW50IHdo
ZW4gc2V0dGluZyBpdCBhcyBhIGNvbnN0YW50IGluIEFJCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDc4YzAzZmQ5ZGUzNzBkZmZkYjgwNjE1YTk4
ZDRlMTYyZGZiMGQ2NjUuLjFkZmEyMDgyYWYxNDIzZjRkM2VkM2UxMzMwYTk0OTYzYmVlYTQzMDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCkBAIC03
MCwxOCArNzAsMjUgQEAgc3RhdGljIEpTVmFsdWUgY3JlYXRlQ29sbGF0b3JDb25zdHJ1Y3RvcihW
TSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgcmV0dXJuIEludGxDb2xsYXRvckNvbnN0cnVj
dG9yOjpjcmVhdGUodm0sIEludGxDb2xsYXRvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
dm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganND
YXN0PEludGxDb2xsYXRvclByb3RvdHlwZSo+KGdsb2JhbE9iamVjdC0+Y29sbGF0b3JTdHJ1Y3R1
cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKIH0KIAotc3RhdGljIEpTVmFsdWUgY3Jl
YXRlTnVtYmVyRm9ybWF0Q29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQorc3Rh
dGljIEpTVmFsdWUgY3JlYXRlRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTT2Jq
ZWN0KiBvYmplY3QpCiB7CiAgICAgSW50bE9iamVjdCogaW50bE9iamVjdCA9IGpzQ2FzdDxJbnRs
T2JqZWN0Kj4ob2JqZWN0KTsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gaW50
bE9iamVjdC0+Z2xvYmFsT2JqZWN0KHZtKTsKLSAgICByZXR1cm4gSW50bE51bWJlckZvcm1hdENv
bnN0cnVjdG9yOjpjcmVhdGUodm0sIEludGxOdW1iZXJGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5
cGUoKSksIGpzQ2FzdDxJbnRsTnVtYmVyRm9ybWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5u
dW1iZXJGb3JtYXRTdHJ1Y3R1cmUoKS0+c3RvcmVkUHJvdG90eXBlT2JqZWN0KCkpKTsKKyAgICBy
ZXR1cm4gSW50bERhdGVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bERhdGVU
aW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nhc3Q8SW50bERhdGVUaW1lRm9y
bWF0UHJvdG90eXBlKj4oZ2xvYmFsT2JqZWN0LT5kYXRlVGltZUZvcm1hdFN0cnVjdHVyZSgpLT5z
dG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwogfQogCi1zdGF0aWMgSlNWYWx1ZSBjcmVhdGVEYXRl
VGltZUZvcm1hdENvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKK3N0YXRpYyBK
U1ZhbHVlIGNyZWF0ZUxvY2FsZUNvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkK
IHsKICAgICBJbnRsT2JqZWN0KiBpbnRsT2JqZWN0ID0ganNDYXN0PEludGxPYmplY3QqPihvYmpl
Y3QpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBpbnRsT2JqZWN0LT5nbG9i
YWxPYmplY3Qodm0pOwotICAgIHJldHVybiBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6
Y3JlYXRlKHZtLCBJbnRsRGF0ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSksIGpz
Q2FzdDxJbnRsRGF0ZVRpbWVGb3JtYXRQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPmRhdGVUaW1l
Rm9ybWF0U3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7CisgICAgcmV0dXJu
IEludGxMb2NhbGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBJbnRsTG9jYWxlQ29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9u
UHJvdG90eXBlKCkpLCBqc0Nhc3Q8SW50bExvY2FsZVByb3RvdHlwZSo+KGdsb2JhbE9iamVjdC0+
bG9jYWxlU3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7Cit9CisKK3N0YXRp
YyBKU1ZhbHVlIGNyZWF0ZU51bWJlckZvcm1hdENvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3Qq
IG9iamVjdCkKK3sKKyAgICBJbnRsT2JqZWN0KiBpbnRsT2JqZWN0ID0ganNDYXN0PEludGxPYmpl
Y3QqPihvYmplY3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBpbnRsT2Jq
ZWN0LT5nbG9iYWxPYmplY3Qodm0pOworICAgIHJldHVybiBJbnRsTnVtYmVyRm9ybWF0Q29uc3Ry
dWN0b3I6OmNyZWF0ZSh2bSwgSW50bE51bWJlckZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgp
KSwganNDYXN0PEludGxOdW1iZXJGb3JtYXRQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPm51bWJl
ckZvcm1hdFN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwogfQogCiBzdGF0
aWMgSlNWYWx1ZSBjcmVhdGVQbHVyYWxSdWxlc0NvbnN0cnVjdG9yKFZNJiB2bSwgSlNPYmplY3Qq
IG9iamVjdCkKQEAgLTkxLDYgKzk4LDEzIEBAIHN0YXRpYyBKU1ZhbHVlIGNyZWF0ZVBsdXJhbFJ1
bGVzQ29uc3RydWN0b3IoVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogICAgIHJldHVybiBJbnRs
UGx1cmFsUnVsZXNDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBJbnRsUGx1cmFsUnVsZXNDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVu
Y3Rpb25Qcm90b3R5cGUoKSksIGpzQ2FzdDxJbnRsUGx1cmFsUnVsZXNQcm90b3R5cGUqPihnbG9i
YWxPYmplY3QtPnBsdXJhbFJ1bGVzU3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgp
KSk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlIGNyZWF0ZVJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVj
dG9yKFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKK3sKKyAgICBJbnRsT2JqZWN0KiBpbnRsT2Jq
ZWN0ID0ganNDYXN0PEludGxPYmplY3QqPihvYmplY3QpOworICAgIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSBpbnRsT2JqZWN0LT5nbG9iYWxPYmplY3Qodm0pOworICAgIHJldHVybiBJ
bnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwgSW50bFJlbGF0aXZl
VGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PEludGxSZWxhdGl2ZVRp
bWVGb3JtYXRQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPnJlbGF0aXZlVGltZUZvcm1hdFN0cnVj
dHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOworfQorCiB9CiAKICNpbmNsdWRlICJJ
bnRsT2JqZWN0Lmx1dC5oIgpAQCAtMTAyLDggKzExNiwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
Z2V0Q2Fub25pY2FsTG9jYWxlcyAgIGludGxPYmplY3RGdW5jR2V0Q2Fub25pY2FsTG9jYWxlcyAg
ICAgICAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgQ29sbGF0b3IgICAgICAgICAgICAgIGNy
ZWF0ZUNvbGxhdG9yQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgIERvbnRFbnVtfFByb3Bl
cnR5Q2FsbGJhY2sKICAgRGF0ZVRpbWVGb3JtYXQgICAgICAgIGNyZWF0ZURhdGVUaW1lRm9ybWF0
Q29uc3RydWN0b3IgICAgICAgICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKKyAgTG9j
YWxlICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsZUNvbnN0cnVjdG9yICAgICAgICAgICAgICAg
ICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKICAgTnVtYmVyRm9ybWF0ICAgICAgICAg
IGNyZWF0ZU51bWJlckZvcm1hdENvbnN0cnVjdG9yICAgICAgICAgICAgICAgIERvbnRFbnVtfFBy
b3BlcnR5Q2FsbGJhY2sKICAgUGx1cmFsUnVsZXMgICAgICAgICAgIGNyZWF0ZVBsdXJhbFJ1bGVz
Q29uc3RydWN0b3IgICAgICAgICAgICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKKyAg
UmVsYXRpdmVUaW1lRm9ybWF0ICAgIGNyZWF0ZVJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9y
ICAgICAgICAgIERvbnRFbnVtfFByb3BlcnR5Q2FsbGJhY2sKIEBlbmQKICovCiAKQEAgLTEzMywx
NyArMTQ5LDkgQEAgSW50bE9iamVjdCogSW50bE9iamVjdDo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKgogICAgIHJldHVybiBvYmplY3Q7CiB9
CiAKLXZvaWQgSW50bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0KQordm9pZCBJbnRsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0s
IEpTR2xvYmFsT2JqZWN0KikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAg
aWYgKE9wdGlvbnM6OnVzZUludGxMb2NhbGUoKSkgewotICAgICAgICBhdXRvKiBsb2NhbGVDb25z
dHJ1Y3RvciA9IEludGxMb2NhbGVDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHZtLCBJbnRsTG9jYWxlQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qt
PmZ1bmN0aW9uUHJvdG90eXBlKCkpLCBqc0Nhc3Q8SW50bExvY2FsZVByb3RvdHlwZSo+KGdsb2Jh
bE9iamVjdC0+bG9jYWxlU3RydWN0dXJlKCktPnN0b3JlZFByb3RvdHlwZU9iamVjdCgpKSk7Ci0g
ICAgICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5M
b2NhbGUsIGxvY2FsZUNvbnN0cnVjdG9yLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlB
dHRyaWJ1dGU6OkRvbnRFbnVtKSk7Ci0gICAgfQotICAgIGlmIChPcHRpb25zOjp1c2VJbnRsUmVs
YXRpdmVUaW1lRm9ybWF0KCkpIHsKLSAgICAgICAgYXV0byogcmVsYXRpdmVUaW1lRm9ybWF0Q29u
c3RydWN0b3IgPSBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Q29uc3RydWN0b3I6OmNyZWF0ZSh2bSwg
SW50bFJlbGF0aXZlVGltZUZvcm1hdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIGds
b2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LT5mdW5jdGlvblByb3RvdHlwZSgpKSwganNDYXN0PElu
dGxSZWxhdGl2ZVRpbWVGb3JtYXRQcm90b3R5cGUqPihnbG9iYWxPYmplY3QtPnJlbGF0aXZlVGlt
ZUZvcm1hdFN0cnVjdHVyZSgpLT5zdG9yZWRQcm90b3R5cGVPYmplY3QoKSkpOwotICAgICAgICBw
dXREaXJlY3RXaXRob3V0VHJhbnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+UmVsYXRpdmVU
aW1lRm9ybWF0LCByZWxhdGl2ZVRpbWVGb3JtYXRDb25zdHJ1Y3Rvciwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RW51bSkpOwotICAgIH0KIH0KIAogU3RydWN0
dXJlKiBJbnRsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAKaW5kZXggODA5
ZTY2OGExMDM3NzgzNDQ1ZDQ0ZjUyMmY3N2M3NGZmYzI4MDk3NS4uNzEzYWRkNTViNGU1MGEzZDFk
NTNmMWU1NmMyNDI0MGVjYWJiYzNmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5jcHAKQEAgLTQ2LDEyICs0Niw2
IEBAIHZvaWQgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6VVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0
ZXJEZWxldGVyOjpvcGVyYXRvcigpKFVSZWxhCiAgICAgICAgIHVyZWxkYXRlZm10X2Nsb3NlKHJl
bGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIpOwogfQogCi12b2lkIEludGxSZWxhdGl2ZVRpbWVGb3Jt
YXQ6OlVOdW1iZXJGb3JtYXREZWxldGVyOjpvcGVyYXRvcigpKFVOdW1iZXJGb3JtYXQqIG51bWJl
ckZvcm1hdCkgY29uc3QKLXsKLSAgICBpZiAobnVtYmVyRm9ybWF0KQotICAgICAgICB1bnVtX2Ns
b3NlKG51bWJlckZvcm1hdCk7Ci19Ci0KIEludGxSZWxhdGl2ZVRpbWVGb3JtYXQqIEludGxSZWxh
dGl2ZVRpbWVGb3JtYXQ6OmNyZWF0ZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogewog
ICAgIGF1dG8qIGZvcm1hdCA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEludGxSZWxhdGl2
ZVRpbWVGb3JtYXQ+KHZtLmhlYXApKSBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0KHZtLCBzdHJ1Y3R1
cmUpOwpAQCAtMTQ5LDE0ICsxNDMsMTUgQEAgdm9pZCBJbnRsUmVsYXRpdmVUaW1lRm9ybWF0Ojpp
bml0aWFsaXplUmVsYXRpdmVUaW1lRm9ybWF0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICBt
X251bWVyaWMgPSAobnVtZXJpYyA9PSAiYWx3YXlzIik7CiAKICAgICBVRXJyb3JDb2RlIHN0YXR1
cyA9IFVfWkVST19FUlJPUjsKLSAgICBtX251bWJlckZvcm1hdCA9IHN0ZDo6dW5pcXVlX3B0cjxV
TnVtYmVyRm9ybWF0LCBVTnVtYmVyRm9ybWF0RGVsZXRlcj4odW51bV9vcGVuKFVOVU1fREVDSU1B
TCwgbnVsbHB0ciwgMCwgZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25zLmRhdGEoKSwgbnVsbHB0ciwg
JnN0YXR1cykpOworICAgIG1fcmF3TnVtYmVyRm9ybWF0ID0gdW51bV9vcGVuKFVOVU1fREVDSU1B
TCwgbnVsbHB0ciwgMCwgZGF0YUxvY2FsZVdpdGhFeHRlbnNpb25zLmRhdGEoKSwgbnVsbHB0ciwg
JnN0YXR1cyk7CiAgICAgaWYgKFVOTElLRUxZKFVfRkFJTFVSRShzdGF0dXMpKSkgewogICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiZmFpbGVkIHRvIGluaXRpYWxp
emUgUmVsYXRpdmVUaW1lRm9ybWF0Il9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fcmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlciA9IHN0ZDo6dW5pcXVlX3B0cjxVUmVsYXRpdmVE
YXRlVGltZUZvcm1hdHRlciwgVVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXJEZWxldGVyPih1cmVs
ZGF0ZWZtdF9vcGVuKGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5kYXRhKCksIG1fbnVtYmVyRm9y
bWF0LmdldCgpLCBtX3N0eWxlLCBVRElTUENUWF9DQVBJVEFMSVpBVElPTl9GT1JfU1RBTkRBTE9O
RSwgJnN0YXR1cykpOworICAgIG1fcmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlciA9IHN0ZDo6dW5p
cXVlX3B0cjxVUmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlciwgVVJlbGF0aXZlRGF0ZVRpbWVGb3Jt
YXR0ZXJEZWxldGVyPih1cmVsZGF0ZWZtdF9vcGVuKGRhdGFMb2NhbGVXaXRoRXh0ZW5zaW9ucy5k
YXRhKCksIG1fcmF3TnVtYmVyRm9ybWF0LCBtX3N0eWxlLCBVRElTUENUWF9DQVBJVEFMSVpBVElP
Tl9GT1JfU1RBTkRBTE9ORSwgJnN0YXR1cykpOwogICAgIGlmIChVTkxJS0VMWShVX0ZBSUxVUkUo
c3RhdHVzKSkpIHsKKyAgICAgICAgdW51bV9jbG9zZShtX3Jhd051bWJlckZvcm1hdCk7CiAgICAg
ICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJmYWlsZWQgdG8gaW5pdGlh
bGl6ZSBSZWxhdGl2ZVRpbWVGb3JtYXQiX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MjgyLDcgKzI3Nyw3IEBAIEpTVmFsdWUgSW50bFJlbGF0aXZlVGltZUZvcm1hdDo6Zm9ybWF0VG9Q
YXJ0cyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBkb3ViCiAgICAgZG91YmxlIGFic1Zh
bHVlID0gc3RkOjphYnModmFsdWUpOwogCiAgICAgVmVjdG9yPFVDaGFyLCAzMj4gYnVmZmVyOwot
ICAgIHN0YXR1cyA9IGNhbGxCdWZmZXJQcm9kdWNpbmdGdW5jdGlvbih1bnVtX2Zvcm1hdERvdWJs
ZUZvckZpZWxkcywgbV9udW1iZXJGb3JtYXQuZ2V0KCksIGFic1ZhbHVlLCBidWZmZXIsIGl0ZXJh
dG9yLmdldCgpKTsKKyAgICBzdGF0dXMgPSBjYWxsQnVmZmVyUHJvZHVjaW5nRnVuY3Rpb24odW51
bV9mb3JtYXREb3VibGVGb3JGaWVsZHMsIG1fcmF3TnVtYmVyRm9ybWF0LCBhYnNWYWx1ZSwgYnVm
ZmVyLCBpdGVyYXRvci5nZXQoKSk7CiAgICAgaWYgKFVfRkFJTFVSRShzdGF0dXMpKQogICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgImZhaWxlZCB0byBm
b3JtYXQgcmVsYXRpdmUgdGltZSJfcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0ludGxSZWxhdGl2ZVRpbWVGb3JtYXQuaAppbmRleCAwODQ3YjVlODMzYzJl
YjA3ZWYwNDNhNDhjNGExNGE2MjliY2FhODY4Li40NzRjODJhNzk3MmIzNDFhNjExYjA1ZmU4NjQ4
YzNjZjI3MGYxNTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bnRsUmVsYXRpdmVUaW1lRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bFJlbGF0aXZlVGltZUZvcm1hdC5oCkBAIC02OSwxMiArNjksOSBAQCBwcml2YXRlOgog
ICAgIHN0cnVjdCBVUmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlckRlbGV0ZXIgewogICAgICAgICB2
b2lkIG9wZXJhdG9yKCkoVVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXIqKSBjb25zdDsKICAgICB9
OwotICAgIHN0cnVjdCBVTnVtYmVyRm9ybWF0RGVsZXRlciB7Ci0gICAgICAgIHZvaWQgb3BlcmF0
b3IoKShVTnVtYmVyRm9ybWF0KikgY29uc3Q7Ci0gICAgfTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxVUmVsYXRpdmVEYXRlVGltZUZvcm1hdHRlciwgVVJlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXJE
ZWxldGVyPiBtX3JlbGF0aXZlRGF0ZVRpbWVGb3JtYXR0ZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PFVOdW1iZXJGb3JtYXQsIFVOdW1iZXJGb3JtYXREZWxldGVyPiBtX251bWJlckZvcm1hdDsKKyAg
ICBVTnVtYmVyRm9ybWF0KiBtX3Jhd051bWJlckZvcm1hdDsKIAogICAgIFN0cmluZyBtX2xvY2Fs
ZTsKICAgICBTdHJpbmcgbV9udW1iZXJpbmdTeXN0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCA3YWU0MDk5MzE5OWNiMGU1NmEwOWVmNDQ4Njgy
Y2UwYzJlNWRiNzllLi5mMTJlMTFjMjIxZGI1MDA2YWEzNDFjNTFkZDRhNzAwOWUzNGIwNjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKQEAgLTQ4OSw4
ICs0ODksNiBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluZ0FwaSA9
IGZhbHNlOwogICAgIHYoQm9vbCwgdXNlV2ViQXNzZW1ibHlNdWx0aVZhbHVlcywgdHJ1ZSwgTm9y
bWFsLCAiQWxsb3cgdHlwZXMgZnJvbSB0aGUgd2FzbSBtdWxpdC12YWx1ZXMgc3BlYy4iKSBcCiAg
ICAgdihCb29sLCB1c2VXZWFrUmVmcywgZmFsc2UsIE5vcm1hbCwgIkV4cG9zZSB0aGUgV2Vha1Jl
ZiBjb25zdHJ1Y3Rvci4iKSBcCiAgICAgdihCb29sLCB1c2VCaWdJbnQsIHRydWUsIE5vcm1hbCwg
IklmIHRydWUsIHdlIHdpbGwgZW5hYmxlIEJpZ0ludCBzdXBwb3J0LiIpIFwKLSAgICB2KEJvb2ws
IHVzZUludGxMb2NhbGUsIGZhbHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwuTG9jYWxlIGNv
bnN0cnVjdG9yLiIpIFwKLSAgICB2KEJvb2wsIHVzZUludGxSZWxhdGl2ZVRpbWVGb3JtYXQsIGZh
bHNlLCBOb3JtYWwsICJFeHBvc2UgdGhlIEludGwuUmVsYXRpdmVUaW1lRm9ybWF0IGNvbnN0cnVj
dG9yLiIpIFwKICAgICB2KEJvb2wsIHVzZUFycmF5QWxsb2NhdGlvblByb2ZpbGluZywgdHJ1ZSwg
Tm9ybWFsLCAiSWYgdHJ1ZSwgd2Ugd2lsbCB1c2Ugb3VyIG5vcm1hbCBhcnJheSBhbGxvY2F0aW9u
IHByb2ZpbGluZy4gSWYgZmFsc2UsIHRoZSBhbGxvY2F0aW9uIHByb2ZpbGUgd2lsbCBhbHdheXMg
Y2xhaW0gdG8gYmUgdW5kZWNpZGVkLiIpIFwKICAgICB2KEJvb2wsIGZvcmNlUG9seVByb3RvLCBm
YWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgY3JlYXRlX3RoaXMgd2lsbCBhbHdheXMgY3JlYXRlIGFu
IG9iamVjdCB3aXRoIGEgcG9seSBwcm90byBzdHJ1Y3R1cmUuIikgXAogICAgIHYoQm9vbCwgZm9y
Y2VNaW5pVk1Nb2RlLCBmYWxzZSwgTm9ybWFsLCAiSWYgdHJ1ZSwgaXQgd2lsbCBmb3JjZSBtaW5p
IFZNIG1vZGUgb24uIikgXApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDRjNDAxYTQ5NjQ2MTFlYjAwZmY2NmQ2ZmIyYzJkMWRkYzdkNTVkMzMuLjhi
OTA2NmI5OGU4ZTBiN2EzNmEwYzMyMWM4YjhjMzY4ZjQwNmU5ZTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0w
Ni0xNyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAg
W0ludGxdIEVuYWJsZSBSZWxhdGl2ZVRpbWVGb3JtYXQgYW5kIExvY2FsZSBieSBkZWZhdWx0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMzMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogU2NyaXB0cy9y
dW4tanNjLXN0cmVzcy10ZXN0czoKKyAgICAgICAgUmVtb3ZlIGZlYXR1cmUgZmxhZ3MuCisKIDIw
MjAtMDYtMTcgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTiAocjI2MzA0NCk6IFttYWNPU10gVGVzdFdlYktpdEFQSS5UZXh0TWFuaXB1bGF0aW9u
Lkluc2VydGluZ0NvbnRlbnRJbnRvQWxyZWFkeU1hbmlwdWxhdGVkQ29udGVudENyZWF0ZXNUZXh0
TWFuaXB1bGF0aW9uSXRlbSBpcyBhIGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNz
LXRlc3RzCmluZGV4IDViNGNkYzUyMWIzOTFmMzRhZWIwNWQ2ZTc4MmU4ZWM3ZGI3YjNlZjcuLjcw
MmQ2MWY0OGZhMjdhZGFmY2Y1NmQzYzY2ZTJlMzIzMzRmMDI5ZWYgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cwpAQCAtNzMxLDE0ICs3MzEsNiBAQCBkZWYgcnVuQmlnSW50RW5hYmxlZEJh
c2VsaW5lKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiAgICAgcnVuKCJiaWctaW50LWVu
YWJsZWQtYmFzZWxpbmUiLCAiLS11c2VCaWdJbnQ9dHJ1ZSIsICItLXVzZURGR0pJVD0wIiwgKm9w
dGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKIGVuZAogCi1kZWYgcnVuSW50bExvY2FsZUVuYWJs
ZWQoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKLSAgICBydW4oImludGwtbG9jYWxlLWVu
YWJsZWQiLCAiLS11c2VJbnRsTG9jYWxlPXRydWUiICwgKihGVExfT1BUSU9OUyArIG9wdGlvbmFs
VGVzdFNwZWNpZmljT3B0aW9ucykpCi1lbmQKLQotZGVmIHJ1bkludGxSZWxhdGl2ZVRpbWVGb3Jt
YXRFbmFibGVkKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCi0gICAgcnVuKCJpbnRsLXJl
bGF0aXZldGltZWZvcm1hdC1lbmFibGVkIiwgIi0tdXNlSW50bFJlbGF0aXZlVGltZUZvcm1hdD10
cnVlIiAsICooRlRMX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQotZW5k
Ci0KIGRlZiBydW5GVExOb0NKSVQoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykKICAgICBy
dW4oIm1pc2MtZnRsLW5vLWNqaXQiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TICsg
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKIGVuZApkaWZmIC0tZ2l0IGEvSlNUZXN0cy9D
aGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAyNzYyNjUzZWY0NWM0ZGUxMWVkOTEy
ZmNhZDA4YjA1YWZmMzU1NmFjLi5lODdiN2YzYTA2M2I0MzJhZGRiYzEyNGQ5Y2JjNmVmZjEwZDdk
NmQ2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA2LTE3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJz
bGluZ0Bzb255LmNvbT4KKworICAgICAgICBbSW50bF0gRW5hYmxlIFJlbGF0aXZlVGltZUZvcm1h
dCBhbmQgTG9jYWxlIGJ5IGRlZmF1bHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1
a2kuCisKKyAgICAgICAgKiBzdHJlc3MvaW50bC1sb2NhbGUtYXMtaW50bC1wYXJhbS5qczoKKyAg
ICAgICAgKiBzdHJlc3MvaW50bC1sb2NhbGUuanM6CisgICAgICAgICogc3RyZXNzL2ludGwtcmVs
YXRpdmV0aW1lZm9ybWF0LmpzOgorICAgICAgICAqIHRlc3QyNjIvY29uZmlnLnlhbWw6CisgICAg
ICAgIFJlbW92ZSBmZWF0dXJlIGZsYWdzLgorCiAyMDIwLTA2LTE3ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRnJlZXplIEpTQmlnSW50IHdoZW4g
c2V0dGluZyBpdCBhcyBhIGNvbnN0YW50IGluIEFJCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVz
cy9pbnRsLWxvY2FsZS1hcy1pbnRsLXBhcmFtLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2Nh
bGUtYXMtaW50bC1wYXJhbS5qcwppbmRleCAwYmRmYjc2NzExYjFjMzlhNDIyYzI2ODUxNmI2MWRm
Mjc4OTY0YjIxLi45YzgzZGRhZWM3ZWY3MTk5MWU5ZmRhOTk5MWY1NjgzZTI3ZWM3OTA0IDEwMDY0
NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbnRsLWxvY2FsZS1hcy1pbnRsLXBhcmFtLmpzCisrKyBi
L0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxlLWFzLWludGwtcGFyYW0uanMKQEAgLTEsNSArMSwz
IEBACi0vL0AgcnVuSW50bExvY2FsZUVuYWJsZWQoIi0tdXNlSW50bFJlbGF0aXZlVGltZUZvcm1h
dD10cnVlIikKLQogY29uc3QgdGFnID0gJ2phLUhhbnQtS1ItdS1jYS1idWRkaGlzdC1jby1lb3It
aGMtaDExLWtmLWxvd2VyLWtuLWZhbHNlLW51LXRoYWknOwogY29uc3QgbG9jYWxlID0gbmV3IElu
dGwuTG9jYWxlKHRhZyk7CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2ludGwtbG9jYWxl
LmpzIGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMKaW5kZXggYjUxNzZkMmMwYjQ2MWRm
MmQ2ZjZkZmYxZjYyOWFhODM2ZDQ3YmE5Ny4uYmQ2YjgzYWQ2YTNmNzY2ZTAxMTYzMWFiNWQ1ODJk
NmUyNDQ3ZTBmOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvaW50bC1sb2NhbGUuanMKQEAgLTEsNSArMSwzIEBACi0vL0AgcnVu
SW50bExvY2FsZUVuYWJsZWQKLQogZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkg
ewogICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
YGV4cGVjdGVkICR7ZXhwZWN0ZWR9IGJ1dCBnb3QgJHthY3R1YWx9YCk7CmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9pbnRsLXJlbGF0aXZldGltZWZvcm1hdC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0LmpzCmluZGV4IGUzYmIzODg5NDY1NTA2N2FmMzdkZGNm
ZTRmYzgzZjM4MTQ0NWUwNzUuLjNmM2E4N2ExZjIyYzBiY2Q5YTQ5NWFiNGFjNDFjOGM1MzIyODMy
MDggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0Lmpz
CisrKyBiL0pTVGVzdHMvc3RyZXNzL2ludGwtcmVsYXRpdmV0aW1lZm9ybWF0LmpzCkBAIC0xLDUg
KzEsMyBAQAotLy9AIHJ1bkludGxSZWxhdGl2ZVRpbWVGb3JtYXRFbmFibGVkCi0KIGZ1bmN0aW9u
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKICAgICBpZiAoYWN0dWFsICE9PSBleHBlY3Rl
ZCkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBleHBlY3RlZCAke2V4cGVjdGVkfSBidXQgZ290
ICR7YWN0dWFsfWApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sIGIv
SlNUZXN0cy90ZXN0MjYyL2NvbmZpZy55YW1sCmluZGV4IDM5YmM0ODc5YzU4YmI3MWJjOTVjYmNk
YTVkNjEyOGYxM2NhOTNiMDcuLmE3OWYyZGJlMzYxNjZmMGI4ZWJiOTk5ZGI4NWNmNGUxNjRiOTRk
ZjEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9jb25maWcueWFtbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvY29uZmlnLnlhbWwKQEAgLTIsOCArMiw2IEBACiAtLS0KIGZsYWdzOgogICBCaWdJ
bnQ6IHVzZUJpZ0ludAotICBJbnRsLkxvY2FsZTogdXNlSW50bExvY2FsZQotICBJbnRsLlJlbGF0
aXZlVGltZUZvcm1hdDogdXNlSW50bFJlbGF0aXZlVGltZUZvcm1hdAogICBXZWFrUmVmOiB1c2VX
ZWFrUmVmcwogICBjbGFzcy1maWVsZHMtcHVibGljOiB1c2VQdWJsaWNDbGFzc0ZpZWxkcwogICBj
bGFzcy1maWVsZHMtcHJpdmF0ZTogdXNlUHJpdmF0ZUNsYXNzRmllbGRzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>