<?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>229727</bug_id>
          
          <creation_ts>2021-08-31 12:30:22 -0700</creation_ts>
          <short_desc>imported/w3c/web-platform-tests/css/css-font-loading/fontfaceset-load-var.html crashes</short_desc>
          <delta_ts>2021-09-21 02:28:10 -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>Text</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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Chris Lord">clord</assigned_to>
          <cc>clord</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1789024</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-08-31 12:30:22 -0700</bug_when>
    <thetext>-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1791156</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-07 12:31:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/82834470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792266</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-10 00:50:25 -0700</bug_when>
    <thetext>ASSERTION FAILED: isMainThread()
/Users/mmaxfield/Build/Products/Debug/usr/local/include/wtf/NeverDestroyed.h(55) : static void WTF::MainThreadAccessTraits::assertAccess()
1   0x65ba9c049 WTFCrash
2   0x66d05472b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x66d0ce95c WTF::MainThreadAccessTraits::assertAccess()
4   0x66fb9dcc9 WTF::NeverDestroyed&lt;WebCore::CSSValuePool, WTF::MainThreadAccessTraits&gt;::storagePointer() const
5   0x66fb8fd25 WTF::NeverDestroyed&lt;WebCore::CSSValuePool, WTF::MainThreadAccessTraits&gt;::operator WebCore::CSSValuePool&amp;()
6   0x66fb8fce0 WebCore::CSSValuePool::singleton()
7   0x66fcabb48 WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeFunction(WebCore::CSSParserTokenRange&amp;, WebCore::CSSCalcSymbolTable const&amp;, WebCore::ValueRange)
8   0x66fcaea5b WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw(WebCore::CSSParserTokenRange&amp;)
9   0x66fcb2841 WebCore::CSSPropertyParserHelpers::consumeFontWeightRaw(WebCore::CSSParserTokenRange&amp;)
10  0x66fcb37a0 WebCore::CSSPropertyParserHelpers::consumeFontRaw(WebCore::CSSParserTokenRange&amp;, WebCore::CSSParserMode)
11  0x66fcb4173 WebCore::CSSPropertyParserWorkerSafe::parseFont(WTF::String const&amp;, WebCore::CSSParserMode)
12  0x66fade34c WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts(WTF::String const&amp;, WTF::String const&amp;)
13  0x66fbdf9b1 WebCore::FontFaceSet::load(WTF::String const&amp;, WTF::String const&amp;, WebCore::DOMPromiseDeferred&lt;WebCore::IDLSequence&lt;WebCore::IDLInterface&lt;WebCore::FontFace&gt; &gt; &gt;&amp;&amp;)
14  0x66dbec33d WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()::operator()() const
15  0x66dbec2b1 JSC::JSValue WebCore::toJS&lt;WebCore::IDLPromise&lt;WebCore::IDLSequence&lt;WebCore::IDLInterface&lt;WebCore::FontFace&gt; &gt; &gt;, WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()&gt;(JSC::JSGlobalObject&amp;, WebCore::JSDOMGlobalObject&amp;, JSC::ThrowScope&amp;, WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()&amp;&amp;)
16  0x66dbebf2f WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)
17  0x66dbec624 long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSFontFaceSet&gt;::call&lt;&amp;(WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)::&apos;lambda&apos;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)::operator()(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;) const
18  0x66dbec115 JSC::JSValue WebCore::callPromiseFunction&lt;long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSFontFaceSet&gt;::call&lt;&amp;(WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)::&apos;lambda&apos;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, &amp;(WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)))
19  0x66dbeba4d long long WebCore::IDLOperationReturningPromise&lt;WebCore::JSFontFaceSet&gt;::call&lt;&amp;(WebCore::jsFontFaceSetPrototypeFunction_loadBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSFontFaceSet*, WTF::Ref&lt;WebCore::DeferredPromise, WTF::RawPtrTraits&lt;WebCore::DeferredPromise&gt; &gt;&amp;&amp;)), (WebCore::CastedThisErrorBehavior)2&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)
20  0x66dbe9714 WebCore::jsFontFaceSetPrototypeFunction_load(JSC::JSGlobalObject*, JSC::CallFrame*)
21  0x2c7799203e78
22  0x65c0dbfab llint_entry
23  0x65c0b8cd0 vmEntryToJavaScript
24  0x65cf78b45 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
25  0x65cf78172 JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::JSGlobalObject*, JSC::JSObject*)
26  0x65d38e875 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
27  0x65d38e9bc JSC::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
28  0x66f869b5e WebCore::JSExecState::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
29  0x671d20fba WebCore::WorkerOrWorkletScriptController::evaluate(WebCore::ScriptSourceCode const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;, WTF::String*)
30  0x671d2866e WebCore::WorkerOrWorkletScriptController::evaluate(WebCore::ScriptSourceCode const&amp;, WTF::String*)
31  0x671d58d90 WebCore::WorkerThread::evaluateScriptIfNecessary(WTF::String&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792267</commentid>
    <comment_count>3</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-10 00:52:07 -0700</bug_when>
    <thetext>It looks like we&apos;re parsing the argument to `FontFaceSet.load(...)` in a worker, but the parser requires being run on the main thread, not in a worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793298</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-14 07:33:25 -0700</bug_when>
    <thetext>Looking into this now, hopefully just a missing call to get the worker&apos;s CSSValuePool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793316</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-14 08:49:01 -0700</bug_when>
    <thetext>The cause of this is that whenever FunctionToken was added to CSS parsing, CalcParser was used without specifying a CSSValuePool in the raw parser functions.

The whole point of the raw parsers, however, is that they don&apos;t use CSSValue, so I think there was a misunderstanding somewhere (it&apos;s a shame that whenever this was done, tests weren&apos;t comprehensive enough to catch this).

I&apos;m fixing this now, but likely won&apos;t finish until tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793328</commentid>
    <comment_count>6</comment_count>
      <attachid>438148</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-14 09:09:07 -0700</bug_when>
    <thetext>Created attachment 438148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793331</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-14 09:10:07 -0700</bug_when>
    <thetext>Possible fix, not 100% sure it&apos;s correct but I&apos;ve got to sign off for the day, so let&apos;s get some EWS results and I&apos;ll think about this some more tomorrow :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793994</commentid>
    <comment_count>8</comment_count>
      <attachid>438332</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-16 03:26:54 -0700</bug_when>
    <thetext>Created attachment 438332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794005</commentid>
    <comment_count>9</comment_count>
      <attachid>438334</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-16 04:18:59 -0700</bug_when>
    <thetext>Created attachment 438334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794039</commentid>
    <comment_count>10</comment_count>
      <attachid>438346</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-16 07:08:18 -0700</bug_when>
    <thetext>Created attachment 438346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794643</commentid>
    <comment_count>11</comment_count>
      <attachid>438346</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-09-17 15:29:47 -0700</bug_when>
    <thetext>Comment on attachment 438346
Patch

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

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:223
&gt; +    const CSSParserToken&amp; token = range.peek();

Consider auto&amp;?

&gt; Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:370
&gt; +    const CSSParserToken&amp; token = sourceRange.peek();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795468</commentid>
    <comment_count>12</comment_count>
      <attachid>438794</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2021-09-21 01:42:15 -0700</bug_when>
    <thetext>Created attachment 438794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795490</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-21 02:28:08 -0700</bug_when>
    <thetext>Committed r282809 (241941@main): &lt;https://commits.webkit.org/241941@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438794.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438148</attachid>
            <date>2021-09-14 09:09:07 -0700</date>
            <delta_ts>2021-09-16 03:26:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229727-20210914170905.patch</filename>
            <type>text/plain</type>
            <size>4555</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uNjdmYjBiMzBmMTk3ODE1NTFkNTZkZDExNDRlNjkz
Y2UxYjI2MDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA5LTE0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2ZvbnRmYWNlc2V0LWxvYWQtdmFyLmh0
bWwgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjgzNDQ3MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCB1c2UgQ2FsY1BhcnNl
ciBpbiByYXcgQ1NTIHBhcnNpbmcgZnVuY3Rpb25zLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
Y292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFy
c2VySGVscGVyczo6Y29uc3VtZUludGVnZXJUeXBlUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1l
TnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoT3JQZXJjZW50UmF3KToKKwog
MjAyMS0wOS0xNCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xG
Q11bSUZDXSBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIgc2hvdWxkIG5vdCBvcGVyYXRlIG9u
IHRoZSBnbG9iYWwgaW5saW5lIHJ1biBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKaW5kZXggZDNiOTc0ODAxNDA4
N2E3NDllNTY0NGJhNDkwOWM1ZjAzNWZlOGVmMS4uMmNlNGVmNGJkNTY1MTY3YTI1YWIwYjU3Zjg3
YTQ4ODVmYzYwYmZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQ
cm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcApAQCAtMjM3LDEzICsyMzcsMTIgQEAgcHJpdmF0
ZToKIAogLy8gTUFSSzogSW50ZWdlciAoUmF3KQogCitzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IGNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJU
b2tlblJhbmdlJiwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiwgVmFsdWVSYW5nZSk7CisKIHRl
bXBsYXRlPHR5cGVuYW1lIEludFR5cGU+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEludFR5cGU+IGNv
bnN1bWVJbnRlZ2VyVHlwZVJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlLCBkb3VibGUgbWluaW11bVZhbHVlKQogewotICAgIEFTU0VSVChyYW5n
ZS5wZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pOwotCi0gICAgQ2FsY1BhcnNlciBwYXJz
ZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcik7Ci0gICAgaWYgKGF1dG8gY2Fs
Y3VsYXRpb24gPSBwYXJzZXIudmFsdWUoKTsgY2FsY3VsYXRpb24gJiYgY2FsY3VsYXRpb24tPmNh
dGVnb3J5KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKQotICAgICAgICByZXR1cm4g
cGFyc2VyLmNvbnN1bWVJbnRlZ2VyVHlwZVJhdzxJbnRUeXBlPihtaW5pbXVtVmFsdWUpOworICAg
IGlmIChhdXRvIG51bWJlciA9IGNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5j
dGlvbihyYW5nZSwgeyB9LCBWYWx1ZVJhbmdlOjpBbGwpKQorICAgICAgICByZXR1cm4gY2xhbXBU
bzxJbnRUeXBlPihzdGQ6OnJvdW5kKHN0ZDo6bWF4KCpudW1iZXIsIG1pbmltdW1WYWx1ZSkpKTsK
IAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CkBAIC0yODYsMTIgKzI4NSwyMyBAQCBzdGF0
aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IHZhbGlkYXRlZE51bWJlclJhdyhkb3VibGUgdmFsdWUs
IFZhbHVlUmFuZ2UgdmFsdWVSYQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rp
b24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYg
c3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKK3N0ZDo6b3B0aW9uYWw8ZG91Ymxl
PiBjb25zdW1lTnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZh
bHVlUmFuZ2UgdmFsdWVSYW5nZSkKIHsKICAgICBBU1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9
PSBGdW5jdGlvblRva2VuKTsKIAotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJhbmdlLCBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpOdW1iZXIsIHZhbHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKLSAgICByZXR1
cm4gcGFyc2VyLmNvbnN1bWVOdW1iZXJSYXcoKTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tlbiYg
dG9rZW4gPSByYW5nZS5wZWVrKCk7CisgICAgYXV0byBmdW5jdGlvbklkID0gdG9rZW4uZnVuY3Rp
b25JZCgpOworICAgIGlmICghQ1NTQ2FsY1ZhbHVlOjppc0NhbGNGdW5jdGlvbihmdW5jdGlvbklk
KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gY2FsY1ZhbHVlID0g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUoZnVuY3Rpb25JZCwgY29uc3VtZUZ1bmN0aW9uKHJhbmdlKSwg
Q2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7Cisg
ICAgaWYgKCFjYWxjVmFsdWUgfHwgY2FsY1ZhbHVlLT5jYXRlZ29yeSgpICE9IENhbGN1bGF0aW9u
Q2F0ZWdvcnk6Ok51bWJlcikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlm
IChhdXRvIHZhbGlkYXRlZFZhbHVlID0gdmFsaWRhdGVkTnVtYmVyUmF3KGNhbGNWYWx1ZS0+ZG91
YmxlVmFsdWUoKSwgdmFsdWVSYW5nZSkpCisgICAgICAgIHJldHVybiB2YWxpZGF0ZWRWYWx1ZTsK
KworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRv
dWJsZT4gY29uc3VtZU51bWJlclJhd1dpdGhLbm93blRva2VuVHlwZU51bWJlcihDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiwgVmFsdWVSYW5nZSB2
YWx1ZVJhbmdlKQpAQCAtOTQ0LDEzICs5NTQsOSBAQCBzdGQ6Om9wdGlvbmFsPExlbmd0aE9yUGVy
Y2VudFJhdz4gY29uc3VtZUxlbmd0aE9yUGVyY2VudFJhdyhDU1NQYXJzZXJUb2tlblJhbmdlJgog
ICAgIGF1dG8mIHRva2VuID0gcmFuZ2UucGVlaygpOwogCiAgICAgc3dpdGNoICh0b2tlbi50eXBl
KCkpIHsKLSAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKKyAgICBjYXNlIEZ1bmN0aW9uVG9rZW46
CiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyBiZSB1c2luZyB0cnlpbmcgdG8gZ2VuZXJh
dGUgdGhlIGNhbGMgd2l0aCBib3RoIExlbmd0aCBhbmQgUGVyY2VudCBkZXN0aW5hdGlvbiBjYXRl
Z29yeSB0eXBlcz8KLSAgICAgICAgQ2FsY1BhcnNlciBwYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9u
Q2F0ZWdvcnk6Okxlbmd0aCwgdmFsdWVSYW5nZSk7Ci0gICAgICAgIGlmIChhdXRvIGNhbGN1bGF0
aW9uID0gcGFyc2VyLnZhbHVlKCk7IGNhbGN1bGF0aW9uICYmIGNhbkNvbnN1bWVDYWxjVmFsdWUo
Y2FsY3VsYXRpb24tPmNhdGVnb3J5KCksIHBhcnNlck1vZGUpKQotICAgICAgICAgICAgcmV0dXJu
IHBhcnNlci5jb25zdW1lTGVuZ3RoT3JQZXJjZW50UmF3KCk7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0xlbmd0aE9yUGVyY2VudFJhdyhjb25zdW1lTnVt
YmVyUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24ocmFuZ2UsIHsgfSwgdmFsdWVSYW5nZSkp
OwogCiAgICAgY2FzZSBEaW1lbnNpb25Ub2tlbjoKICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0xl
bmd0aE9yUGVyY2VudFJhdyhjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5z
aW9uKHJhbmdlLCB7IH0sIHZhbHVlUmFuZ2UsIHBhcnNlck1vZGUsIHVuaXRsZXNzKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438332</attachid>
            <date>2021-09-16 03:26:54 -0700</date>
            <delta_ts>2021-09-16 04:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229727-20210916112652.patch</filename>
            <type>text/plain</type>
            <size>11460</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uYmZlNGQzN2JlZThjODg3Y2NiZGUyN2NmMDYyYzA2
NTQzYmNmMzIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTE0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2ZvbnRmYWNlc2V0LWxvYWQtdmFyLmh0
bWwgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjgzNDQ3MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCB1c2UgQ2FsY1BhcnNl
ciBpbiByYXcgQ1NTIHBhcnNpbmcgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgYWNjZXB0CisgICAgICAg
IGEgQ1NTVmFsdWVQb29sIHBhcmFtZXRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OmNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSW50ZWdlclR5cGVS
YXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVQZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9r
ZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVMZW5ndGhPclBlcmNl
bnRSYXcpOgorCiAyMDIxLTA5LTE0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlciBzaG91bGQgbm90
IG9wZXJhdGUgb24gdGhlIGdsb2JhbCBpbmxpbmUgcnVuIGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCBk
M2I5NzQ4MDE0MDg3YTc0OWU1NjQ0YmE0OTA5YzVmMDM1ZmU4ZWYxLi41NWY3NDUxMjAwZWJjYWNh
MGUxODBkM2ExYjg5NGE4YjczN2ViY2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC0yMzUsMTUgKzIzNSwz
MSBAQCBwcml2YXRlOgogCiAvLyBNQVJLOiAtIFByaW1pdGl2ZSB2YWx1ZSBjb25zdW1lcnMgZm9y
IGNhbGxlcnMgdGhhdCBrbm93IHRoZSB0b2tlbiB0eXBlLgogCi0vLyBNQVJLOiBJbnRlZ2VyIChS
YXcpCi0KLXRlbXBsYXRlPHR5cGVuYW1lIEludFR5cGU+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPElu
dFR5cGU+IGNvbnN1bWVJbnRlZ2VyVHlwZVJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBkb3VibGUgbWluaW11bVZhbHVlKQorc3RhdGljIFJl
ZlB0cjxDU1NDYWxjVmFsdWU+IGNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rp
b24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdv
cnksIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSB7IH0sIFZhbHVlUmFu
Z2UgdmFsdWVSYW5nZSA9IFZhbHVlUmFuZ2U6OkFsbCkKIHsKICAgICBBU1NFUlQocmFuZ2UucGVl
aygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKIAotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJh
bmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIpOwotICAgIGlmIChhdXRvIGNhbGN1bGF0
aW9uID0gcGFyc2VyLnZhbHVlKCk7IGNhbGN1bGF0aW9uICYmIGNhbGN1bGF0aW9uLT5jYXRlZ29y
eSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcikKLSAgICAgICAgcmV0dXJuIHBhcnNl
ci5jb25zdW1lSW50ZWdlclR5cGVSYXc8SW50VHlwZT4obWluaW11bVZhbHVlKTsKKyAgICBjb25z
dCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisgICAgYXV0byBmdW5jdGlv
bklkID0gdG9rZW4uZnVuY3Rpb25JZCgpOworICAgIGlmICghQ1NTQ2FsY1ZhbHVlOjppc0NhbGNG
dW5jdGlvbihmdW5jdGlvbklkKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRv
IGNhbGNWYWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5j
dGlvbihyYW5nZSksIGNhdGVnb3J5LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7CisgICAgaWYg
KGNhbGNWYWx1ZSAmJiBjYWxjVmFsdWUtPmNhdGVnb3J5KCkgPT0gY2F0ZWdvcnkpCisgICAgICAg
IHJldHVybiBjYWxjVmFsdWU7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworLy8gTUFSSzog
SW50ZWdlciAoUmF3KQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRUeXBlPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxJbnRUeXBlPiBjb25zdW1lSW50ZWdlclR5cGVSYXdXaXRoS25vd25Ub2tlblR5cGVG
dW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiBzb3VyY2VSYW5nZSwgZG91YmxlIG1pbmltdW1W
YWx1ZSkKK3sKKyAgICBhdXRvIHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFs
dWUgPSBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHsgfSwgVmFsdWVSYW5nZTo6QWxsKSkgeworICAgICAg
ICBzb3VyY2VSYW5nZSA9IHJhbmdlOworICAgICAgICByZXR1cm4gY2xhbXBUbzxJbnRUeXBlPihz
dGQ6OnJvdW5kKHN0ZDo6bWF4KHZhbHVlLT5kb3VibGVWYWx1ZSgpLCBtaW5pbXVtVmFsdWUpKSk7
CisgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KQEAgLTI4NiwxMiArMzAyLDE3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsaWRhdGVkTnVtYmVyUmF3KGRvdWJs
ZSB2YWx1ZSwgVmFsdWVSYW5nZSB2YWx1ZVJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1zdGF0
aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5
cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJv
bFRhYmxlJiBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlKQorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rp
b24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xU
YWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKIHsKLSAgICBBU1NFUlQo
cmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKKyAgICBhdXRvIHJhbmdlID0g
c291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93
blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHN5
bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAgICBpZiAoYXV0byB2YWxpZGF0ZWRWYWx1
ZSA9IHZhbGlkYXRlZE51bWJlclJhdyh2YWx1ZS0+ZG91YmxlVmFsdWUoKSwgdmFsdWVSYW5nZSkp
IHsKKyAgICAgICAgICAgIHNvdXJjZVJhbmdlID0gcmFuZ2U7CisgICAgICAgICAgICByZXR1cm4g
dmFsaWRhdGVkVmFsdWU7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBDYWxjUGFyc2VyIHBhcnNl
cihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCB2YWx1ZVJhbmdlLCBzeW1ib2xU
YWJsZSk7Ci0gICAgcmV0dXJuIHBhcnNlci5jb25zdW1lTnVtYmVyUmF3KCk7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1l
TnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlTnVtYmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UpCkBA
IC0zNjEsMTIgKzM4MiwyNiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IHZhbGlkYXRl
ZFBlcmNlbnRSYXcoZG91YmxlIHZhbHVlLCBWYWx1ZVJhbmdlIHZhbHVlUgogICAgIHJldHVybiB2
YWx1ZTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudFJh
d1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBj
b25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlIHZhbHVlUmFu
Z2UpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVQZXJjZW50UmF3V2l0aEtu
b3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFuZ2UsIGNv
bnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5n
ZSwgYm9vbCBwYXJzZVBlcmNlbnROdW1iZXIgPSB0cnVlKQogewogICAgIEFTU0VSVChyYW5nZS5w
ZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pOwogCi0gICAgQ2FsY1BhcnNlciBwYXJzZXIo
cmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnQsIHZhbHVlUmFuZ2UsIHN5bWJvbFRh
YmxlKTsKLSAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVQZXJjZW50UmF3KCk7CisgICAgY29uc3Qg
Q1NTUGFyc2VyVG9rZW4mIHRva2VuID0gc291cmNlUmFuZ2UucGVlaygpOworICAgIGF1dG8gZnVu
Y3Rpb25JZCA9IHRva2VuLmZ1bmN0aW9uSWQoKTsKKyAgICBpZiAoIUNTU0NhbGNWYWx1ZTo6aXND
YWxjRnVuY3Rpb24oZnVuY3Rpb25JZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICBhdXRvIHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgYXV0byBjYWxjVmFsdWUgPSBDU1ND
YWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpLCBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7CisgICAg
aWYgKCFjYWxjVmFsdWUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKChj
YWxjVmFsdWUtPmNhdGVnb3J5KCkgIT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkKKyAg
ICAgICAgJiYgKGNhbGNWYWx1ZS0+Y2F0ZWdvcnkoKSAhPSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQ
ZXJjZW50TGVuZ3RoKQorICAgICAgICAmJiAoIXBhcnNlUGVyY2VudE51bWJlciB8fCAoY2FsY1Zh
bHVlLT5jYXRlZ29yeSgpICE9IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnROdW1iZXIpKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHNvdXJjZVJhbmdlID0gcmFuZ2U7
CisgICAgcmV0dXJuIGNhbGNWYWx1ZS0+ZG91YmxlVmFsdWUoKTsKIH0KIAogc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudFJhd1dpdGhLbm93blRva2VuVHlwZVBlcmNl
bnRhZ2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJs
ZSYsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKQEAgLTQzMywxMiArNDY4LDE0IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsaWRhdGVkTGVuZ3RoUmF3KGRvdWJsZSB2YWx1ZSwgVmFs
dWVSYW5nZSB2YWx1ZVJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1zdGF0aWMgc3RkOjpvcHRp
b25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBz
eW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVz
c1F1aXJrKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3
V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFu
Z2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFs
dWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykKIHsKLSAgICBBU1NFUlQocmFu
Z2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKLQotICAgIENhbGNQYXJzZXIgcGFy
c2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGgsIHZhbHVlUmFuZ2UsIHN5bWJv
bFRhYmxlKTsKLSAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVMZW5ndGhSYXcoKTsKKyAgICBhdXRv
IHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBjb25zdW1lQ2FsY1Jh
d1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpM
ZW5ndGgsIHN5bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAgICBzb3VyY2VSYW5nZSA9
IHJhbmdlOworICAgICAgICByZXR1cm4geyB7IHZhbHVlLT5wcmltaXRpdmVUeXBlKCksIHZhbHVl
LT5kb3VibGVWYWx1ZSgpIH0gfTsKKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3V2l0aEtu
b3duVG9rZW5UeXBlRGltZW5zaW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBD
U1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UsIENTU1BhcnNlck1vZGUg
cGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykKQEAgLTUyOCwxMiArNTY1LDE0IEBAIHN0YXRpYyBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVMZW5ndGhDU1NQcmltaXRpdmVWYWx1ZVdp
dGhDYWxjV2l0aEtub3duCiAKIC8vIE1BUks6IEFuZ2xlIChyYXcpCiAKLXN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBz
eW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVz
c1F1aXJrLCBVbml0bGVzc1plcm9RdWlyaykKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPEFuZ2xlUmF3
PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tl
blJhbmdlJiBzb3VyY2VSYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJs
ZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrLCBV
bml0bGVzc1plcm9RdWlyaykKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBG
dW5jdGlvblRva2VuKTsKLQotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlv
bkNhdGVnb3J5OjpBbmdsZSwgdmFsdWVSYW5nZSwgc3ltYm9sVGFibGUpOwotICAgIHJldHVybiBw
YXJzZXIuY29uc3VtZUFuZ2xlUmF3KCk7CisgICAgYXV0byByYW5nZSA9IHNvdXJjZVJhbmdlOwor
ICAgIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUNhbGNSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5j
dGlvbihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIHN5bWJvbFRhYmxlLCB2YWx1
ZVJhbmdlKSkgeworICAgICAgICBzb3VyY2VSYW5nZSA9IHJhbmdlOworICAgICAgICByZXR1cm4g
eyB7IHZhbHVlLT5wcmltaXRpdmVUeXBlKCksIHZhbHVlLT5kb3VibGVWYWx1ZSgpIH0gfTsKKyAg
ICB9CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8
QW5nbGVSYXc+IGNvbnN1bWVBbmdsZVJhd1dpdGhLbm93blRva2VuVHlwZURpbWVuc2lvbihDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiwgVmFsdWVS
YW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaywgVW5pdGxlc3NaZXJvUXVpcmspCkBA
IC05NDYsOSArOTg1LDEwIEBAIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoT3JQZXJjZW50UmF3PiBjb25z
dW1lTGVuZ3RoT3JQZXJjZW50UmF3KENTU1BhcnNlclRva2VuUmFuZ2UmCiAgICAgc3dpdGNoICh0
b2tlbi50eXBlKCkpIHsKICAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKICAgICAgICAgLy8gRklY
TUU6IFNob3VsZCB0aGlzIGJlIHVzaW5nIHRyeWluZyB0byBnZW5lcmF0ZSB0aGUgY2FsYyB3aXRo
IGJvdGggTGVuZ3RoIGFuZCBQZXJjZW50IGRlc3RpbmF0aW9uIGNhdGVnb3J5IHR5cGVzPwotICAg
ICAgICBDYWxjUGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3Ro
LCB2YWx1ZVJhbmdlKTsKLSAgICAgICAgaWYgKGF1dG8gY2FsY3VsYXRpb24gPSBwYXJzZXIudmFs
dWUoKTsgY2FsY3VsYXRpb24gJiYgY2FuQ29uc3VtZUNhbGNWYWx1ZShjYWxjdWxhdGlvbi0+Y2F0
ZWdvcnkoKSwgcGFyc2VyTW9kZSkpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVM
ZW5ndGhPclBlcmNlbnRSYXcoKTsKKyAgICAgICAgaWYgKGF1dG8gbGVuZ3RoID0gY29uc3VtZUxl
bmd0aFJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCB7IH0sIHZhbHVlUmFuZ2Us
IHBhcnNlck1vZGUsIHVuaXRsZXNzKSkKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0VG9MZW5n
dGhPclBlcmNlbnRSYXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1dG8gcGVyY2VudCA9IGNvbnN1
bWVQZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24ocmFuZ2UsIHsgfSwgdmFsdWVS
YW5nZSwgcGFyc2VyTW9kZSA9PSBTVkdBdHRyaWJ1dGVNb2RlKSkKKyAgICAgICAgICAgIHJldHVy
biBjb252ZXJ0VG9MZW5ndGhPclBlcmNlbnRSYXcocGVyY2VudCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDAzNTAzZjI1MGY4MzBmMGFhZjViYWJkZWU4OGIyZTM3MDNkZDk2MGMu
LjRkZTRkNWU4YjlkOTdiMzU2OTk4MjI4M2FkNzNlYWYzN2QwNTkxYjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0wOS0xNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnQtbG9hZGlu
Zy9mb250ZmFjZXNldC1sb2FkLXZhci5odG1sIGNyYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcyNworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODI4MzQ0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGFscGhhIGNvbXBvbmVudCBpbiB0aGUgcGVyY2VudG51bWJlcmFscGhhIHRlc3Qg
aW4KKyAgICAgICAgY3NzMy9jYWxjL2NvbG9yLXJnYi5odG1sIG5vdyBwYXJzZXMgY29ycmVjdGx5
LgorCisgICAgICAgICogY3NzMy9jYWxjL2NvbG9yLXJnYi1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDktMTQgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1N0cmVhbWVyXSBFbmFibGUgSDI2NSBjb2RlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9jYWxjL2NvbG9yLXJnYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3Mz
L2NhbGMvY29sb3ItcmdiLWV4cGVjdGVkLnR4dAppbmRleCA0MzVjNTRhMGRhOTJhOWJjMTlhMzhl
MWUwMWUwYWM5OTM4NWQxMTgwLi5iYTE4MWE0YmFjY2IyNGFiYjg0ZTQxNDNlNThjYmZkM2EyNzY0
OWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY29sb3ItcmdiLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY29sb3ItcmdiLWV4cGVjdGVkLnR4dApA
QCAtOCw3ICs4LDcgQEAgUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwZXJjZW50c2ltcGxlIiksIG51bGwpLmNvbG9yIGlzICIKIEZBSUwgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVyY2VudG51bWJlciIpLCBudWxsKS5jb2xv
ciBzaG91bGQgYmUgcmdiKDI2LCAyNDAsIDgwKS4gV2FzIHJnYigwLCAwLCAwKS4KIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxwaGEiKSwgbnVsbCkuY29s
b3IgaXMgInJnYmEoMTAsIDE4MCwgMzAsIDAuNykiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBlcmNlbnRhbHBoYSIpLCBudWxsKS5jb2xvciBpcyAicmdi
YSgyNiwgMjQyLCA3NywgMC43KSIKLUZBSUwgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGVyY2VudG51bWJlcmFscGhhIiksIG51bGwpLmNvbG9yIHNob3VsZCBiZSBy
Z2JhKDI2LCAyNDAsIDgwLCAwLjUpLiBXYXMgcmdiKDAsIDAsIDApLgorRkFJTCBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJjZW50bnVtYmVyYWxwaGEiKSwgbnVs
bCkuY29sb3Igc2hvdWxkIGJlIHJnYmEoMjYsIDI0MCwgODAsIDAuNSkuIFdhcyByZ2JhKDAsIDAs
IDAsIDAuNSkuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438334</attachid>
            <date>2021-09-16 04:18:59 -0700</date>
            <delta_ts>2021-09-16 07:08:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229727-20210916121858.patch</filename>
            <type>text/plain</type>
            <size>11517</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uYmZlNGQzN2JlZThjODg3Y2NiZGUyN2NmMDYyYzA2
NTQzYmNmMzIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTE0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2ZvbnRmYWNlc2V0LWxvYWQtdmFyLmh0
bWwgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjgzNDQ3MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCB1c2UgQ2FsY1BhcnNl
ciBpbiByYXcgQ1NTIHBhcnNpbmcgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgYWNjZXB0CisgICAgICAg
IGEgQ1NTVmFsdWVQb29sIHBhcmFtZXRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OmNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSW50ZWdlclR5cGVS
YXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVQZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9r
ZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVMZW5ndGhPclBlcmNl
bnRSYXcpOgorCiAyMDIxLTA5LTE0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlciBzaG91bGQgbm90
IG9wZXJhdGUgb24gdGhlIGdsb2JhbCBpbmxpbmUgcnVuIGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCBk
M2I5NzQ4MDE0MDg3YTc0OWU1NjQ0YmE0OTA5YzVmMDM1ZmU4ZWYxLi42NTVmYzUxMjBkMDNlMjNm
Mjk3NjVkMWIzMWViZTVlNTg2NjE1MmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC0yMzUsMTUgKzIzNSwz
MSBAQCBwcml2YXRlOgogCiAvLyBNQVJLOiAtIFByaW1pdGl2ZSB2YWx1ZSBjb25zdW1lcnMgZm9y
IGNhbGxlcnMgdGhhdCBrbm93IHRoZSB0b2tlbiB0eXBlLgogCi0vLyBNQVJLOiBJbnRlZ2VyIChS
YXcpCi0KLXRlbXBsYXRlPHR5cGVuYW1lIEludFR5cGU+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPElu
dFR5cGU+IGNvbnN1bWVJbnRlZ2VyVHlwZVJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBkb3VibGUgbWluaW11bVZhbHVlKQorc3RhdGljIFJl
ZlB0cjxDU1NDYWxjVmFsdWU+IGNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rp
b24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdv
cnksIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUgPSB7IH0sIFZhbHVlUmFu
Z2UgdmFsdWVSYW5nZSA9IFZhbHVlUmFuZ2U6OkFsbCkKIHsKICAgICBBU1NFUlQocmFuZ2UucGVl
aygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKIAotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJh
bmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIpOwotICAgIGlmIChhdXRvIGNhbGN1bGF0
aW9uID0gcGFyc2VyLnZhbHVlKCk7IGNhbGN1bGF0aW9uICYmIGNhbGN1bGF0aW9uLT5jYXRlZ29y
eSgpID09IENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlcikKLSAgICAgICAgcmV0dXJuIHBhcnNl
ci5jb25zdW1lSW50ZWdlclR5cGVSYXc8SW50VHlwZT4obWluaW11bVZhbHVlKTsKKyAgICBjb25z
dCBDU1NQYXJzZXJUb2tlbiYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisgICAgYXV0byBmdW5jdGlv
bklkID0gdG9rZW4uZnVuY3Rpb25JZCgpOworICAgIGlmICghQ1NTQ2FsY1ZhbHVlOjppc0NhbGNG
dW5jdGlvbihmdW5jdGlvbklkKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBhdXRv
IGNhbGNWYWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5j
dGlvbihyYW5nZSksIGNhdGVnb3J5LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7CisgICAgaWYg
KGNhbGNWYWx1ZSAmJiBjYWxjVmFsdWUtPmNhdGVnb3J5KCkgPT0gY2F0ZWdvcnkpCisgICAgICAg
IHJldHVybiBjYWxjVmFsdWU7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworLy8gTUFSSzog
SW50ZWdlciAoUmF3KQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRUeXBlPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxJbnRUeXBlPiBjb25zdW1lSW50ZWdlclR5cGVSYXdXaXRoS25vd25Ub2tlblR5cGVG
dW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiBzb3VyY2VSYW5nZSwgZG91YmxlIG1pbmltdW1W
YWx1ZSkKK3sKKyAgICBhdXRvIHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFs
dWUgPSBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxj
dWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHsgfSwgVmFsdWVSYW5nZTo6QWxsKSkgeworICAgICAg
ICBzb3VyY2VSYW5nZSA9IHJhbmdlOworICAgICAgICByZXR1cm4gY2xhbXBUbzxJbnRUeXBlPihz
dGQ6OnJvdW5kKHN0ZDo6bWF4KHZhbHVlLT5kb3VibGVWYWx1ZSgpLCBtaW5pbXVtVmFsdWUpKSk7
CisgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KQEAgLTI4NiwxMiArMzAyLDE3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsaWRhdGVkTnVtYmVyUmF3KGRvdWJs
ZSB2YWx1ZSwgVmFsdWVSYW5nZSB2YWx1ZVJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1zdGF0
aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5
cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJv
bFRhYmxlJiBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlKQorc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rp
b24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xU
YWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKIHsKLSAgICBBU1NFUlQo
cmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKKyAgICBhdXRvIHJhbmdlID0g
c291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93
blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHN5
bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAgICBpZiAoYXV0byB2YWxpZGF0ZWRWYWx1
ZSA9IHZhbGlkYXRlZE51bWJlclJhdyh2YWx1ZS0+ZG91YmxlVmFsdWUoKSwgdmFsdWVSYW5nZSkp
IHsKKyAgICAgICAgICAgIHNvdXJjZVJhbmdlID0gcmFuZ2U7CisgICAgICAgICAgICByZXR1cm4g
dmFsaWRhdGVkVmFsdWU7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBDYWxjUGFyc2VyIHBhcnNl
cihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCB2YWx1ZVJhbmdlLCBzeW1ib2xU
YWJsZSk7Ci0gICAgcmV0dXJuIHBhcnNlci5jb25zdW1lTnVtYmVyUmF3KCk7CisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1l
TnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlTnVtYmVyKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UpCkBA
IC0zNjEsMTIgKzM4MiwyNiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IHZhbGlkYXRl
ZFBlcmNlbnRSYXcoZG91YmxlIHZhbHVlLCBWYWx1ZVJhbmdlIHZhbHVlUgogICAgIHJldHVybiB2
YWx1ZTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudFJh
d1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBj
b25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlIHZhbHVlUmFu
Z2UpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVQZXJjZW50UmF3V2l0aEtu
b3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFuZ2UsIGNv
bnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5n
ZSwgYm9vbCBwYXJzZVBlcmNlbnROdW1iZXIgPSB0cnVlKQogewotICAgIEFTU0VSVChyYW5nZS5w
ZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pOworICAgIEFTU0VSVChzb3VyY2VSYW5nZS5w
ZWVrKCkudHlwZSgpID09IEZ1bmN0aW9uVG9rZW4pOworCisgICAgY29uc3QgQ1NTUGFyc2VyVG9r
ZW4mIHRva2VuID0gc291cmNlUmFuZ2UucGVlaygpOworICAgIGF1dG8gZnVuY3Rpb25JZCA9IHRv
a2VuLmZ1bmN0aW9uSWQoKTsKKyAgICBpZiAoIUNTU0NhbGNWYWx1ZTo6aXNDYWxjRnVuY3Rpb24o
ZnVuY3Rpb25JZCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHJh
bmdlID0gc291cmNlUmFuZ2U7CisgICAgYXV0byBjYWxjVmFsdWUgPSBDU1NDYWxjVmFsdWU6OmNy
ZWF0ZShmdW5jdGlvbklkLCBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpLCBDYWxjdWxhdGlvbkNhdGVn
b3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7CisgICAgaWYgKCFjYWxjVmFs
dWUpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgaWYgKChjYWxjVmFsdWUtPmNh
dGVnb3J5KCkgIT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkKKyAgICAgICAgJiYgKGNh
bGNWYWx1ZS0+Y2F0ZWdvcnkoKSAhPSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50TGVuZ3Ro
KQorICAgICAgICAmJiAoIXBhcnNlUGVyY2VudE51bWJlciB8fCAoY2FsY1ZhbHVlLT5jYXRlZ29y
eSgpICE9IENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnROdW1iZXIpKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJhbmdlLCBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7Ci0gICAgcmV0
dXJuIHBhcnNlci5jb25zdW1lUGVyY2VudFJhdygpOworICAgIHNvdXJjZVJhbmdlID0gcmFuZ2U7
CisgICAgcmV0dXJuIGNhbGNWYWx1ZS0+ZG91YmxlVmFsdWUoKTsKIH0KIAogc3RhdGljIHN0ZDo6
b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudFJhd1dpdGhLbm93blRva2VuVHlwZVBlcmNl
bnRhZ2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJs
ZSYsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKQEAgLTQzMywxMiArNDY4LDE0IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsaWRhdGVkTGVuZ3RoUmF3KGRvdWJsZSB2YWx1ZSwgVmFs
dWVSYW5nZSB2YWx1ZVJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1zdGF0aWMgc3RkOjpvcHRp
b25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBz
eW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVz
c1F1aXJrKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3
V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFu
Z2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFs
dWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykKIHsKLSAgICBBU1NFUlQocmFu
Z2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKLQotICAgIENhbGNQYXJzZXIgcGFy
c2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGgsIHZhbHVlUmFuZ2UsIHN5bWJv
bFRhYmxlKTsKLSAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVMZW5ndGhSYXcoKTsKKyAgICBhdXRv
IHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBjb25zdW1lQ2FsY1Jh
d1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpM
ZW5ndGgsIHN5bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAgICBzb3VyY2VSYW5nZSA9
IHJhbmdlOworICAgICAgICByZXR1cm4geyB7IHZhbHVlLT5wcmltaXRpdmVUeXBlKCksIHZhbHVl
LT5kb3VibGVWYWx1ZSgpIH0gfTsKKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3V2l0aEtu
b3duVG9rZW5UeXBlRGltZW5zaW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBD
U1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UsIENTU1BhcnNlck1vZGUg
cGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykKQEAgLTUyOCwxMiArNTY1LDE0IEBAIHN0YXRpYyBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVMZW5ndGhDU1NQcmltaXRpdmVWYWx1ZVdp
dGhDYWxjV2l0aEtub3duCiAKIC8vIE1BUks6IEFuZ2xlIChyYXcpCiAKLXN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBz
eW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVz
c1F1aXJrLCBVbml0bGVzc1plcm9RdWlyaykKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPEFuZ2xlUmF3
PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tl
blJhbmdlJiBzb3VyY2VSYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJs
ZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBVbml0bGVzc1F1aXJrLCBV
bml0bGVzc1plcm9RdWlyaykKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBG
dW5jdGlvblRva2VuKTsKLQotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlv
bkNhdGVnb3J5OjpBbmdsZSwgdmFsdWVSYW5nZSwgc3ltYm9sVGFibGUpOwotICAgIHJldHVybiBw
YXJzZXIuY29uc3VtZUFuZ2xlUmF3KCk7CisgICAgYXV0byByYW5nZSA9IHNvdXJjZVJhbmdlOwor
ICAgIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUNhbGNSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5j
dGlvbihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIHN5bWJvbFRhYmxlLCB2YWx1
ZVJhbmdlKSkgeworICAgICAgICBzb3VyY2VSYW5nZSA9IHJhbmdlOworICAgICAgICByZXR1cm4g
eyB7IHZhbHVlLT5wcmltaXRpdmVUeXBlKCksIHZhbHVlLT5kb3VibGVWYWx1ZSgpIH0gfTsKKyAg
ICB9CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8
QW5nbGVSYXc+IGNvbnN1bWVBbmdsZVJhd1dpdGhLbm93blRva2VuVHlwZURpbWVuc2lvbihDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiwgVmFsdWVS
YW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaywgVW5pdGxlc3NaZXJvUXVpcmspCkBA
IC05NDYsOSArOTg1LDEwIEBAIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoT3JQZXJjZW50UmF3PiBjb25z
dW1lTGVuZ3RoT3JQZXJjZW50UmF3KENTU1BhcnNlclRva2VuUmFuZ2UmCiAgICAgc3dpdGNoICh0
b2tlbi50eXBlKCkpIHsKICAgICBjYXNlIEZ1bmN0aW9uVG9rZW46IHsKICAgICAgICAgLy8gRklY
TUU6IFNob3VsZCB0aGlzIGJlIHVzaW5nIHRyeWluZyB0byBnZW5lcmF0ZSB0aGUgY2FsYyB3aXRo
IGJvdGggTGVuZ3RoIGFuZCBQZXJjZW50IGRlc3RpbmF0aW9uIGNhdGVnb3J5IHR5cGVzPwotICAg
ICAgICBDYWxjUGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3Ro
LCB2YWx1ZVJhbmdlKTsKLSAgICAgICAgaWYgKGF1dG8gY2FsY3VsYXRpb24gPSBwYXJzZXIudmFs
dWUoKTsgY2FsY3VsYXRpb24gJiYgY2FuQ29uc3VtZUNhbGNWYWx1ZShjYWxjdWxhdGlvbi0+Y2F0
ZWdvcnkoKSwgcGFyc2VyTW9kZSkpCi0gICAgICAgICAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVM
ZW5ndGhPclBlcmNlbnRSYXcoKTsKKyAgICAgICAgaWYgKGF1dG8gbGVuZ3RoID0gY29uc3VtZUxl
bmd0aFJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCB7IH0sIHZhbHVlUmFuZ2Us
IHBhcnNlck1vZGUsIHVuaXRsZXNzKSkKKyAgICAgICAgICAgIHJldHVybiBjb252ZXJ0VG9MZW5n
dGhPclBlcmNlbnRSYXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1dG8gcGVyY2VudCA9IGNvbnN1
bWVQZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24ocmFuZ2UsIHsgfSwgdmFsdWVS
YW5nZSwgcGFyc2VyTW9kZSA9PSBTVkdBdHRyaWJ1dGVNb2RlKSkKKyAgICAgICAgICAgIHJldHVy
biBjb252ZXJ0VG9MZW5ndGhPclBlcmNlbnRSYXcocGVyY2VudCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDAzNTAzZjI1MGY4MzBmMGFhZjViYWJkZWU4OGIyZTM3MDNkZDk2MGMu
LjRkZTRkNWU4YjlkOTdiMzU2OTk4MjI4M2FkNzNlYWYzN2QwNTkxYjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAyMS0wOS0xNiAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZvbnQtbG9hZGlu
Zy9mb250ZmFjZXNldC1sb2FkLXZhci5odG1sIGNyYXNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTcyNworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODI4MzQ0NzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGFscGhhIGNvbXBvbmVudCBpbiB0aGUgcGVyY2VudG51bWJlcmFscGhhIHRlc3Qg
aW4KKyAgICAgICAgY3NzMy9jYWxjL2NvbG9yLXJnYi5odG1sIG5vdyBwYXJzZXMgY29ycmVjdGx5
LgorCisgICAgICAgICogY3NzMy9jYWxjL2NvbG9yLXJnYi1leHBlY3RlZC50eHQ6CisKIDIwMjEt
MDktMTQgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1N0cmVhbWVyXSBFbmFibGUgSDI2NSBjb2RlYwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9jYWxjL2NvbG9yLXJnYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3Mz
L2NhbGMvY29sb3ItcmdiLWV4cGVjdGVkLnR4dAppbmRleCA0MzVjNTRhMGRhOTJhOWJjMTlhMzhl
MWUwMWUwYWM5OTM4NWQxMTgwLi5iYTE4MWE0YmFjY2IyNGFiYjg0ZTQxNDNlNThjYmZkM2EyNzY0
OWIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY29sb3ItcmdiLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvY29sb3ItcmdiLWV4cGVjdGVkLnR4dApA
QCAtOCw3ICs4LDcgQEAgUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJwZXJjZW50c2ltcGxlIiksIG51bGwpLmNvbG9yIGlzICIKIEZBSUwgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVyY2VudG51bWJlciIpLCBudWxsKS5jb2xv
ciBzaG91bGQgYmUgcmdiKDI2LCAyNDAsIDgwKS4gV2FzIHJnYigwLCAwLCAwKS4KIFBBU1MgZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWxwaGEiKSwgbnVsbCkuY29s
b3IgaXMgInJnYmEoMTAsIDE4MCwgMzAsIDAuNykiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBlcmNlbnRhbHBoYSIpLCBudWxsKS5jb2xvciBpcyAicmdi
YSgyNiwgMjQyLCA3NywgMC43KSIKLUZBSUwgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicGVyY2VudG51bWJlcmFscGhhIiksIG51bGwpLmNvbG9yIHNob3VsZCBiZSBy
Z2JhKDI2LCAyNDAsIDgwLCAwLjUpLiBXYXMgcmdiKDAsIDAsIDApLgorRkFJTCBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJjZW50bnVtYmVyYWxwaGEiKSwgbnVs
bCkuY29sb3Igc2hvdWxkIGJlIHJnYmEoMjYsIDI0MCwgODAsIDAuNSkuIFdhcyByZ2JhKDAsIDAs
IDAsIDAuNSkuCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExF
VEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438346</attachid>
            <date>2021-09-16 07:08:18 -0700</date>
            <delta_ts>2021-09-21 01:42:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229727-20210916150817.patch</filename>
            <type>text/plain</type>
            <size>10311</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uYmZlNGQzN2JlZThjODg3Y2NiZGUyN2NmMDYyYzA2
NTQzYmNmMzIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTE0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2ZvbnRmYWNlc2V0LWxvYWQtdmFyLmh0
bWwgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjgzNDQ3MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCB1c2UgQ2FsY1BhcnNl
ciBpbiByYXcgQ1NTIHBhcnNpbmcgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgYWNjZXB0CisgICAgICAg
IGEgQ1NTVmFsdWVQb29sIHBhcmFtZXRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVy
ZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnM6OmNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSW50ZWdlclR5cGVS
YXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5j
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1
bWVQZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9r
ZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxw
ZXJzOjpjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVMZW5ndGhPclBlcmNl
bnRSYXcpOgorCiAyMDIxLTA5LTE0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbTEZDXVtJRkNdIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlciBzaG91bGQgbm90
IG9wZXJhdGUgb24gdGhlIGdsb2JhbCBpbmxpbmUgcnVuIGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCBk
M2I5NzQ4MDE0MDg3YTc0OWU1NjQ0YmE0OTA5YzVmMDM1ZmU4ZWYxLi5hZWM2MDkyMGYwNzEwOWRj
MzNiMWZiNWIyZmQ1ZWQ4NDhiOTgzMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC0yMDcsMjUgKzIwNyw2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgeyBtX2NhbGNWYWx1ZS0+cHJpbWl0aXZlVHlw
ZSgpLCBtX2NhbGNWYWx1ZS0+ZG91YmxlVmFsdWUoKSB9IH07CiAgICAgfQogCi0gICAgc3RkOjpv
cHRpb25hbDxMZW5ndGhPclBlcmNlbnRSYXc+IGNvbnN1bWVMZW5ndGhPclBlcmNlbnRSYXcoKQot
ICAgIHsKLSAgICAgICAgaWYgKCFtX2NhbGNWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0KLSAgICAgICAgc3dpdGNoIChtX2NhbGNWYWx1ZS0+Y2F0ZWdvcnkoKSkgewot
ICAgICAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Okxlbmd0aDoKLSAgICAgICAgICAgIG1f
c291cmNlUmFuZ2UgPSBtX3JhbmdlOwotICAgICAgICAgICAgcmV0dXJuIHsgTGVuZ3RoUmF3KHsg
bV9jYWxjVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSwgbV9jYWxjVmFsdWUtPmRvdWJsZVZhbHVlKCkg
fSkgfTsKLSAgICAgICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OgotICAgICAg
ICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnRMZW5ndGg6Ci0gICAgICAgIGNhc2Ug
Q2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudE51bWJlcjoKLSAgICAgICAgICAgIG1fc291cmNl
UmFuZ2UgPSBtX3JhbmdlOwotICAgICAgICAgICAgcmV0dXJuIHsgeyBtX2NhbGNWYWx1ZS0+ZG91
YmxlVmFsdWUoKSB9IH07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotICAgICAgICB9Ci0gICAgfQotCiBwcml2YXRlOgogICAgIENTU1BhcnNlclRv
a2VuUmFuZ2UmIG1fc291cmNlUmFuZ2U7CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBtX3Jhbmdl
OwpAQCAtMjM1LDE1ICsyMTYsMzEgQEAgcHJpdmF0ZToKIAogLy8gTUFSSzogLSBQcmltaXRpdmUg
dmFsdWUgY29uc3VtZXJzIGZvciBjYWxsZXJzIHRoYXQga25vdyB0aGUgdG9rZW4gdHlwZS4KIAot
Ly8gTUFSSzogSW50ZWdlciAoUmF3KQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBJbnRUeXBlPiBzdGF0
aWMgc3RkOjpvcHRpb25hbDxJbnRUeXBlPiBjb25zdW1lSW50ZWdlclR5cGVSYXdXaXRoS25vd25U
b2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgZG91YmxlIG1pbmlt
dW1WYWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjb25zdW1lQ2FsY1Jhd1dpdGhL
bm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDYWxjdWxh
dGlvbkNhdGVnb3J5IGNhdGVnb3J5LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRh
YmxlID0geyB9LCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwpCiB7CiAg
ICAgQVNTRVJUKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbik7CiAKLSAgICBD
YWxjUGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKTsKLSAg
ICBpZiAoYXV0byBjYWxjdWxhdGlvbiA9IHBhcnNlci52YWx1ZSgpOyBjYWxjdWxhdGlvbiAmJiBj
YWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIpCi0g
ICAgICAgIHJldHVybiBwYXJzZXIuY29uc3VtZUludGVnZXJUeXBlUmF3PEludFR5cGU+KG1pbmlt
dW1WYWx1ZSk7CisgICAgY29uc3QgQ1NTUGFyc2VyVG9rZW4mIHRva2VuID0gcmFuZ2UucGVlaygp
OworICAgIGF1dG8gZnVuY3Rpb25JZCA9IHRva2VuLmZ1bmN0aW9uSWQoKTsKKyAgICBpZiAoIUNT
U0NhbGNWYWx1ZTo6aXNDYWxjRnVuY3Rpb24oZnVuY3Rpb25JZCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgYXV0byBjYWxjVmFsdWUgPSBDU1NDYWxjVmFsdWU6OmNyZWF0ZShmdW5j
dGlvbklkLCBjb25zdW1lRnVuY3Rpb24ocmFuZ2UpLCBjYXRlZ29yeSwgdmFsdWVSYW5nZSwgc3lt
Ym9sVGFibGUpOworICAgIGlmIChjYWxjVmFsdWUgJiYgY2FsY1ZhbHVlLT5jYXRlZ29yeSgpID09
IGNhdGVnb3J5KQorICAgICAgICByZXR1cm4gY2FsY1ZhbHVlOworCisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKKy8vIE1BUks6IEludGVnZXIgKFJhdykKKwordGVtcGxhdGU8dHlwZW5hbWUgSW50
VHlwZT4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8SW50VHlwZT4gY29uc3VtZUludGVnZXJUeXBlUmF3
V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFu
Z2UsIGRvdWJsZSBtaW5pbXVtVmFsdWUpCit7CisgICAgYXV0byByYW5nZSA9IHNvdXJjZVJhbmdl
OworICAgIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUNhbGNSYXdXaXRoS25vd25Ub2tlblR5cGVG
dW5jdGlvbihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCB7IH0sIFZhbHVlUmFu
Z2U6OkFsbCkpIHsKKyAgICAgICAgc291cmNlUmFuZ2UgPSByYW5nZTsKKyAgICAgICAgcmV0dXJu
IGNsYW1wVG88SW50VHlwZT4oc3RkOjpyb3VuZChzdGQ6Om1heCh2YWx1ZS0+ZG91YmxlVmFsdWUo
KSwgbWluaW11bVZhbHVlKSkpOworICAgIH0KIAogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9
CkBAIC0yODYsMTIgKzI4MywxNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IHZhbGlk
YXRlZE51bWJlclJhdyhkb3VibGUgdmFsdWUsIFZhbHVlUmFuZ2UgdmFsdWVSYQogICAgIHJldHVy
biB2YWx1ZTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVtYmVy
UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2Us
IGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVS
YW5nZSkKK3N0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY29uc3VtZU51bWJlclJhd1dpdGhL
bm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHNvdXJjZVJhbmdlLCBj
b25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlIHZhbHVlUmFu
Z2UpCiB7Ci0gICAgQVNTRVJUKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbik7
CisgICAgYXV0byByYW5nZSA9IHNvdXJjZVJhbmdlOworICAgIGlmIChhdXRvIHZhbHVlID0gY29u
c3VtZUNhbGNSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbihyYW5nZSwgQ2FsY3VsYXRpb25D
YXRlZ29yeTo6TnVtYmVyLCBzeW1ib2xUYWJsZSwgdmFsdWVSYW5nZSkpIHsKKyAgICAgICAgaWYg
KGF1dG8gdmFsaWRhdGVkVmFsdWUgPSB2YWxpZGF0ZWROdW1iZXJSYXcodmFsdWUtPmRvdWJsZVZh
bHVlKCksIHZhbHVlUmFuZ2UpKSB7CisgICAgICAgICAgICBzb3VyY2VSYW5nZSA9IHJhbmdlOwor
ICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRlZFZhbHVlOworICAgICAgICB9CisgICAgfQogCi0g
ICAgQ2FsY1BhcnNlciBwYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Ok51bWJlciwg
dmFsdWVSYW5nZSwgc3ltYm9sVGFibGUpOwotICAgIHJldHVybiBwYXJzZXIuY29uc3VtZU51bWJl
clJhdygpOworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gY29uc3VtZU51bWJlclJhd1dpdGhLbm93blRva2VuVHlwZU51bWJlcihDU1NQ
YXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiwgVmFsdWVS
YW5nZSB2YWx1ZVJhbmdlKQpAQCAtMzYxLDEyICszNjMsMjMgQEAgc3RhdGljIHN0ZDo6b3B0aW9u
YWw8ZG91YmxlPiB2YWxpZGF0ZWRQZXJjZW50UmF3KGRvdWJsZSB2YWx1ZSwgVmFsdWVSYW5nZSB2
YWx1ZVIKICAgICByZXR1cm4gdmFsdWU7CiB9CiAKLXN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJs
ZT4gY29uc3VtZVBlcmNlbnRSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSwg
VmFsdWVSYW5nZSB2YWx1ZVJhbmdlKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25z
dW1lUGVyY2VudFJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFu
Z2UmIHNvdXJjZVJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlLCBW
YWx1ZVJhbmdlIHZhbHVlUmFuZ2UpCiB7Ci0gICAgQVNTRVJUKHJhbmdlLnBlZWsoKS50eXBlKCkg
PT0gRnVuY3Rpb25Ub2tlbik7CisgICAgQVNTRVJUKHNvdXJjZVJhbmdlLnBlZWsoKS50eXBlKCkg
PT0gRnVuY3Rpb25Ub2tlbik7CiAKLSAgICBDYWxjUGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3Vs
YXRpb25DYXRlZ29yeTo6UGVyY2VudCwgdmFsdWVSYW5nZSwgc3ltYm9sVGFibGUpOwotICAgIHJl
dHVybiBwYXJzZXIuY29uc3VtZVBlcmNlbnRSYXcoKTsKKyAgICBjb25zdCBDU1NQYXJzZXJUb2tl
biYgdG9rZW4gPSBzb3VyY2VSYW5nZS5wZWVrKCk7CisgICAgYXV0byBmdW5jdGlvbklkID0gdG9r
ZW4uZnVuY3Rpb25JZCgpOworICAgIGlmICghQ1NTQ2FsY1ZhbHVlOjppc0NhbGNGdW5jdGlvbihm
dW5jdGlvbklkKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gcmFu
Z2UgPSBzb3VyY2VSYW5nZTsKKyAgICBhdXRvIGNhbGNWYWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3Jl
YXRlKGZ1bmN0aW9uSWQsIGNvbnN1bWVGdW5jdGlvbihyYW5nZSksIENhbGN1bGF0aW9uQ2F0ZWdv
cnk6OlBlcmNlbnQsIHZhbHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKKyAgICBpZiAoY2FsY1ZhbHVl
ICYmIGNhbGNWYWx1ZS0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50
KSB7CisgICAgICAgIHNvdXJjZVJhbmdlID0gcmFuZ2U7CisgICAgICAgIHJldHVybiBjYWxjVmFs
dWUtPmRvdWJsZVZhbHVlKCk7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVyY2VudFJhd1dpdGhLbm93
blRva2VuVHlwZVBlcmNlbnRhZ2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENT
U0NhbGNTeW1ib2xUYWJsZSYsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKQEAgLTQzMywxMiArNDQ2
LDE0IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsaWRhdGVkTGVuZ3RoUmF3KGRv
dWJsZSB2YWx1ZSwgVmFsdWVSYW5nZSB2YWx1ZVJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQogCi1z
dGF0aWMgc3RkOjpvcHRpb25hbDxMZW5ndGhSYXc+IGNvbnN1bWVMZW5ndGhSYXdXaXRoS25vd25U
b2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJz
ZXJNb2RlLCBVbml0bGVzc1F1aXJrKQorc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBj
b25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgc291cmNlUmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUs
IFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykKIHsK
LSAgICBBU1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKLQotICAg
IENhbGNQYXJzZXIgcGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpMZW5ndGgsIHZh
bHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKLSAgICByZXR1cm4gcGFyc2VyLmNvbnN1bWVMZW5ndGhS
YXcoKTsKKyAgICBhdXRvIHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFsdWUg
PSBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxjdWxh
dGlvbkNhdGVnb3J5OjpMZW5ndGgsIHN5bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAg
ICBzb3VyY2VSYW5nZSA9IHJhbmdlOworICAgICAgICByZXR1cm4geyB7IHZhbHVlLT5wcmltaXRp
dmVUeXBlKCksIHZhbHVlLT5kb3VibGVWYWx1ZSgpIH0gfTsKKyAgICB9CisgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoUmF3PiBjb25zdW1l
TGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRGltZW5zaW9uKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2Us
IENTU1BhcnNlck1vZGUgcGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykKQEAgLTUyOCwxMiArNTQz
LDE0IEBAIHN0YXRpYyBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVMZW5ndGhDU1NQ
cmltaXRpdmVWYWx1ZVdpdGhDYWxjV2l0aEtub3duCiAKIC8vIE1BUks6IEFuZ2xlIChyYXcpCiAK
LXN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25U
b2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJz
ZXJNb2RlLCBVbml0bGVzc1F1aXJrLCBVbml0bGVzc1plcm9RdWlyaykKK3N0YXRpYyBzdGQ6Om9w
dGlvbmFsPEFuZ2xlUmF3PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlv
bihDU1NQYXJzZXJUb2tlblJhbmdlJiBzb3VyY2VSYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJvbFRh
YmxlJiBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlLCBV
bml0bGVzc1F1aXJrLCBVbml0bGVzc1plcm9RdWlyaykKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVl
aygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKLQotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJh
bmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpBbmdsZSwgdmFsdWVSYW5nZSwgc3ltYm9sVGFibGUp
OwotICAgIHJldHVybiBwYXJzZXIuY29uc3VtZUFuZ2xlUmF3KCk7CisgICAgYXV0byByYW5nZSA9
IHNvdXJjZVJhbmdlOworICAgIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUNhbGNSYXdXaXRoS25v
d25Ub2tlblR5cGVGdW5jdGlvbihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6QW5nbGUsIHN5
bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAgICBzb3VyY2VSYW5nZSA9IHJhbmdlOwor
ICAgICAgICByZXR1cm4geyB7IHZhbHVlLT5wcmltaXRpdmVUeXBlKCksIHZhbHVlLT5kb3VibGVW
YWx1ZSgpIH0gfTsKKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QW5nbGVSYXc+IGNvbnN1bWVBbmdsZVJhd1dpdGhLbm93blRva2VuVHlw
ZURpbWVuc2lvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5bWJv
bFRhYmxlJiwgVmFsdWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaywgVW5pdGxl
c3NaZXJvUXVpcmspCkBAIC05NDUsMTAgKzk2MiwxMCBAQCBzdGQ6Om9wdGlvbmFsPExlbmd0aE9y
UGVyY2VudFJhdz4gY29uc3VtZUxlbmd0aE9yUGVyY2VudFJhdyhDU1NQYXJzZXJUb2tlblJhbmdl
JgogCiAgICAgc3dpdGNoICh0b2tlbi50eXBlKCkpIHsKICAgICBjYXNlIEZ1bmN0aW9uVG9rZW46
IHsKLSAgICAgICAgLy8gRklYTUU6IFNob3VsZCB0aGlzIGJlIHVzaW5nIHRyeWluZyB0byBnZW5l
cmF0ZSB0aGUgY2FsYyB3aXRoIGJvdGggTGVuZ3RoIGFuZCBQZXJjZW50IGRlc3RpbmF0aW9uIGNh
dGVnb3J5IHR5cGVzPwotICAgICAgICBDYWxjUGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRp
b25DYXRlZ29yeTo6TGVuZ3RoLCB2YWx1ZVJhbmdlKTsKLSAgICAgICAgaWYgKGF1dG8gY2FsY3Vs
YXRpb24gPSBwYXJzZXIudmFsdWUoKTsgY2FsY3VsYXRpb24gJiYgY2FuQ29uc3VtZUNhbGNWYWx1
ZShjYWxjdWxhdGlvbi0+Y2F0ZWdvcnkoKSwgcGFyc2VyTW9kZSkpCi0gICAgICAgICAgICByZXR1
cm4gcGFyc2VyLmNvbnN1bWVMZW5ndGhPclBlcmNlbnRSYXcoKTsKKyAgICAgICAgaWYgKGF1dG8g
bGVuZ3RoID0gY29uc3VtZUxlbmd0aFJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdl
LCB7IH0sIHZhbHVlUmFuZ2UsIHBhcnNlck1vZGUsIHVuaXRsZXNzKSkKKyAgICAgICAgICAgIHJl
dHVybiBjb252ZXJ0VG9MZW5ndGhPclBlcmNlbnRSYXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKGF1
dG8gcGVyY2VudCA9IGNvbnN1bWVQZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24o
cmFuZ2UsIHsgfSwgdmFsdWVSYW5nZSkpCisgICAgICAgICAgICByZXR1cm4gY29udmVydFRvTGVu
Z3RoT3JQZXJjZW50UmF3KHBlcmNlbnQpOwogICAgICAgICBicmVhazsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438794</attachid>
            <date>2021-09-21 01:42:15 -0700</date>
            <delta_ts>2021-09-21 02:28:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229727-20210921094214.patch</filename>
            <type>text/plain</type>
            <size>10288</size>
            <attacher name="Chris Lord">clord</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyMzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRmZDA5MDMyNzFmMTQw
MWZkNThmOGY1ZjczMzYxMGM4NzllNGJkZi4uMmViNTdjODZmZTA1OTJkOWUwYjZhNGFhNjQ5NWQ3
YmEwMmUxYjVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTA5LTE0ICBDaHJp
cyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KKworICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZm9udC1sb2FkaW5nL2ZvbnRmYWNlc2V0LWxvYWQtdmFyLmh0
bWwgY3Jhc2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5NzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MjgzNDQ3MD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBEb24ndCB1c2UgQ2FsY1BhcnNlciBp
biByYXcgQ1NTIHBhcnNpbmcgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgYWNjZXB0CisgICAgICAgIGEg
Q1NTVmFsdWVQb29sIHBhcmFtZXRlci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFy
c2VySGVscGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnM6OmNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lSW50ZWdlclR5cGVSYXdX
aXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVQ
ZXJjZW50UmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5U
eXBlRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJz
Ojpjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVMZW5ndGhPclBlcmNlbnRS
YXcpOgorCiAyMDIxLTA5LTE0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTEZDXVtJRkNdIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlciBzaG91bGQgbm90IG9w
ZXJhdGUgb24gdGhlIGdsb2JhbCBpbmxpbmUgcnVuIGxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAppbmRleCBkM2I5
NzQ4MDE0MDg3YTc0OWU1NjQ0YmE0OTA5YzVmMDM1ZmU4ZWYxLi5hOThhMmY5MDI4ZDdiNmU1OGJl
MjJhMmNkOWM5ODVhYTE4ZGU2YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCkBAIC0yMDcsMjUgKzIwNyw2IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHsgeyBtX2NhbGNWYWx1ZS0+cHJpbWl0aXZlVHlwZSgp
LCBtX2NhbGNWYWx1ZS0+ZG91YmxlVmFsdWUoKSB9IH07CiAgICAgfQogCi0gICAgc3RkOjpvcHRp
b25hbDxMZW5ndGhPclBlcmNlbnRSYXc+IGNvbnN1bWVMZW5ndGhPclBlcmNlbnRSYXcoKQotICAg
IHsKLSAgICAgICAgaWYgKCFtX2NhbGNWYWx1ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICAgICAgc3dpdGNoIChtX2NhbGNWYWx1ZS0+Y2F0ZWdvcnkoKSkgewotICAg
ICAgICBjYXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Okxlbmd0aDoKLSAgICAgICAgICAgIG1fc291
cmNlUmFuZ2UgPSBtX3JhbmdlOwotICAgICAgICAgICAgcmV0dXJuIHsgTGVuZ3RoUmF3KHsgbV9j
YWxjVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSwgbV9jYWxjVmFsdWUtPmRvdWJsZVZhbHVlKCkgfSkg
fTsKLSAgICAgICAgY2FzZSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50OgotICAgICAgICBj
YXNlIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OlBlcmNlbnRMZW5ndGg6Ci0gICAgICAgIGNhc2UgQ2Fs
Y3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudE51bWJlcjoKLSAgICAgICAgICAgIG1fc291cmNlUmFu
Z2UgPSBtX3JhbmdlOwotICAgICAgICAgICAgcmV0dXJuIHsgeyBtX2NhbGNWYWx1ZS0+ZG91Ymxl
VmFsdWUoKSB9IH07Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgICAgICB9Ci0gICAgfQotCiBwcml2YXRlOgogICAgIENTU1BhcnNlclRva2Vu
UmFuZ2UmIG1fc291cmNlUmFuZ2U7CiAgICAgQ1NTUGFyc2VyVG9rZW5SYW5nZSBtX3JhbmdlOwpA
QCAtMjM1LDE1ICsyMTYsMzEgQEAgcHJpdmF0ZToKIAogLy8gTUFSSzogLSBQcmltaXRpdmUgdmFs
dWUgY29uc3VtZXJzIGZvciBjYWxsZXJzIHRoYXQga25vdyB0aGUgdG9rZW4gdHlwZS4KIAotLy8g
TUFSSzogSW50ZWdlciAoUmF3KQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBJbnRUeXBlPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxJbnRUeXBlPiBjb25zdW1lSW50ZWdlclR5cGVSYXdXaXRoS25vd25Ub2tl
blR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgZG91YmxlIG1pbmltdW1W
YWx1ZSkKK3N0YXRpYyBSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93
blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBDYWxjdWxhdGlv
bkNhdGVnb3J5IGNhdGVnb3J5LCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxl
ID0geyB9LCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2UgPSBWYWx1ZVJhbmdlOjpBbGwpCiB7CiAgICAg
QVNTRVJUKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbik7CiAKLSAgICBDYWxj
UGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyKTsKLSAgICBp
ZiAoYXV0byBjYWxjdWxhdGlvbiA9IHBhcnNlci52YWx1ZSgpOyBjYWxjdWxhdGlvbiAmJiBjYWxj
dWxhdGlvbi0+Y2F0ZWdvcnkoKSA9PSBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIpCi0gICAg
ICAgIHJldHVybiBwYXJzZXIuY29uc3VtZUludGVnZXJUeXBlUmF3PEludFR5cGU+KG1pbmltdW1W
YWx1ZSk7CisgICAgY29uc3QgYXV0byYgdG9rZW4gPSByYW5nZS5wZWVrKCk7CisgICAgYXV0byBm
dW5jdGlvbklkID0gdG9rZW4uZnVuY3Rpb25JZCgpOworICAgIGlmICghQ1NTQ2FsY1ZhbHVlOjpp
c0NhbGNGdW5jdGlvbihmdW5jdGlvbklkKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBhdXRvIGNhbGNWYWx1ZSA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKGZ1bmN0aW9uSWQsIGNvbnN1
bWVGdW5jdGlvbihyYW5nZSksIGNhdGVnb3J5LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7Cisg
ICAgaWYgKGNhbGNWYWx1ZSAmJiBjYWxjVmFsdWUtPmNhdGVnb3J5KCkgPT0gY2F0ZWdvcnkpCisg
ICAgICAgIHJldHVybiBjYWxjVmFsdWU7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworLy8g
TUFSSzogSW50ZWdlciAoUmF3KQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRUeXBlPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxJbnRUeXBlPiBjb25zdW1lSW50ZWdlclR5cGVSYXdXaXRoS25vd25Ub2tl
blR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiBzb3VyY2VSYW5nZSwgZG91YmxlIG1p
bmltdW1WYWx1ZSkKK3sKKyAgICBhdXRvIHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1
dG8gdmFsdWUgPSBjb25zdW1lQ2FsY1Jhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdl
LCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1iZXIsIHsgfSwgVmFsdWVSYW5nZTo6QWxsKSkgewor
ICAgICAgICBzb3VyY2VSYW5nZSA9IHJhbmdlOworICAgICAgICByZXR1cm4gY2xhbXBUbzxJbnRU
eXBlPihzdGQ6OnJvdW5kKHN0ZDo6bWF4KHZhbHVlLT5kb3VibGVWYWx1ZSgpLCBtaW5pbXVtVmFs
dWUpKSk7CisgICAgfQogCiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KQEAgLTI4NiwxMiAr
MjgzLDE3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gdmFsaWRhdGVkTnVtYmVyUmF3
KGRvdWJsZSB2YWx1ZSwgVmFsdWVSYW5nZSB2YWx1ZVJhCiAgICAgcmV0dXJuIHZhbHVlOwogfQog
Ci1zdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVOdW1iZXJSYXdXaXRoS25vd25U
b2tlblR5cGVGdW5jdGlvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2Fs
Y1N5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlKQorc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lTnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBl
RnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFuZ2UsIGNvbnN0IENTU0NhbGNT
eW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSkKIHsKLSAgICBB
U1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRva2VuKTsKKyAgICBhdXRvIHJh
bmdlID0gc291cmNlUmFuZ2U7CisgICAgaWYgKGF1dG8gdmFsdWUgPSBjb25zdW1lQ2FsY1Jhd1dp
dGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpOdW1i
ZXIsIHN5bWJvbFRhYmxlLCB2YWx1ZVJhbmdlKSkgeworICAgICAgICBpZiAoYXV0byB2YWxpZGF0
ZWRWYWx1ZSA9IHZhbGlkYXRlZE51bWJlclJhdyh2YWx1ZS0+ZG91YmxlVmFsdWUoKSwgdmFsdWVS
YW5nZSkpIHsKKyAgICAgICAgICAgIHNvdXJjZVJhbmdlID0gcmFuZ2U7CisgICAgICAgICAgICBy
ZXR1cm4gdmFsaWRhdGVkVmFsdWU7CisgICAgICAgIH0KKyAgICB9CiAKLSAgICBDYWxjUGFyc2Vy
IHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TnVtYmVyLCB2YWx1ZVJhbmdlLCBz
eW1ib2xUYWJsZSk7Ci0gICAgcmV0dXJuIHBhcnNlci5jb25zdW1lTnVtYmVyUmF3KCk7CisgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIAogc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBj
b25zdW1lTnVtYmVyUmF3V2l0aEtub3duVG9rZW5UeXBlTnVtYmVyKENTU1BhcnNlclRva2VuUmFu
Z2UmIHJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1ZVJhbmdlIHZhbHVlUmFu
Z2UpCkBAIC0zNjEsMTIgKzM2MywyMyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IHZh
bGlkYXRlZFBlcmNlbnRSYXcoZG91YmxlIHZhbHVlLCBWYWx1ZVJhbmdlIHZhbHVlUgogICAgIHJl
dHVybiB2YWx1ZTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBjb25zdW1lUGVy
Y2VudFJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHJh
bmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlIHZh
bHVlUmFuZ2UpCitzdGF0aWMgc3RkOjpvcHRpb25hbDxkb3VibGU+IGNvbnN1bWVQZXJjZW50UmF3
V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYgc291cmNlUmFu
Z2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVlUmFuZ2UgdmFs
dWVSYW5nZSkKIHsKLSAgICBBU1NFUlQocmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRv
a2VuKTsKKyAgICBBU1NFUlQoc291cmNlUmFuZ2UucGVlaygpLnR5cGUoKSA9PSBGdW5jdGlvblRv
a2VuKTsKIAotICAgIENhbGNQYXJzZXIgcGFyc2VyKHJhbmdlLCBDYWxjdWxhdGlvbkNhdGVnb3J5
OjpQZXJjZW50LCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7Ci0gICAgcmV0dXJuIHBhcnNlci5j
b25zdW1lUGVyY2VudFJhdygpOworICAgIGNvbnN0IGF1dG8mIHRva2VuID0gc291cmNlUmFuZ2Uu
cGVlaygpOworICAgIGF1dG8gZnVuY3Rpb25JZCA9IHRva2VuLmZ1bmN0aW9uSWQoKTsKKyAgICBp
ZiAoIUNTU0NhbGNWYWx1ZTo6aXNDYWxjRnVuY3Rpb24oZnVuY3Rpb25JZCkpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHJhbmdlID0gc291cmNlUmFuZ2U7CisgICAg
YXV0byBjYWxjVmFsdWUgPSBDU1NDYWxjVmFsdWU6OmNyZWF0ZShmdW5jdGlvbklkLCBjb25zdW1l
RnVuY3Rpb24ocmFuZ2UpLCBDYWxjdWxhdGlvbkNhdGVnb3J5OjpQZXJjZW50LCB2YWx1ZVJhbmdl
LCBzeW1ib2xUYWJsZSk7CisgICAgaWYgKGNhbGNWYWx1ZSAmJiBjYWxjVmFsdWUtPmNhdGVnb3J5
KCkgPT0gQ2FsY3VsYXRpb25DYXRlZ29yeTo6UGVyY2VudCkgeworICAgICAgICBzb3VyY2VSYW5n
ZSA9IHJhbmdlOworICAgICAgICByZXR1cm4gY2FsY1ZhbHVlLT5kb3VibGVWYWx1ZSgpOworICAg
IH0KKworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PGRvdWJsZT4gY29uc3VtZVBlcmNlbnRSYXdXaXRoS25vd25Ub2tlblR5cGVQZXJjZW50YWdlKENT
U1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NDYWxjU3ltYm9sVGFibGUmLCBWYWx1
ZVJhbmdlIHZhbHVlUmFuZ2UpCkBAIC00MzMsMTIgKzQ0NiwxNCBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxkb3VibGU+IHZhbGlkYXRlZExlbmd0aFJhdyhkb3VibGUgdmFsdWUsIFZhbHVlUmFuZ2Ug
dmFsdWVSYQogICAgIHJldHVybiB2YWx1ZTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8TGVu
Z3RoUmF3PiBjb25zdW1lTGVuZ3RoUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFi
bGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaykK
K3N0YXRpYyBzdGQ6Om9wdGlvbmFsPExlbmd0aFJhdz4gY29uc3VtZUxlbmd0aFJhd1dpdGhLbm93
blRva2VuVHlwZUZ1bmN0aW9uKENTU1BhcnNlclRva2VuUmFuZ2UmIHNvdXJjZVJhbmdlLCBjb25z
dCBDU1NDYWxjU3ltYm9sVGFibGUmIHN5bWJvbFRhYmxlLCBWYWx1ZVJhbmdlIHZhbHVlUmFuZ2Us
IENTU1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmspCiB7Ci0gICAgQVNTRVJUKHJhbmdlLnBlZWso
KS50eXBlKCkgPT0gRnVuY3Rpb25Ub2tlbik7Ci0KLSAgICBDYWxjUGFyc2VyIHBhcnNlcihyYW5n
ZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoLCB2YWx1ZVJhbmdlLCBzeW1ib2xUYWJsZSk7
Ci0gICAgcmV0dXJuIHBhcnNlci5jb25zdW1lTGVuZ3RoUmF3KCk7CisgICAgYXV0byByYW5nZSA9
IHNvdXJjZVJhbmdlOworICAgIGlmIChhdXRvIHZhbHVlID0gY29uc3VtZUNhbGNSYXdXaXRoS25v
d25Ub2tlblR5cGVGdW5jdGlvbihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29yeTo6TGVuZ3RoLCBz
eW1ib2xUYWJsZSwgdmFsdWVSYW5nZSkpIHsKKyAgICAgICAgc291cmNlUmFuZ2UgPSByYW5nZTsK
KyAgICAgICAgcmV0dXJuIHsgeyB2YWx1ZS0+cHJpbWl0aXZlVHlwZSgpLCB2YWx1ZS0+ZG91Ymxl
VmFsdWUoKSB9IH07CisgICAgfQorICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPExlbmd0aFJhdz4gY29uc3VtZUxlbmd0aFJhd1dpdGhLbm93blRva2Vu
VHlwZURpbWVuc2lvbihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTQ2FsY1N5
bWJvbFRhYmxlJiwgVmFsdWVSYW5nZSB2YWx1ZVJhbmdlLCBDU1NQYXJzZXJNb2RlIHBhcnNlck1v
ZGUsIFVuaXRsZXNzUXVpcmspCkBAIC01MjgsMTIgKzU0MywxNCBAQCBzdGF0aWMgUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBjb25zdW1lTGVuZ3RoQ1NTUHJpbWl0aXZlVmFsdWVXaXRoQ2FsY1dp
dGhLbm93bgogCiAvLyBNQVJLOiBBbmdsZSAocmF3KQogCi1zdGF0aWMgc3RkOjpvcHRpb25hbDxB
bmdsZVJhdz4gY29uc3VtZUFuZ2xlUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFy
c2VyVG9rZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFi
bGUsIFZhbHVlUmFuZ2UgdmFsdWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaywg
VW5pdGxlc3NaZXJvUXVpcmspCitzdGF0aWMgc3RkOjpvcHRpb25hbDxBbmdsZVJhdz4gY29uc3Vt
ZUFuZ2xlUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24oQ1NTUGFyc2VyVG9rZW5SYW5nZSYg
c291cmNlUmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUsIFZhbHVl
UmFuZ2UgdmFsdWVSYW5nZSwgQ1NTUGFyc2VyTW9kZSwgVW5pdGxlc3NRdWlyaywgVW5pdGxlc3Na
ZXJvUXVpcmspCiB7Ci0gICAgQVNTRVJUKHJhbmdlLnBlZWsoKS50eXBlKCkgPT0gRnVuY3Rpb25U
b2tlbik7Ci0KLSAgICBDYWxjUGFyc2VyIHBhcnNlcihyYW5nZSwgQ2FsY3VsYXRpb25DYXRlZ29y
eTo6QW5nbGUsIHZhbHVlUmFuZ2UsIHN5bWJvbFRhYmxlKTsKLSAgICByZXR1cm4gcGFyc2VyLmNv
bnN1bWVBbmdsZVJhdygpOworICAgIGF1dG8gcmFuZ2UgPSBzb3VyY2VSYW5nZTsKKyAgICBpZiAo
YXV0byB2YWx1ZSA9IGNvbnN1bWVDYWxjUmF3V2l0aEtub3duVG9rZW5UeXBlRnVuY3Rpb24ocmFu
Z2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6OkFuZ2xlLCBzeW1ib2xUYWJsZSwgdmFsdWVSYW5nZSkp
IHsKKyAgICAgICAgc291cmNlUmFuZ2UgPSByYW5nZTsKKyAgICAgICAgcmV0dXJuIHsgeyB2YWx1
ZS0+cHJpbWl0aXZlVHlwZSgpLCB2YWx1ZS0+ZG91YmxlVmFsdWUoKSB9IH07CisgICAgfQorICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEFuZ2xlUmF3
PiBjb25zdW1lQW5nbGVSYXdXaXRoS25vd25Ub2tlblR5cGVEaW1lbnNpb24oQ1NTUGFyc2VyVG9r
ZW5SYW5nZSYgcmFuZ2UsIGNvbnN0IENTU0NhbGNTeW1ib2xUYWJsZSYsIFZhbHVlUmFuZ2UsIENT
U1BhcnNlck1vZGUsIFVuaXRsZXNzUXVpcmssIFVuaXRsZXNzWmVyb1F1aXJrKQpAQCAtOTQ1LDEw
ICs5NjIsMTAgQEAgc3RkOjpvcHRpb25hbDxMZW5ndGhPclBlcmNlbnRSYXc+IGNvbnN1bWVMZW5n
dGhPclBlcmNlbnRSYXcoQ1NTUGFyc2VyVG9rZW5SYW5nZSYKIAogICAgIHN3aXRjaCAodG9rZW4u
dHlwZSgpKSB7CiAgICAgY2FzZSBGdW5jdGlvblRva2VuOiB7Ci0gICAgICAgIC8vIEZJWE1FOiBT
aG91bGQgdGhpcyBiZSB1c2luZyB0cnlpbmcgdG8gZ2VuZXJhdGUgdGhlIGNhbGMgd2l0aCBib3Ro
IExlbmd0aCBhbmQgUGVyY2VudCBkZXN0aW5hdGlvbiBjYXRlZ29yeSB0eXBlcz8KLSAgICAgICAg
Q2FsY1BhcnNlciBwYXJzZXIocmFuZ2UsIENhbGN1bGF0aW9uQ2F0ZWdvcnk6Okxlbmd0aCwgdmFs
dWVSYW5nZSk7Ci0gICAgICAgIGlmIChhdXRvIGNhbGN1bGF0aW9uID0gcGFyc2VyLnZhbHVlKCk7
IGNhbGN1bGF0aW9uICYmIGNhbkNvbnN1bWVDYWxjVmFsdWUoY2FsY3VsYXRpb24tPmNhdGVnb3J5
KCksIHBhcnNlck1vZGUpKQotICAgICAgICAgICAgcmV0dXJuIHBhcnNlci5jb25zdW1lTGVuZ3Ro
T3JQZXJjZW50UmF3KCk7CisgICAgICAgIGlmIChhdXRvIGxlbmd0aCA9IGNvbnN1bWVMZW5ndGhS
YXdXaXRoS25vd25Ub2tlblR5cGVGdW5jdGlvbihyYW5nZSwgeyB9LCB2YWx1ZVJhbmdlLCBwYXJz
ZXJNb2RlLCB1bml0bGVzcykpCisgICAgICAgICAgICByZXR1cm4gY29udmVydFRvTGVuZ3RoT3JQ
ZXJjZW50UmF3KGxlbmd0aCk7CisgICAgICAgIGlmIChhdXRvIHBlcmNlbnQgPSBjb25zdW1lUGVy
Y2VudFJhd1dpdGhLbm93blRva2VuVHlwZUZ1bmN0aW9uKHJhbmdlLCB7IH0sIHZhbHVlUmFuZ2Up
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRUb0xlbmd0aE9yUGVyY2VudFJhdyhwZXJjZW50
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>