<?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>229038</bug_id>
          
          <creation_ts>2021-08-12 08:17:32 -0700</creation_ts>
          <short_desc>Add for-in OwnStructureMode optimizations to LLInt</short_desc>
          <delta_ts>2021-08-25 11:00:03 -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>
          <dependson>229494</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1783824</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-12 08:17:32 -0700</bug_when>
    <thetext>Add for-in OwnStructureMode optimizations to LLInt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783826</commentid>
    <comment_count>1</comment_count>
      <attachid>435422</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-12 08:23:47 -0700</bug_when>
    <thetext>Created attachment 435422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783843</commentid>
    <comment_count>2</comment_count>
      <attachid>435425</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-12 08:55:07 -0700</bug_when>
    <thetext>Created attachment 435425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1783847</commentid>
    <comment_count>3</comment_count>
      <attachid>435427</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-12 09:08:43 -0700</bug_when>
    <thetext>Created attachment 435427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784008</commentid>
    <comment_count>4</comment_count>
      <attachid>435427</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-08-12 18:22:12 -0700</bug_when>
    <thetext>Comment on attachment 435427
Patch

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

drive by comment.

&gt; Source/JavaScriptCore/runtime/PropertyOffset.h:56
&gt;      UNUSED_PARAM(offset);
&gt;      ASSERT(offset &gt;= invalidOffset);

nit: Might as well make this:
    ASSERT_UNUSED(offset, offset &gt;= invalidOffset);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785442</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-19 08:18:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/82126099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786482</commentid>
    <comment_count>6</comment_count>
      <attachid>436213</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-23 11:20:04 -0700</bug_when>
    <thetext>Created attachment 436213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786493</commentid>
    <comment_count>7</comment_count>
      <attachid>436217</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-23 11:57:01 -0700</bug_when>
    <thetext>Created attachment 436217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786497</commentid>
    <comment_count>8</comment_count>
      <attachid>436219</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-23 12:08:30 -0700</bug_when>
    <thetext>Created attachment 436219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786507</commentid>
    <comment_count>9</comment_count>
      <attachid>435427</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-23 12:28:12 -0700</bug_when>
    <thetext>Comment on attachment 435427
Patch

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

&gt;&gt; Source/JavaScriptCore/runtime/PropertyOffset.h:56
&gt;&gt;      ASSERT(offset &gt;= invalidOffset);
&gt; 
&gt; nit: Might as well make this:
&gt;     ASSERT_UNUSED(offset, offset &gt;= invalidOffset);

I could but maybe not worth changing it unnecessarily for `git blame`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786563</commentid>
    <comment_count>10</comment_count>
      <attachid>436219</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-23 14:32:44 -0700</bug_when>
    <thetext>Comment on attachment 436219
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        This patch adds the optimizations we have for OwnStructureMode in
&gt; +        the Baseline to the LLInt. The patch also adds redundant self move

worth saying what those optimizations are right here.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3097
&gt; +    # FIXME: This will always call the slow path on at least the first/last execution of EnumeratorNext for any given loop.

Why is that the case? I don&apos;t follow.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3114
&gt; +    storeVariable(get, m_index, t2, t3)

how does this work? Index isn&apos;t tagged here. Seems sketchy that it&apos;s a value in the stack. In baseline, you&apos;re adding using 64 bit numbers, which seems more legit, and then zexting before using this as an index when accessing the property names array.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3131
&gt; +    # FIXME: This should be orb but that doesn&apos;t exist for some reason...

file a bug and link it.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3149
&gt; +    sxi2q t2, t2

zxi2q seems semantically more correct.

&gt; Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:99
&gt; +                # Windows complains about signed integers being cast to unsigned but we just want the bits.
&gt; +                outp.puts &quot;\#if COMPILER(MSVC)&quot;
&gt; +                outp.puts &quot;\#pragma warning(disable:4308)&quot;
&gt; +                outp.puts &quot;\#endif&quot;

is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786744</commentid>
    <comment_count>11</comment_count>
      <attachid>436219</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-24 08:45:50 -0700</bug_when>
    <thetext>Comment on attachment 436219
Patch

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

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3097
&gt;&gt; +    # FIXME: This will always call the slow path on at least the first/last execution of EnumeratorNext for any given loop.
&gt; 
&gt; Why is that the case? I don&apos;t follow.

Because the first time mode will be InitMode so we&apos;ll go to the slow path and the last time because we&apos;ll have to call the slow path to figure out if there&apos;s GenericMode properties.

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3114
&gt;&gt; +    storeVariable(get, m_index, t2, t3)
&gt; 
&gt; how does this work? Index isn&apos;t tagged here. Seems sketchy that it&apos;s a value in the stack. In baseline, you&apos;re adding using 64 bit numbers, which seems more legit, and then zexting before using this as an index when accessing the property names array.

Yeah, that seems like a bug. I guess no one looks at the high bits of the value? I&apos;ll change the above addi to addq.

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3131
&gt;&gt; +    # FIXME: This should be orb but that doesn&apos;t exist for some reason...
&gt; 
&gt; file a bug and link it.

Done.

&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3149
&gt;&gt; +    sxi2q t2, t2
&gt; 
&gt; zxi2q seems semantically more correct.

Yeah, I think the max inline property capacity is pretty small but I&apos;ll change it.

&gt;&gt; Source/JavaScriptCore/offlineasm/generate_offset_extractor.rb:99
&gt;&gt; +                outp.puts &quot;\#endif&quot;
&gt; 
&gt; is this needed?

Yeah, MSVC complains that we try to multiply a signed and unsigned value, which is a really dumb warning... It&apos;s also why I had to cast the sizeof(EncodedJSValue) for the first out of line offset computation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786778</commentid>
    <comment_count>12</comment_count>
      <attachid>436300</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-24 10:00:32 -0700</bug_when>
    <thetext>Created attachment 436300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786892</commentid>
    <comment_count>13</comment_count>
      <attachid>436300</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-08-24 12:46:33 -0700</bug_when>
    <thetext>Comment on attachment 436300
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786983</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-24 16:04:24 -0700</bug_when>
    <thetext>Committed r281523 (240896@main): &lt;https://commits.webkit.org/240896@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436300.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787159</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-25 07:40:12 -0700</bug_when>
    <thetext>Hi, this broke the cloop build. (I guess we don&apos;t have any cloop EWS.)

[1/127] Generating ../../JavaScriptCore/DerivedSources/LLIntAssembly.h
FAILED: JavaScriptCore/DerivedSources/LLIntAssembly.h 
cd /home/mcatanzaro/Projects/WebKit/WebKitBuild/JSCOnly/JavaScriptCore/DerivedSources &amp;&amp; /usr/bin/cmake -E env CMAKE_CXX_COMPILER_ID=GNU GCC_OFFLINEASM_SOURCE_MAP=OFF /usr/bin/ruby /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb -I/home/mcatanzaro/Projects/WebKit/WebKitBuild/JSCOnly/JavaScriptCore/DerivedSources/ /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter.asm /home/mcatanzaro/Projects/WebKit/WebKitBuild/JSCOnly/bin/LLIntOffsetsExtractor /home/mcatanzaro/Projects/WebKit/WebKitBuild/JSCOnly/JavaScriptCore/DerivedSources/LLIntAssembly.h normal &amp;&amp; /usr/bin/cmake -E touch_nocreate /home/mcatanzaro/Projects/WebKit/WebKitBuild/JSCOnly/JavaScriptCore/DerivedSources/LLIntAssembly.h
/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/cloop.rb:652:in `lowerC_LOOP&apos;: undefined method `uint32MemRef&apos; for #&lt;Immediate:0x000056431ed48a20 @codeOrigin=#&lt;CodeOrigin:0x000056431b395aa8 @sourceFile=#&lt;SourceFile:0x000056431b01dfb0 @name=#&lt;Pathname:/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm&gt;, @fileNumber=3&gt;, @lineNumber=3111&gt;, @value=32&gt; (due to /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:3111) (LoweringError)
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:134:in `lower&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:192:in `block in lower&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:190:in `each&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:190:in `lower&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:413:in `block (5 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:107:in `inAsm&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:412:in `block (4 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/settings.rb:210:in `emitCodeInConfiguration&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:410:in `block (3 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/settings.rb:107:in `forSettings&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:397:in `block (2 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:393:in `each&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:393:in `block in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:384:in `open&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:384:in `&lt;main&gt;&apos;
/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/cloop.rb:652:in `lowerC_LOOP&apos;: undefined method `uint32MemRef&apos; for #&lt;Immediate:0x000056431ed48a20 @codeOrigin=#&lt;CodeOrigin:0x000056431b395aa8 @sourceFile=#&lt;SourceFile:0x000056431b01dfb0 @name=#&lt;Pathname:/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm&gt;, @fileNumber=3&gt;, @lineNumber=3111&gt;, @value=32&gt; (NoMethodError)
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:134:in `lower&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:192:in `block in lower&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:190:in `each&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/backends.rb:190:in `lower&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:413:in `block (5 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:107:in `inAsm&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:412:in `block (4 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/settings.rb:210:in `emitCodeInConfiguration&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:410:in `block (3 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/settings.rb:107:in `forSettings&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:397:in `block (2 levels) in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:393:in `each&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:393:in `block in &lt;main&gt;&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:384:in `open&apos;
	from /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/asm.rb:384:in `&lt;main&gt;&apos;
ninja: build stopped: subcommand failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787162</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-08-25 07:46:38 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 229494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787164</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2021-08-25 07:49:29 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #15)
&gt; /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/cloop.rb:
&gt; 652:in `lowerC_LOOP&apos;: undefined method `uint32MemRef&apos; for
&gt; #&lt;Immediate:0x000056431ed48a20 @codeOrigin=#&lt;CodeOrigin:0x000056431b395aa8
&gt; @sourceFile=#&lt;SourceFile:0x000056431b01dfb0
&gt; @name=#&lt;Pathname:/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/
&gt; llint/LowLevelInterpreter64.asm&gt;, @fileNumber=3&gt;, @lineNumber=3111&gt;,
&gt; @value=32&gt; (due to
&gt; /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/
&gt; LowLevelInterpreter64.asm:3111) (LoweringError)

I don&apos;t understand any of this code, so I decided to do a rollout for now, sorry. Does the error message make sense to you? I don&apos;t see uint32MemRef anywhere in the diff, but I&apos;ve double-checked and the error is definitely caused by this commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787176</commentid>
    <comment_count>18</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-25 08:48:54 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #17)
&gt; (In reply to Michael Catanzaro from comment #15)
&gt; &gt; /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/cloop.rb:
&gt; &gt; 652:in `lowerC_LOOP&apos;: undefined method `uint32MemRef&apos; for
&gt; &gt; #&lt;Immediate:0x000056431ed48a20 @codeOrigin=#&lt;CodeOrigin:0x000056431b395aa8
&gt; &gt; @sourceFile=#&lt;SourceFile:0x000056431b01dfb0
&gt; &gt; @name=#&lt;Pathname:/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/
&gt; &gt; llint/LowLevelInterpreter64.asm&gt;, @fileNumber=3&gt;, @lineNumber=3111&gt;,
&gt; &gt; @value=32&gt; (due to
&gt; &gt; /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/
&gt; &gt; LowLevelInterpreter64.asm:3111) (LoweringError)
&gt; 
&gt; I don&apos;t understand any of this code, so I decided to do a rollout for now,
&gt; sorry. Does the error message make sense to you? I don&apos;t see uint32MemRef
&gt; anywhere in the diff, but I&apos;ve double-checked and the error is definitely
&gt; caused by this commit.

It&apos;s because the code in the LowLevelInterpreter*.asm is fed to a script which turns it into an inline assembly C++ file. I see the issue though. I&apos;m a bit surprised it didn&apos;t cause any breakage though O.o</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787188</commentid>
    <comment_count>19</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-25 09:46:08 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #18)
&gt; (In reply to Michael Catanzaro from comment #17)
&gt; &gt; (In reply to Michael Catanzaro from comment #15)
&gt; &gt; &gt; /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/offlineasm/cloop.rb:
&gt; &gt; &gt; 652:in `lowerC_LOOP&apos;: undefined method `uint32MemRef&apos; for
&gt; &gt; &gt; #&lt;Immediate:0x000056431ed48a20 @codeOrigin=#&lt;CodeOrigin:0x000056431b395aa8
&gt; &gt; &gt; @sourceFile=#&lt;SourceFile:0x000056431b01dfb0
&gt; &gt; &gt; @name=#&lt;Pathname:/home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/
&gt; &gt; &gt; llint/LowLevelInterpreter64.asm&gt;, @fileNumber=3&gt;, @lineNumber=3111&gt;,
&gt; &gt; &gt; @value=32&gt; (due to
&gt; &gt; &gt; /home/mcatanzaro/Projects/WebKit/Source/JavaScriptCore/llint/
&gt; &gt; &gt; LowLevelInterpreter64.asm:3111) (LoweringError)
&gt; &gt; 
&gt; &gt; I don&apos;t understand any of this code, so I decided to do a rollout for now,
&gt; &gt; sorry. Does the error message make sense to you? I don&apos;t see uint32MemRef
&gt; &gt; anywhere in the diff, but I&apos;ve double-checked and the error is definitely
&gt; &gt; caused by this commit.
&gt; 
&gt; It&apos;s because the code in the LowLevelInterpreter*.asm is fed to a script
&gt; which turns it into an inline assembly C++ file. I see the issue though. I&apos;m
&gt; a bit surprised it didn&apos;t cause any breakage though O.o

Welp, figured it out. It&apos;s because all the code in the enumerator_next fast path wasn&apos;t running. I was comparing the stack address of m_mode with 2 which will always be false and take the slow path. Whoops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787189</commentid>
    <comment_count>20</comment_count>
      <attachid>436395</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2021-08-25 09:47:53 -0700</bug_when>
    <thetext>Created attachment 436395
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1787220</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-25 11:00:01 -0700</bug_when>
    <thetext>Committed r281565 (240930@main): &lt;https://commits.webkit.org/240930@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 436395.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435422</attachid>
            <date>2021-08-12 08:23:47 -0700</date>
            <delta_ts>2021-08-12 08:55:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210812112346.patch</filename>
            <type>text/plain</type>
            <size>21562</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MzEzY2E0MjNlOWRhNmE4MmJlNGE1YzA3ZTYwMjc1ZTU4ZmI5N2M3Li5kMTVjYTFkZjcxMmUxNGMx
ZDRkMmIzNDMzYjcwNGRmNGQ1OGYxNWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NyBAQAorMjAyMS0wOC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4gdGhlIEJhc2VsaW5lCisgICAgICAgIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gbWFrZXMgYSBjb3VwbGUgY2hhbmdlcyB0byB0aGUgb2ZmbGluZSBhc3NlbWJsZXIuCisg
ICAgICAgIFNwZWNpZmljYWxseSwgaXQgYWRkcyB0aGUgc2lnbi96ZXJvIGV4dGVuZCBpbnQzMiB0
byBpbnRwdHIgaW50cnVjdGlvbnMgdG8KKyAgICAgICAgeDg2XzY0IGFzIHdlbGwgYXMgYWRkaW5n
IHJlZHVuZGFudCBzZWxmIG1vdmUgKGkuZS4gbW92ZSBhLCBhKSBlbGltaW5hdGlvbiB0bworICAg
ICAgICBhcm02NC4gRmluYWxseSwgYSBidW5jaCBvZiB0aGUgcHJvcGVydHkgb2Zmc2V0IGZ1bmN0
aW9ucyBhcmUgbm93IG1hcmtlZCBjb25zdGV4cHIKKyAgICAgICAgYW5kIHJldHVybiBpbnRwdHJf
dCByYXRoZXIgdGhhbiBzaXplX3QgYXMgdGhlIHZhbHVlcyBjYW4gYmUgbmVnYXRpdmUuCisKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlRW51bWVyYXRvckdldEJ5VmFsKToKKyAgICAgICAgKiBmdGwv
RlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZUNvbXBhcmVTdHJpY3RFcSk6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3Zh
bCk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dM
ZXZlbEludGVycHJldGVyNjQuYXNtOgorICAgICAgICAqIG9mZmxpbmVhc20vYXJtNjQucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9jbG9vcC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL3g4Ni5yYjoKKyAgICAgICAgKiBydW50
aW1lL0J1dHRlcmZseS5oOgorICAgICAgICAoSlNDOjpCdXR0ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0
eVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6
b2Zmc2V0SW5CdXR0ZXJmbHkpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlPZmZzZXQuaDoK
KyAgICAgICAgKEpTQzo6Y2hlY2tPZmZzZXQpOgorICAgICAgICAoSlNDOjp2YWxpZGF0ZU9mZnNl
dCk6CisgICAgICAgIChKU0M6OmlzVmFsaWRPZmZzZXQpOgorICAgICAgICAoSlNDOjppc0lubGlu
ZU9mZnNldCk6CisgICAgICAgIChKU0M6OmlzT3V0T2ZMaW5lT2Zmc2V0KToKKyAgICAgICAgKEpT
Qzo6b2Zmc2V0SW5JbmxpbmVTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6b2Zmc2V0SW5PdXRPZkxp
bmVTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6b2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZSk6Cisg
ICAgICAgIChKU0M6Om51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQpOgorICAgICAg
ICAoSlNDOjpudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6b2Zmc2V0
Rm9yUHJvcGVydHlOdW1iZXIpOgorCiAyMDIxLTA4LTEwICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9t
aWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGxGcmFtZTo6cmV0dXJuUEMgc2hvdWxkIHVu
dGFnIHRoZSByZXR1cm4gYWRkcmVzcyBiZWZvcmUgcGFzc2luZyBpdCB0byBSZXR1cm5BZGRyZXNz
UHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CmluZGV4IGU1YTYxYjZjY2ZhNmU1MzU5ZjM5ZGQzMGM5MjBiMzliM2ZmMjhmNzEuLjk0MjlkYThk
OWQzMjZiNDY5YjVmOWNkYjdiYWE2Mzk0MzU1ZjZjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMzcwNiw3ICsxMzcwNiw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVFbnVtZXJhdG9yR2V0QnlWYWwoTm9kZSogbm9k
ZSkKICAgICAgICAgICAgICAgICBtX2ppdC5zaWduRXh0ZW5kMzJUb1B0cihzY3JhdGNoR1BSLCBz
Y3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBpZiAoIWhhdmVTdG9yYWdlKQogICAgICAgICAg
ICAgICAgICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VDZWxs
R1BSLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCBzdG9yYWdlR1BSKTsKLSAgICAgICAg
ICAgICAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGludDMy
X3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5j
b2RlZEpTVmFsdWUpOworICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZzZXRP
ZkZpcnN0UHJvcGVydHkgPSBvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkg
KiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwogICAgICAgICAgICAgICAgIG1faml0LmxvYWRWYWx1
ZShNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHNjcmF0Y2hHUFIsIE1hY3Jv
QXNzZW1ibGVyOjpUaW1lc0VpZ2h0LCBvZmZzZXRPZkZpcnN0UHJvcGVydHkpLCByZXN1bHRSZWdz
KTsKICAgICAgICAgICAgICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7CiAgICAg
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAKaW5kZXggNTA4N2FiN2ViMDRiOGNlZGYxY2VjMDFlY2I3MTA4MWRiOWRlMWJiZi4uZmMyMGJk
OTQ3MTE0YjhhMGIzMGVmOWU0OGQ5ZWMyYTliYjc5ZTYyNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTMyNjUsNyArMTMyNjUsNyBAQCBw
cml2YXRlOgogCiAgICAgICAgIExWYWx1ZSByZWFsSW5kZXggPSBtX291dC5zaWduRXh0MzJUbzY0
KAogICAgICAgICAgICAgbV9vdXQubmVnKG1fb3V0LnN1YihpbmRleCwgaW5saW5lQ2FwYWNpdHkp
KSk7Ci0gICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8
aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZzZXRPZkZp
cnN0UHJvcGVydHkgPSBvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkgKiBz
aXplb2YoRW5jb2RlZEpTVmFsdWUpOwogICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNo
b3IoCiAgICAgICAgICAgICBtX291dC5sb2FkNjQobV9vdXQuYmFzZUluZGV4KG1faGVhcHMucHJv
cGVydGllcy5hdEFueU51bWJlcigpLCBzdG9yYWdlLCByZWFsSW5kZXgsIFNjYWxlRWlnaHQsIG9m
ZnNldE9mRmlyc3RQcm9wZXJ0eSkpKSk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nl
c3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
aW5kZXggZDM5YmM2ZDc1M2Q2NGQ2ZWY3M2E3OGE0NWY4YjlmNjU4MjUzNzIzZi4uNDI0NDE3NjBm
YzQ2MmIwOWEwZjM2NmQ2NTBjNDMxOGRlYWQzYzE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTMwODgsNyArMzA4OCw3IEBAIHZv
aWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogICAgIHN1YjMyKEFkZHJlc3MocmVnVDIsIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSksIHJlZ1QzKTsKICAg
ICBuZWczMihyZWdUMyk7CiAgICAgc2lnbkV4dGVuZDMyVG9QdHIocmVnVDMsIHJlZ1QzKTsKLSAg
ICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KG9m
ZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5jb2RlZEpT
VmFsdWUpOworICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZzZXRPZkZpcnN0UHJvcGVydHkgPSBv
ZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkgKiBzaXplb2YoRW5jb2RlZEpT
VmFsdWUpOwogICAgIGxvYWQ2NChCYXNlSW5kZXgocmVnVDAsIHJlZ1QzLCBUaW1lc0VpZ2h0LCBv
ZmZzZXRPZkZpcnN0UHJvcGVydHkpLCByZXN1bHRHUFIpOwogICAgIGRvbmVDYXNlcy5hcHBlbmQo
anVtcCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCmluZGV4IGU3MTgzYTcyYTM2OGYxYTI4MDQ2ODRkMmIwNzY0N2YyMjA2
OGYxMjUuLmQ2NDk4OWI4OWU3ZmIyOTRjODAwZjcyNzA1YTY0YmI2MTFjNzRlZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
QEAgLTE5OTQsMTAgKzE5OTQsNiBAQCBzbG93UGF0aE9wKGRlZmluZV9hY2Nlc3Nvcl9wcm9wZXJ0
eSkKIHNsb3dQYXRoT3AoZGVmaW5lX2RhdGFfcHJvcGVydHkpCiBzbG93UGF0aE9wKGdldF9ieV92
YWxfd2l0aF90aGlzKQogc2xvd1BhdGhPcChnZXRfcHJvcGVydHlfZW51bWVyYXRvcikKLXNsb3dQ
YXRoT3AoZW51bWVyYXRvcl9uZXh0KQotc2xvd1BhdGhPcChlbnVtZXJhdG9yX2dldF9ieV92YWwp
Ci1zbG93UGF0aE9wKGVudW1lcmF0b3JfaW5fYnlfdmFsKQotc2xvd1BhdGhPcChlbnVtZXJhdG9y
X2hhc19vd25fcHJvcGVydHkpCiAKIGlmIG5vdCBKU1ZBTFVFNjQKICAgICBzbG93UGF0aE9wKGdl
dF9wcm90b3R5cGVfb2YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCmluZGV4IDM3MTQ4MzFhOTY4OGYyMGQzODNh
OWU5YjYzYmYxZDI5MmU4NjViY2YuLmI4YTBmMjA1NDM5MTRiYmQ2YWI1ZDgzMjEwYWQzNzU3OTMw
MzM0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtCkBAIC0zMDc5LDMgKzMwNzksNyBAQCBsbGludE9wV2l0
aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8g
KHNpemUsIGdldCwgZAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAorc2xvd1BhdGhPcChlbnVtZXJh
dG9yX25leHQpCitzbG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKK3Nsb3dQYXRoT3Ao
ZW51bWVyYXRvcl9pbl9ieV92YWwpCitzbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9w
ZXJ0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXI2NC5hc20KaW5kZXggOGE1ZjdkMjNlNjQ3NjNiYTI1OWUxYjJjNWQ4N2Y4ZDE2Yjgy
OWFkYS4uMWYxNGVkMzM3NzA5OTc0MTZhYmMwNjEyZmQ5YzAzNzU4MDI3N2UyNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20K
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20KQEAgLTUzNCw2ICs1MzQsMTEgQEAgbWFjcm8gbG9hZFZhcmlhYmxlKGdldCwgZmllbGROYW1l
LCB2YWx1ZVJlZykKICAgICBsb2FkcSBbY2ZyLCB2YWx1ZVJlZywgOF0sIHZhbHVlUmVnCiBlbmQK
IAorbWFjcm8gc3RvcmVWYXJpYWJsZShnZXQsIGZpZWxkTmFtZSwgbmV3VmFsdWVSZWcsIHNjcmF0
Y2hSZWcpCisgICAgZ2V0KGZpZWxkTmFtZSwgc2NyYXRjaFJlZykKKyAgICBzdG9yZXEgbmV3VmFs
dWVSZWcsIFtjZnIsIHNjcmF0Y2hSZWcsIDhdCitlbmQKKwogIyBJbmRleCBhbmQgdmFsdWUgbXVz
dCBiZSBkaWZmZXJlbnQgcmVnaXN0ZXJzLiBJbmRleCBtYXkgYmUgY2xvYmJlcmVkLgogbWFjcm8g
bG9hZENvbnN0YW50KHNpemUsIGluZGV4LCB2YWx1ZSkKICAgICBtYWNybyBsb2FkTmFycm93KCkK
QEAgLTMwNzMsOCArMzA3OCw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4
dCwgT3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAubm90RG9uZToK
ICAgICBtYWNybyBzdG9yZVZhbHVlQW5kRGlzcGF0Y2godikKICAgICAgICAgbW92ZSB2LCB0Mgot
ICAgICAgICBnZXQobV92YWx1ZSwgdDEpCi0gICAgICAgIHN0b3JlcSB0MiwgW2NmciwgdDEsIDhd
CisgICAgICAgIHN0b3JlVmFyaWFibGUoZ2V0LCBtX3ZhbHVlLCB0MiwgdDEpCiAgICAgICAgIGNo
ZWNrU3RhY2tQb2ludGVyQWxpZ25tZW50KHQwLCAweGJhZGRiMDFlKQogICAgICAgICBkaXNwYXRj
aCgpCiAgICAgZW5kCkBAIC0zMDg5LDYgKzMwOTMsMTEyIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCitsbGludE9wKG9wX2VudW1lcmF0b3JfbmV4dCwg
T3BFbnVtZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCisgICAgIyBGSVhN
RTogVGhpcyB3aWxsIGFsd2F5cyBjYWxsIHRoZSBzbG93IHBhdGggb24gYXQgbGVhc3QgdGhlIGZp
cnN0L2xhc3QgZXhlY3V0aW9uIG9mIEVudW1lcmF0b3JOZXh0IGZvciBhbnkgZ2l2ZW4gbG9vcC4K
KyAgICAjIFRoZSB1cHNpZGUgb2YgdGhlIGFib3ZlIEZJWE1FIGlzIHRoYXQgd2UgZG9uJ3QgaGF2
ZSB0byByZWNvcmQgYW55IG1ldGFkYXRhIG9yIG1vZGUgaW5mb3JtYXRpb24gaGVyZSBhcyB0aGUg
c2xvdyBwYXRoIHdpbGwgZG8gaXQgZm9yIHVzIHdoZW4gdHJhbnNpdGlvbmluZyBmcm9tIEluaXRN
b2RlL0luZGV4ZWRNb2RlIHRvIE93blN0cnVjdHVyZU1vZGUuCisgICAgZ2V0KG1fbW9kZSwgdDAp
CisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0
cnVjdHVyZU1vZGUsIC5uZXh0U2xvd1BhdGgKKworICAgIGdldChtX2Jhc2UsIHQxKQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLm5leHRTbG93UGF0aCkKKwor
ICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwgdDEpCisgICAgbG9hZGkgSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZUlEW3QxXSwgdDIKKyAgICBiaW5l
cSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLm5leHRTbG93UGF0aAorCisgICAgbG9h
ZFZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIpCisgICAgYWRkaSAxLCB0MgorICAgIGxvYWRpIEpT
UHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9lbmRTdHJ1Y3R1cmVQcm9wZXJ0eUluZGV4LCB0Mwor
ICAgIGJpYWVxIHQyLCB0MywgLm5leHRTbG93UGF0aAorCisgICAgc3RvcmVWYXJpYWJsZShnZXQs
IG1faW5kZXgsIHQyLCB0MykKKyAgICBsb2FkcCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1f
cHJvcGVydHlOYW1lc1t0MV0sIHQzCisgICAgbG9hZHAgW3QzLCB0MiwgUHRyU2l6ZV0sIHQzCisK
KyAgICBzdG9yZVZhcmlhYmxlKGdldCwgbV9wcm9wZXJ0eU5hbWUsIHQzLCB0MikKKyAgICBkaXNw
YXRjaCgpCisKKy5uZXh0U2xvd1BhdGg6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZW51
bWVyYXRvcl9uZXh0KQorICAgIGRpc3BhdGNoKCkKK2VuZCkKKworbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9lbnVtZXJhdG9yX2dldF9ieV92YWwsIE9wRW51bWVyYXRvckdldEJ5VmFsLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBtZXRhZGF0YSh0NSwg
dDApCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX21vZGUsIHQwKQorCisgICAgIyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgb3JiIGJ1dCB0aGF0IGRvZXNuJ3QgZXhpc3QgZm9yIHNvbWUgcmVhc29u
Li4uCisgICAgbG9hZGIgT3BFbnVtZXJhdG9yR2V0QnlWYWw6Ok1ldGFkYXRhOjptX2VudW1lcmF0
b3JNZXRhZGF0YVt0NV0sIHQxCisgICAgb3JpIHQwLCB0MQorICAgIHN0b3JlYiB0MSwgT3BFbnVt
ZXJhdG9yR2V0QnlWYWw6Ok1ldGFkYXRhOjptX2VudW1lcmF0b3JNZXRhZGF0YVt0NV0KKworICAg
IGJibmVxIHQwLCBjb25zdGV4cHIgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpPd25TdHJ1Y3R1
cmVNb2RlLCAuZ2V0U2xvd1BhdGgKKworICAgIGdldChtX2Jhc2UsIHQxKQorICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmdldFNsb3dQYXRoKQorCisgICAgbG9h
ZFZhcmlhYmxlKGdldCwgbV9lbnVtZXJhdG9yLCB0MSkKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlSURbdDFdLCB0MgorICAgIGJpbmVxIHQyLCBK
U0NlbGw6Om1fc3RydWN0dXJlSURbdDBdLCAuZ2V0U2xvd1BhdGgKKworICAgIGxvYWRWYXJpYWJs
ZShnZXQsIG1faW5kZXgsIHQyKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
bV9jYWNoZWRJbmxpbmVDYXBhY2l0eVt0MV0sIHQxCisgICAgYmlhZXEgdDIsIHQxLCAub3V0T2ZM
aW5lCisKKyAgICBzeGkycCB0MiwgdDIKKyAgICBsb2FkcSBzaXplb2YgSlNPYmplY3RbdDAsIHQy
LCA4XSwgdDIKKyAgICBqbXAgLmRvbmUKKworLm91dE9mTGluZToKKyAgICBsb2FkcCBKU09iamVj
dDo6bV9idXR0ZXJmbHlbdDBdLCB0MAorICAgIHN1YmkgdDEsIHQyCisgICAgbmVnaSB0MgorICAg
IHN4aTJwIHQyLCB0MgorICAgIGxvYWRxIGNvbnN0ZXhwciAoKG9mZnNldEluQnV0dGVyZmx5KGZp
cnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKVt0MCwgdDIsIDhd
LCB0MgorCisuZG9uZToKKyAgICB2YWx1ZVByb2ZpbGUoT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1f
cHJvZmlsZSwgdDUsIHQyKQorICAgIHJldHVybih0MikKKworLmdldFNsb3dQYXRoOgorICAgIGNh
bGxTbG93UGF0aChfc2xvd19wYXRoX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKKyAgICBkaXNwYXRj
aCgpCitlbmQpCisKK21hY3JvIGhhc1Byb3BlcnR5SW1wbChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIHNsb3dQYXRoKQorICAgIG1ldGFkYXRhKHQ1
LCB0MCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fbW9kZSwgdDApCisgICAgIyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgb3JiIGJ1dCB0aGF0IGRvZXNuJ3QgZXhpc3QgZm9yIHNvbWUgcmVhc29u
Li4uCisgICAgbG9hZGIgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2VudW1lcmF0b3JNZXRh
ZGF0YVt0NV0sIHQxCisgICAgb3JpIHQwLCB0MQorICAgIHN0b3JlYiB0MSwgJW9wY29kZVN0cnVj
dCU6Ok1ldGFkYXRhOjptX2VudW1lcmF0b3JNZXRhZGF0YVt0NV0KKworICAgIGJibmVxIHQwLCBj
b25zdGV4cHIgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpPd25TdHJ1Y3R1cmVNb2RlLCAuY2Fs
bFNsb3dQYXRoCisKKyAgICBnZXQobV9iYXNlLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlQ2VsbChzaXplLCB0MSwgdDAsIC5jYWxsU2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUo
Z2V0LCBtX2VudW1lcmF0b3IsIHQxKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
cjo6bV9jYWNoZWRTdHJ1Y3R1cmVJRFt0MV0sIHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9z
dHJ1Y3R1cmVJRFt0MF0sIC5jYWxsU2xvd1BhdGgKKworICAgIG1vdmUgVmFsdWVUcnVlLCB0Mgor
ICAgIHJldHVybih0MikKKworLmNhbGxTbG93UGF0aDoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1Bh
dGgpCisgICAgZGlzcGF0Y2goKQorZW5kCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVy
YXRvcl9pbl9ieV92YWwsIE9wRW51bWVyYXRvckluQnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGhhc1Byb3BlcnR5SW1wbChPcEVudW1lcmF0
b3JJbkJ5VmFsLCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xvd19w
YXRoX2VudW1lcmF0b3JfaW5fYnlfdmFsKQorZW5kKQorCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSwgT3BFbnVtZXJhdG9ySGFzT3duUHJvcGVydHks
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGhhc1By
b3BlcnR5SW1wbChPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2hhc19vd25fcHJvcGVy
dHkpCitlbmQpCiAKIGxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfaW50ZXJuYWxfZmllbGQsIE9w
R2V0SW50ZXJuYWxGaWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKICAg
ICBsb2FkVmFyaWFibGUoZ2V0LCBtX2Jhc2UsIHQxKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm02NC5yYgppbmRleCA3MmI2YzNjZmVjMmYyMGExMzJmNjViZDBmZGY2OGFkYjA1
YzA4M2I5Li4xYWRkNTQwZDgzNWMzNWUzZjcyN2NkZDYzMWM5Yjg2MDlmMTI2OWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYgpAQCAtODg0LDcgKzg4NCw3IEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gIm1vdmUiCiAgICAgICAgICAgICBpZiBv
cGVyYW5kc1swXS5pbW1lZGlhdGU/CiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0TW92ZUltbWVk
aWF0ZShvcGVyYW5kc1swXS52YWx1ZSwgb3BlcmFuZHNbMV0pCi0gICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICBlbHNpZiBvcGVyYW5kc1swXSAhPSBvcGVyYW5kc1sxXQogICAgICAgICAgICAg
ICAgIGVtaXRBUk02NCgibW92Iiwgb3BlcmFuZHMsIDpxdWFkKQogICAgICAgICAgICAgZW5kCiAg
ICAgICAgIHdoZW4gIm1vdmVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vY2xvb3AucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9v
cC5yYgppbmRleCA2NDFmN2QyN2I2YTdmNjQxOTU1M2YzMzdjYWJjZDA4MDU1NjAwNTZlLi43Yjc5
ZWM0MjM4OGE5NGQwNWJlN2JjMTBhNmJiZTA3MGE3M2IxY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9jbG9vcC5yYgpAQCAtNzQwLDggKzc0MCwxMiBAQCBjbGFzcyBJbnN0
cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRjICIje29wZXJhbmRzWzFdLmNsTFZhbHVlKDpp
bnRwdHIpfSA9ICN7b3BlcmFuZHNbMF0uY2xWYWx1ZSg6aW50cHRyKX07IgogICAgICAgICB3aGVu
ICJzeGkycSIKICAgICAgICAgICAgICRhc20ucHV0YyAiI3tvcGVyYW5kc1sxXS5jbExWYWx1ZSg6
aW50NjQpfSA9ICN7b3BlcmFuZHNbMF0uY2xWYWx1ZSg6aW50MzIpfTsiCisgICAgICAgIHdoZW4g
InN4aTJwIgorICAgICAgICAgICAgJGFzbS5wdXRjICIje29wZXJhbmRzWzFdLmNsTFZhbHVlKDpp
bnRwdHIpfSA9ICN7b3BlcmFuZHNbMF0uY2xWYWx1ZSg6aW50MzIpfTsiCiAgICAgICAgIHdoZW4g
Inp4aTJxIgogICAgICAgICAgICAgJGFzbS5wdXRjICIje29wZXJhbmRzWzFdLmNsTFZhbHVlKDp1
aW50NjQpfSA9ICN7b3BlcmFuZHNbMF0uY2xWYWx1ZSg6dWludDMyKX07IgorICAgICAgICB3aGVu
ICJ6eGkycCIKKyAgICAgICAgICAgICRhc20ucHV0YyAiI3tvcGVyYW5kc1sxXS5jbExWYWx1ZSg6
dWludHB0cil9ID0gI3tvcGVyYW5kc1swXS5jbFZhbHVlKDp1aW50MzIpfTsiCiAgICAgICAgIHdo
ZW4gInN4YjJpIgogICAgICAgICAgICAgJGFzbS5wdXRjICIje29wZXJhbmRzWzFdLmNsTFZhbHVl
KDppbnQzMil9ID0gI3tvcGVyYW5kc1swXS5jbFZhbHVlKDppbnQ4KX07IgogICAgICAgICB3aGVu
ICJzeGgyaSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgppbmRleCA5Y2JhNWQ2OGYzY2FkMzFjZmEyZDk2ZWE0YzliYmE4ZGZlOWRhOWIyLi5l
YWU3MmNmZmEyZDE3OWY2YzBkNjE1OGNiZTk1NzcwYjI4NTcyYzg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCkBAIC0xNDAsNyArMTQw
LDkgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgInB1c2giLAogICAgICAibW92ZSIsCiAg
ICAgICJzeGkycSIsCisgICAgICJzeGkycCIsCiAgICAgICJ6eGkycSIsCisgICAgICJ6eGkycCIs
CiAgICAgICJzeGIyaSIsCiAgICAgICJzeGgyaSIsCiAgICAgICJzeGIycSIsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKaW5kZXggZjM3MWY1NmI4ZDA4Y2U5NDAxOWJiNzJk
ZDNiNzNmNTcyYmMzMWEzZC4uN2UzNzI5ZTc2MDVmZmY4ZGM4MmFlNzNiMDU1MDY0MmE4MjlkMzkw
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgpAQCAtMTQwNywxMiAr
MTQwNywxNCBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJtb3ZlIgogICAgICAg
ICAgICAgaGFuZGxlTW92ZQogICAgICAgICB3aGVuICJzeGkycSIKKyAgICAgICAgd2hlbiAic3hp
MnAiCiAgICAgICAgICAgICBpZiAhaXNJbnRlbFN5bnRheAogICAgICAgICAgICAgICAgICRhc20u
cHV0cyAibW92c2xxICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6aW50KX0sICN7b3BlcmFuZHNb
MV0ueDg2T3BlcmFuZCg6cXVhZCl9IgogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAibW92c3hkICN7b3JkZXJPcGVyYW5kcyhvcGVyYW5kc1swXS54ODZPcGVyYW5k
KDppbnQpLCBvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpxdWFkKSl9IgogICAgICAgICAgICAgZW5k
CiAgICAgICAgIHdoZW4gInp4aTJxIgorICAgICAgICB3aGVuICJ6eGkycCIKICAgICAgICAgICAg
ICRhc20ucHV0cyAibW92I3t4ODZTdWZmaXgoOmludCl9ICN7b3JkZXJPcGVyYW5kcyhvcGVyYW5k
c1swXS54ODZPcGVyYW5kKDppbnQpLCBvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDppbnQpKX0iCiAg
ICAgICAgIHdoZW4gInN4YjJpIgogICAgICAgICAgICAgaWYgIWlzSW50ZWxTeW50YXgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKaW5kZXggNDkzNTFjNzdjNTk4Mzkw
MzQyZjllYzYyZTBkZDExNTYzZTFlYzdlOC4uNGJkZGU0ZDA1YjM5NmQ0NzA3Mzc5Y2I2M2VkZDI5
YTNmNmQxMmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0
dGVyZmx5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgK
QEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJk
aWZmX3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAtc3RhdGljX2Nhc3Q8cHRy
ZGlmZl90PihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKTsgfQotICAgIHN0YXRpYyBpbnQgaW5kZXhP
ZlByb3BlcnR5U3RvcmFnZSgpCisgICAgY29uc3RleHByIHN0YXRpYyBpbnQgaW5kZXhPZlByb3Bl
cnR5U3RvcmFnZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZW9mKEluZGV4aW5nSGVhZGVy
KSA9PSBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggY2E3NDI2NDI1NzFhYzQ0MmIy
NGU3NGVmNDIzNWU4ZTkzZTA0Mjg1Mi4uNGMwZWJkMWY2MTY1NzJkMDhhZmIzODViNmZlNTI5ZWI4
Y2I3M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0x
NTY0LDcgKzE1NjQsNyBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZNJiB2bSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZQogICAgIHJldHVybiBwdXRE
aXJlY3RJbnRlcm5hbDxQdXRNb2RlRGVmaW5lT3duUHJvcGVydHk+KHZtLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCAwLCBzbG90KTsKIH0KIAotaW5saW5lIHNpemVfdCBvZmZzZXRJbkJ1dHRlcmZseShQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldElu
QnV0dGVyZmx5KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICByZXR1cm4gb2Zmc2V0SW5P
dXRPZkxpbmVTdG9yYWdlKG9mZnNldCkgKyBCdXR0ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0eVN0b3Jh
Z2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5T2Zmc2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNl
dC5oCmluZGV4IGU3MDcyOWY3ZWMzNjEzNjU4MzE2ZDljOWYzODM0NTNlNGI4Nzg2N2MuLjY5YWVi
YWFmNzg4OWM4ZTBhZGMxMjE1NDQ1YWI5NjQ3M2Q0M2NlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlPZmZzZXQuaApAQCAtMzcsMjYgKzM3LDI2IEBAIHN0
YXRpYyBjb25zdGV4cHIgUHJvcGVydHlPZmZzZXQga25vd25Qb2x5UHJvdG9PZmZzZXQgPSAwOwog
c3RhdGljX2Fzc2VydChrbm93blBvbHlQcm90b09mZnNldCA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0
LCAiV2UgYXNzdW1lIGluIGFsbCB0aGUgSklUcyB0aGF0IHRoZSBwb2x5IHByb3RvIG9mZnNldCBp
cyBhbiBpbmxpbmUgb2Zmc2V0Iik7CiAKIC8vIERlY2xhcmUgYWxsIG9mIHRoZSBmdW5jdGlvbnMg
YmVjYXVzZSB0aGV5IHRlbmQgdG8gZG8gZm9yd2FyZCBjYWxscy4KLWlubGluZSB2b2lkIGNoZWNr
T2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQo
UHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZz
ZXQsIGludCBpbmxpbmVDYXBhY2l0eSk7Ci1pbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3Bl
cnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsK
LWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBz
aXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXpl
X3Qgb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXpl
X3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6
ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwot
aW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBp
bnQgaW5saW5lQ2FwYWNpdHkpOwotCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVydHlP
ZmZzZXQpOworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0
LCBpbnQgaW5saW5lQ2FwYWNpdHkpOworY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zm
c2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNl
dChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKK2NvbnN0ZXhwciBpbmxpbmUg
Ym9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9v
bCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIGJvb2wg
aXNPdXRPZkxpbmVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRw
dHJfdCBvZmZzZXRJbklubGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlu
bGluZSBpbnRwdHJfdCBvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOwor
Y29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKFByb3Bl
cnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xv
dHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBzaXplX3Qg
bnVtYmVyT2ZTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFj
aXR5KTsKKworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0
IG9mZnNldCkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBBU1NFUlQob2Zmc2V0
ID49IGludmFsaWRPZmZzZXQpOwogfQogCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0
eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9p
ZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkK
IHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBVTlVTRURfUEFSQU0oaW5saW5lQ2Fw
YWNpdHkpOwpAQCAtNjYsNTggKzY2LDU4IEBAIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3Bl
cnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogICAgICAgICB8fCBpc091dE9m
TGluZU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJv
cGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0
KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQpOwogICAg
IEFTU0VSVChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpOwogfQogCi1pbmxpbmUgdm9pZCB2YWxpZGF0
ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0
ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGlu
dCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQsIGlubGluZUNhcGFj
aXR5KTsKICAgICBBU1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIGJv
b2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5l
IGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tP
ZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0ICE9IGludmFsaWRPZmZzZXQ7CiB9CiAK
LWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0
ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7
CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0IDwgZmlyc3RPdXRP
ZkxpbmVPZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICBy
ZXR1cm4gIWlzSW5saW5lT2Zmc2V0KG9mZnNldCk7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0
SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUg
aW50cHRyX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsK
ICAgICB2YWxpZGF0ZU9mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc0lubGluZU9mZnNldChv
ZmZzZXQpKTsKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi1pbmxpbmUgc2l6ZV90IG9mZnNldElu
T3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5l
IGludHB0cl90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQp
CiB7CiAgICAgdmFsaWRhdGVPZmZzZXQob2Zmc2V0KTsKICAgICBBU1NFUlQoaXNPdXRPZkxpbmVP
ZmZzZXQob2Zmc2V0KSk7CiAgICAgcmV0dXJuIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNl
dCAtIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAtIDE7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0
SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5s
aW5lIGludHB0cl90IG9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zm
c2V0KQogewogICAgIGlmIChpc0lubGluZU9mZnNldChvZmZzZXQpKQogICAgICAgICByZXR1cm4g
b2Zmc2V0SW5JbmxpbmVTdG9yYWdlKG9mZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldEluT3V0T2ZM
aW5lU3RvcmFnZShvZmZzZXQpOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5l
U2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGlu
ZSBzaXplX3QgbnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICBpZiAob2Zmc2V0IDwg
Zmlyc3RPdXRPZkxpbmVPZmZzZXQpCkBAIC0xMjUsNyArMTI1LDcgQEAgaW5saW5lIHNpemVfdCBu
dW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkK
ICAgICByZXR1cm4gb2Zmc2V0IC0gZmlyc3RPdXRPZkxpbmVPZmZzZXQgKyAxOwogfQogCi1pbmxp
bmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0
LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitjb25zdGV4cHIgaW5saW5lIHNpemVfdCBudW1iZXJPZlNs
b3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5
KQogewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgaW5saW5lQ2FwYWNpdHkpOwogICAgIGlmIChv
ZmZzZXQgPCBpbmxpbmVDYXBhY2l0eSkKQEAgLTEzMyw3ICsxMzMsNyBAQCBpbmxpbmUgc2l6ZV90
IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5s
aW5lQ2FwYWNpdAogICAgIHJldHVybiBpbmxpbmVDYXBhY2l0eSArIG51bWJlck9mT3V0T2ZMaW5l
U2xvdHNGb3JNYXhPZmZzZXQob2Zmc2V0KTsKIH0KIAotaW5saW5lIFByb3BlcnR5T2Zmc2V0IG9m
ZnNldEZvclByb3BlcnR5TnVtYmVyKGludCBwcm9wZXJ0eU51bWJlciwgaW50IGlubGluZUNhcGFj
aXR5KQorY29uc3RleHByIGlubGluZSBQcm9wZXJ0eU9mZnNldCBvZmZzZXRGb3JQcm9wZXJ0eU51
bWJlcihpbnQgcHJvcGVydHlOdW1iZXIsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQgPSBwcm9wZXJ0eU51bWJlcjsKICAgICBpZiAob2Zmc2V0ID49IGlu
bGluZUNhcGFjaXR5KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435425</attachid>
            <date>2021-08-12 08:55:07 -0700</date>
            <delta_ts>2021-08-12 09:27:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210812115506.patch</filename>
            <type>text/plain</type>
            <size>19963</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MzEzY2E0MjNlOWRhNmE4MmJlNGE1YzA3ZTYwMjc1ZTU4ZmI5N2M3Li5hYzhkOGZhZWU0YjlkNjRj
NTA1ZWM2ZDhmYjkzMWQ3NTZmMWFiZGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NSBAQAorMjAyMS0wOC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkg
ZWxpbWluYXRpb24gdG8gYXJtNjQuIEl0IGFsc28gZml4ZXMgYSBwb3RlbnRpYWwKKyAgICAgICAg
aXNzdWUgb24gYXJtNjRfMzIgd2hlcmUgd2Ugd2VyZSB1c2luZyBzaWduRXh0ZW5kMzJUb1B0ciB0
aGUKKyAgICAgICAgaW5kZXguIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlIHByb3BlcnR5IG9mZnNl
dCBmdW5jdGlvbnMgYXJlIG5vdworICAgICAgICBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1cm4g
aW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZQorICAgICAgICB2YWx1ZXMgY2FuIGJl
IG5lZ2F0aXZlLgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZhbCk6
CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6
REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAqIGpp
dC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbnVt
ZXJhdG9yX2dldF9ieV92YWwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAg
ICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5l
YXNtL2FybTY0LnJiOgorICAgICAgICAqIHJ1bnRpbWUvQnV0dGVyZmx5Lmg6CisgICAgICAgIChK
U0M6OkJ1dHRlcmZseTo6aW5kZXhPZlByb3BlcnR5U3RvcmFnZSk6CisgICAgICAgICogcnVudGlt
ZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpvZmZzZXRJbkJ1dHRlcmZseSk6CisgICAgICAg
ICogcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oOgorICAgICAgICAoSlNDOjpjaGVja09mZnNldCk6
CisgICAgICAgIChKU0M6OnZhbGlkYXRlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNWYWxpZE9m
ZnNldCk6CisgICAgICAgIChKU0M6OmlzSW5saW5lT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNP
dXRPZkxpbmVPZmZzZXQpOgorICAgICAgICAoSlNDOjpvZmZzZXRJbklubGluZVN0b3JhZ2UpOgor
ICAgICAgICAoSlNDOjpvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UpOgorICAgICAgICAoSlNDOjpv
ZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6bnVtYmVyT2ZPdXRPZkxp
bmVTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om51bWJlck9mU2xvdHNGb3JNYXhP
ZmZzZXQpOgorICAgICAgICAoSlNDOjpvZmZzZXRGb3JQcm9wZXJ0eU51bWJlcik6CisKIDIwMjEt
MDgtMTAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAg
Q2FsbEZyYW1lOjpyZXR1cm5QQyBzaG91bGQgdW50YWcgdGhlIHJldHVybiBhZGRyZXNzIGJlZm9y
ZSBwYXNzaW5nIGl0IHRvIFJldHVybkFkZHJlc3NQdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZTVhNjFiNmNjZmE2ZTUzNTlmMzlk
ZDMwYzkyMGIzOWIzZmYyOGY3MS4uMzM3Njk3Y2RjMWU3NmNjNjJkNDY3MDBkYzQ2YTMzMzQxN2Yw
ZWE4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKQEAgLTEzNzAzLDEwICsxMzcwMywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlRW51bWVyYXRvckdldEJ5VmFsKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgbV9qaXQu
bW92ZShpbmRleEdQUiwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICAgICAgbV9qaXQuc3ViMzIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoZW51bWVyYXRvckdQUiwgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yOjpjYWNoZWRJbmxpbmVDYXBhY2l0eU9mZnNldCgpKSwgc2NyYXRjaEdQUik7CiAgICAg
ICAgICAgICAgICAgbV9qaXQubmVnMzIoc2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgbV9q
aXQuc2lnbkV4dGVuZDMyVG9QdHIoc2NyYXRjaEdQUiwgc2NyYXRjaEdQUik7CisgICAgICAgICAg
ICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG82NChzY3JhdGNoR1BSLCBzY3JhdGNoR1BSKTsKICAg
ICAgICAgICAgICAgICBpZiAoIWhhdmVTdG9yYWdlKQogICAgICAgICAgICAgICAgICAgICBtX2pp
dC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VDZWxsR1BSLCBKU09iamVjdDo6
YnV0dGVyZmx5T2Zmc2V0KCkpLCBzdG9yYWdlR1BSKTsKLSAgICAgICAgICAgICAgICBpbnQzMl90
IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KG9mZnNldEluQnV0
dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwor
ICAgICAgICAgICAgICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZzZXRPZkZpcnN0UHJvcGVydHkg
PSBvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkgKiBzaXplb2YoRW5jb2Rl
ZEpTVmFsdWUpOwogICAgICAgICAgICAgICAgIG1faml0LmxvYWRWYWx1ZShNYWNyb0Fzc2VtYmxl
cjo6QmFzZUluZGV4KHN0b3JhZ2VHUFIsIHNjcmF0Y2hHUFIsIE1hY3JvQXNzZW1ibGVyOjpUaW1l
c0VpZ2h0LCBvZmZzZXRPZkZpcnN0UHJvcGVydHkpLCByZXN1bHRSZWdzKTsKICAgICAgICAgICAg
ICAgICBkb25lQ2FzZXMuYXBwZW5kKG1faml0Lmp1bXAoKSk7CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggNTA4N2Fi
N2ViMDRiOGNlZGYxY2VjMDFlY2I3MTA4MWRiOWRlMWJiZi4uZmMyMGJkOTQ3MTE0YjhhMGIzMGVm
OWU0OGQ5ZWMyYTliYjc5ZTYyNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcApAQCAtMTMyNjUsNyArMTMyNjUsNyBAQCBwcml2YXRlOgogCiAgICAg
ICAgIExWYWx1ZSByZWFsSW5kZXggPSBtX291dC5zaWduRXh0MzJUbzY0KAogICAgICAgICAgICAg
bV9vdXQubmVnKG1fb3V0LnN1YihpbmRleCwgaW5saW5lQ2FwYWNpdHkpKSk7Ci0gICAgICAgIGlu
dDMyX3Qgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0
SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1
ZSk7CisgICAgICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZzZXRPZkZpcnN0UHJvcGVydHkgPSBv
ZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkgKiBzaXplb2YoRW5jb2RlZEpT
VmFsdWUpOwogICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3IoCiAgICAgICAgICAg
ICBtX291dC5sb2FkNjQobV9vdXQuYmFzZUluZGV4KG1faGVhcHMucHJvcGVydGllcy5hdEFueU51
bWJlcigpLCBzdG9yYWdlLCByZWFsSW5kZXgsIFNjYWxlRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9w
ZXJ0eSkpKSk7CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggZDM5YmM2ZDc1
M2Q2NGQ2ZWY3M2E3OGE0NWY4YjlmNjU4MjUzNzIzZi4uOTc4YWRmNjJmOTRkYzBiZjMzNWJmODc1
NWRiOWI5YjU5NDBiNjllOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTMwNzcsNyArMzA3Nyw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2VudW1lcmF0b3JfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIC8vIElmIGluZGV4IGlzIGxlc3MgdGhhbiB0aGUgZW51bWVyYXRvcidzIGNhY2hl
ZCBpbmxpbmUgc3RvcmFnZSwgdGhlbiBpdCdzIGFuIGlubGluZSBhY2Nlc3MKICAgICBKdW1wIG91
dE9mTGluZUFjY2VzcyA9IGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDMsIEFkZHJlc3MocmVn
VDIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQo
KSkpOwogICAgIGFkZFB0cihUcnVzdGVkSW1tMzIoSlNPYmplY3Q6Om9mZnNldE9mSW5saW5lU3Rv
cmFnZSgpKSwgcmVnVDApOwotICAgIHNpZ25FeHRlbmQzMlRvUHRyKHJlZ1QzLCByZWdUMyk7Cisg
ICAgc2lnbkV4dGVuZDMyVG82NChyZWdUMywgcmVnVDMpOwogICAgIGxvYWQ2NChCYXNlSW5kZXgo
cmVnVDAsIHJlZ1QzLCBUaW1lc0VpZ2h0KSwgcmVzdWx0R1BSKTsKIAogICAgIGRvbmVDYXNlcy5h
cHBlbmQoanVtcCgpKTsKQEAgLTMwODcsOCArMzA4Nyw4IEBAIHZvaWQgSklUOjplbWl0X29wX2Vu
dW1lcmF0b3JfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNldCgp
KSwgcmVnVDApOwogICAgIHN1YjMyKEFkZHJlc3MocmVnVDIsIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZzZXQoKSksIHJlZ1QzKTsKICAgICBuZWczMihy
ZWdUMyk7Ci0gICAgc2lnbkV4dGVuZDMyVG9QdHIocmVnVDMsIHJlZ1QzKTsKLSAgICBpbnQzMl90
IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGludDMyX3Q+KG9mZnNldEluQnV0
dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOwor
ICAgIHNpZ25FeHRlbmQzMlRvNjQocmVnVDMsIHJlZ1QzKTsKKyAgICBjb25zdGV4cHIgaW50cHRy
X3Qgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5ID0gb2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxp
bmVPZmZzZXQpICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKICAgICBsb2FkNjQoQmFzZUluZGV4
KHJlZ1QwLCByZWdUMywgVGltZXNFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSwgcmVzdWx0
R1BSKTsKICAgICBkb25lQ2FzZXMuYXBwZW5kKGp1bXAoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCBlNzE4M2E3
MmEzNjhmMWEyODA0Njg0ZDJiMDc2NDdmMjIwNjhmMTI1Li5kNjQ5ODliODllN2ZiMjk0YzgwMGY3
MjcwNWE2NGJiNjExYzc0ZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xOTk0LDEwICsxOTk0LDYgQEAgc2xvd1Bh
dGhPcChkZWZpbmVfYWNjZXNzb3JfcHJvcGVydHkpCiBzbG93UGF0aE9wKGRlZmluZV9kYXRhX3By
b3BlcnR5KQogc2xvd1BhdGhPcChnZXRfYnlfdmFsX3dpdGhfdGhpcykKIHNsb3dQYXRoT3AoZ2V0
X3Byb3BlcnR5X2VudW1lcmF0b3IpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKLXNsb3dQ
YXRoT3AoZW51bWVyYXRvcl9nZXRfYnlfdmFsKQotc2xvd1BhdGhPcChlbnVtZXJhdG9yX2luX2J5
X3ZhbCkKLXNsb3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQogCiBpZiBub3Qg
SlNWQUxVRTY0CiAgICAgc2xvd1BhdGhPcChnZXRfcHJvdG90eXBlX29mKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFz
bQppbmRleCAzNzE0ODMxYTk2ODhmMjBkMzgzYTllOWI2M2JmMWQyOTJlODY1YmNmLi5iOGEwZjIw
NTQzOTE0YmJkNmFiNWQ4MzIxMGFkMzc1NzkzMDMzNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAt
MzA3OSwzICszMDc5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFu
ZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGQKICAgICBkaXNwYXRjaCgp
CiBlbmQpCiAKK3Nsb3dQYXRoT3AoZW51bWVyYXRvcl9uZXh0KQorc2xvd1BhdGhPcChlbnVtZXJh
dG9yX2dldF9ieV92YWwpCitzbG93UGF0aE9wKGVudW1lcmF0b3JfaW5fYnlfdmFsKQorc2xvd1Bh
dGhPcChlbnVtZXJhdG9yX2hhc19vd25fcHJvcGVydHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDhhNWY3ZDIz
ZTY0NzYzYmEyNTllMWIyYzVkODdmOGQxNmI4MjlhZGEuLmVkZjQxOGNmNTdhMmY0YTBkNTE2Zjgz
NmUzYTdlZDc4ZDQzN2YwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC01MzQsNiArNTM0LDExIEBAIG1hY3Jv
IGxvYWRWYXJpYWJsZShnZXQsIGZpZWxkTmFtZSwgdmFsdWVSZWcpCiAgICAgbG9hZHEgW2Nmciwg
dmFsdWVSZWcsIDhdLCB2YWx1ZVJlZwogZW5kCiAKK21hY3JvIHN0b3JlVmFyaWFibGUoZ2V0LCBm
aWVsZE5hbWUsIG5ld1ZhbHVlUmVnLCBzY3JhdGNoUmVnKQorICAgIGdldChmaWVsZE5hbWUsIHNj
cmF0Y2hSZWcpCisgICAgc3RvcmVxIG5ld1ZhbHVlUmVnLCBbY2ZyLCBzY3JhdGNoUmVnLCA4XQor
ZW5kCisKICMgSW5kZXggYW5kIHZhbHVlIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5k
ZXggbWF5IGJlIGNsb2JiZXJlZC4KIG1hY3JvIGxvYWRDb25zdGFudChzaXplLCBpbmRleCwgdmFs
dWUpCiAgICAgbWFjcm8gbG9hZE5hcnJvdygpCkBAIC0zMDczLDggKzMwNzgsNyBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaAogLm5vdERvbmU6CiAgICAgbWFjcm8gc3RvcmVWYWx1ZUFuZERpc3Bh
dGNoKHYpCiAgICAgICAgIG1vdmUgdiwgdDIKLSAgICAgICAgZ2V0KG1fdmFsdWUsIHQxKQotICAg
ICAgICBzdG9yZXEgdDIsIFtjZnIsIHQxLCA4XQorICAgICAgICBzdG9yZVZhcmlhYmxlKGdldCwg
bV92YWx1ZSwgdDIsIHQxKQogICAgICAgICBjaGVja1N0YWNrUG9pbnRlckFsaWdubWVudCh0MCwg
MHhiYWRkYjAxZSkKICAgICAgICAgZGlzcGF0Y2goKQogICAgIGVuZApAQCAtMzA4OSw2ICszMDkz
LDExMiBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JO
ZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAor
bGxpbnRPcChvcF9lbnVtZXJhdG9yX25leHQsIE9wRW51bWVyYXRvck5leHQsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoKQorICAgICMgRklYTUU6IFRoaXMgd2lsbCBhbHdheXMgY2FsbCB0aGUg
c2xvdyBwYXRoIG9uIGF0IGxlYXN0IHRoZSBmaXJzdC9sYXN0IGV4ZWN1dGlvbiBvZiBFbnVtZXJh
dG9yTmV4dCBmb3IgYW55IGdpdmVuIGxvb3AuCisgICAgIyBUaGUgdXBzaWRlIG9mIHRoZSBhYm92
ZSBGSVhNRSBpcyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gcmVjb3JkIGFueSBtZXRhZGF0YSBvciBt
b2RlIGluZm9ybWF0aW9uIGhlcmUgYXMgdGhlIHNsb3cgcGF0aCB3aWxsIGRvIGl0IGZvciB1cyB3
aGVuIHRyYW5zaXRpb25pbmcgZnJvbSBJbml0TW9kZS9JbmRleGVkTW9kZSB0byBPd25TdHJ1Y3R1
cmVNb2RlLgorICAgIGdldChtX21vZGUsIHQwKQorICAgIGJibmVxIHQwLCBjb25zdGV4cHIgSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpPd25TdHJ1Y3R1cmVNb2RlLCAubmV4dFNsb3dQYXRoCisK
KyAgICBnZXQobV9iYXNlLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXpl
LCB0MSwgdDAsIC5uZXh0U2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2VudW1l
cmF0b3IsIHQxKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRT
dHJ1Y3R1cmVJRFt0MV0sIHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0
MF0sIC5uZXh0U2xvd1BhdGgKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1faW5kZXgsIHQyKQor
ICAgIGFkZGkgMSwgdDIKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZW5k
U3RydWN0dXJlUHJvcGVydHlJbmRleCwgdDMKKyAgICBiaWFlcSB0MiwgdDMsIC5uZXh0U2xvd1Bh
dGgKKworICAgIHN0b3JlVmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0MiwgdDMpCisgICAgbG9hZHAg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX3Byb3BlcnR5TmFtZXNbdDFdLCB0MworICAgIGxv
YWRwIFt0MywgdDIsIFB0clNpemVdLCB0MworCisgICAgc3RvcmVWYXJpYWJsZShnZXQsIG1fcHJv
cGVydHlOYW1lLCB0MywgdDIpCisgICAgZGlzcGF0Y2goKQorCisubmV4dFNsb3dQYXRoOgorICAg
IGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2VudW1lcmF0b3JfbmV4dCkKKyAgICBkaXNwYXRjaCgp
CitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsLCBP
cEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwg
bV9tb2RlLCB0MCkKKworICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIG9yYiBidXQgdGhhdCBk
b2Vzbid0IGV4aXN0IGZvciBzb21lIHJlYXNvbi4uLgorICAgIGxvYWRiIE9wRW51bWVyYXRvckdl
dEJ5VmFsOjpNZXRhZGF0YTo6bV9lbnVtZXJhdG9yTWV0YWRhdGFbdDVdLCB0MQorICAgIG9yaSB0
MCwgdDEKKyAgICBzdG9yZWIgdDEsIE9wRW51bWVyYXRvckdldEJ5VmFsOjpNZXRhZGF0YTo6bV9l
bnVtZXJhdG9yTWV0YWRhdGFbdDVdCisKKyAgICBiYm5lcSB0MCwgY29uc3RleHByIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6T3duU3RydWN0dXJlTW9kZSwgLmdldFNsb3dQYXRoCisKKyAgICBn
ZXQobV9iYXNlLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MSwg
dDAsIC5nZXRTbG93UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwg
dDEpCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVy
ZUlEW3QxXSwgdDIKKyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmdl
dFNsb3dQYXRoCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0MikKKyAgICBsb2Fk
aSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2FjaGVkSW5saW5lQ2FwYWNpdHlbdDFdLCB0
MQorICAgIGJpYWVxIHQyLCB0MSwgLm91dE9mTGluZQorCisgICAgc3hpMnEgdDIsIHQyCisgICAg
bG9hZHEgc2l6ZW9mIEpTT2JqZWN0W3QwLCB0MiwgOF0sIHQyCisgICAgam1wIC5kb25lCisKKy5v
dXRPZkxpbmU6CisgICAgbG9hZHAgSlNPYmplY3Q6Om1fYnV0dGVyZmx5W3QwXSwgdDAKKyAgICBz
dWJpIHQxLCB0MgorICAgIG5lZ2kgdDIKKyAgICBzeGkycSB0MiwgdDIKKyAgICBsb2FkcSBjb25z
dGV4cHIgKChvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkpICogc2l6ZW9m
KEVuY29kZWRKU1ZhbHVlKSlbdDAsIHQyLCA4XSwgdDIKKworLmRvbmU6CisgICAgdmFsdWVQcm9m
aWxlKE9wRW51bWVyYXRvckdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQ1LCB0MikKKyAgICByZXR1cm4o
dDIpCisKKy5nZXRTbG93UGF0aDoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9lbnVtZXJh
dG9yX2dldF9ieV92YWwpCisgICAgZGlzcGF0Y2goKQorZW5kKQorCittYWNybyBoYXNQcm9wZXJ0
eUltcGwob3Bjb2RlU3RydWN0LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJu
LCBzbG93UGF0aCkKKyAgICBtZXRhZGF0YSh0NSwgdDApCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0
LCBtX21vZGUsIHQwKQorICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIG9yYiBidXQgdGhhdCBk
b2Vzbid0IGV4aXN0IGZvciBzb21lIHJlYXNvbi4uLgorICAgIGxvYWRiICVvcGNvZGVTdHJ1Y3Ql
OjpNZXRhZGF0YTo6bV9lbnVtZXJhdG9yTWV0YWRhdGFbdDVdLCB0MQorICAgIG9yaSB0MCwgdDEK
KyAgICBzdG9yZWIgdDEsICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6bV9lbnVtZXJhdG9yTWV0
YWRhdGFbdDVdCisKKyAgICBiYm5lcSB0MCwgY29uc3RleHByIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvcjo6T3duU3RydWN0dXJlTW9kZSwgLmNhbGxTbG93UGF0aAorCisgICAgZ2V0KG1fYmFzZSwg
dDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDEsIHQwLCAuY2FsbFNs
b3dQYXRoKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9lbnVtZXJhdG9yLCB0MSkKKyAgICBs
b2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlSURbdDFdLCB0
MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDBdLCAuY2FsbFNsb3dQYXRo
CisKKyAgICBtb3ZlIFZhbHVlVHJ1ZSwgdDIKKyAgICByZXR1cm4odDIpCisKKy5jYWxsU2xvd1Bh
dGg6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKCkKK2VuZAorCits
bGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfaW5fYnlfdmFsLCBPcEVudW1lcmF0b3JJ
bkJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAg
ICBoYXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9ySW5CeVZhbCwgc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2luX2J5X3ZhbCkKK2Vu
ZCkKKworbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2hhc19vd25fcHJvcGVydHks
IE9wRW51bWVyYXRvckhhc093blByb3BlcnR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKKyAgICBoYXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9ySGFzT3du
UHJvcGVydHksIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3Bh
dGhfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQorZW5kKQogCiBsbGludE9wV2l0aFByb2Zp
bGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9iYXNlLCB0
MSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJi
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtNjQucmIKaW5kZXggNzJiNmMz
Y2ZlYzJmMjBhMTMyZjY1YmQwZmRmNjhhZGIwNWMwODNiOS4uMWFkZDU0MGQ4MzVjMzVlM2Y3Mjdj
ZGQ2MzFjOWI4NjA5ZjEyNjlkYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXJtNjQucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YXJtNjQucmIKQEAgLTg4NCw3ICs4ODQsNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3
aGVuICJtb3ZlIgogICAgICAgICAgICAgaWYgb3BlcmFuZHNbMF0uaW1tZWRpYXRlPwogICAgICAg
ICAgICAgICAgIGVtaXRBUk02NE1vdmVJbW1lZGlhdGUob3BlcmFuZHNbMF0udmFsdWUsIG9wZXJh
bmRzWzFdKQotICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgZWxzaWYgb3BlcmFuZHNbMF0g
IT0gb3BlcmFuZHNbMV0KICAgICAgICAgICAgICAgICBlbWl0QVJNNjQoIm1vdiIsIG9wZXJhbmRz
LCA6cXVhZCkKICAgICAgICAgICAgIGVuZAogICAgICAgICB3aGVuICJtb3ZlZCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKaW5kZXggNDkzNTFjNzdjNTk4MzkwMzQy
ZjllYzYyZTBkZDExNTYzZTFlYzdlOC4uNGJkZGU0ZDA1YjM5NmQ0NzA3Mzc5Y2I2M2VkZDI5YTNm
NmQxMmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVy
Zmx5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKQEAg
LTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJkaWZm
X3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAtc3RhdGljX2Nhc3Q8cHRyZGlm
Zl90PihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKTsgfQotICAgIHN0YXRpYyBpbnQgaW5kZXhPZlBy
b3BlcnR5U3RvcmFnZSgpCisgICAgY29uc3RleHByIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5
U3RvcmFnZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZW9mKEluZGV4aW5nSGVhZGVyKSA9
PSBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggY2E3NDI2NDI1NzFhYzQ0MmIyNGU3
NGVmNDIzNWU4ZTkzZTA0Mjg1Mi4uNGMwZWJkMWY2MTY1NzJkMDhhZmIzODViNmZlNTI5ZWI4Y2I3
M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTY0
LDcgKzE1NjQsNyBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZNJiB2bSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZQogICAgIHJldHVybiBwdXREaXJl
Y3RJbnRlcm5hbDxQdXRNb2RlRGVmaW5lT3duUHJvcGVydHk+KHZtLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCAwLCBzbG90KTsKIH0KIAotaW5saW5lIHNpemVfdCBvZmZzZXRJbkJ1dHRlcmZseShQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluQnV0
dGVyZmx5KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICByZXR1cm4gb2Zmc2V0SW5PdXRP
ZkxpbmVTdG9yYWdlKG9mZnNldCkgKyBCdXR0ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0eVN0b3JhZ2Uo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
T2Zmc2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5o
CmluZGV4IGU3MDcyOWY3ZWMzNjEzNjU4MzE2ZDljOWYzODM0NTNlNGI4Nzg2N2MuLjY5YWViYWFm
Nzg4OWM4ZTBhZGMxMjE1NDQ1YWI5NjQ3M2Q0M2NlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlPZmZzZXQuaApAQCAtMzcsMjYgKzM3LDI2IEBAIHN0YXRp
YyBjb25zdGV4cHIgUHJvcGVydHlPZmZzZXQga25vd25Qb2x5UHJvdG9PZmZzZXQgPSAwOwogc3Rh
dGljX2Fzc2VydChrbm93blBvbHlQcm90b09mZnNldCA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0LCAi
V2UgYXNzdW1lIGluIGFsbCB0aGUgSklUcyB0aGF0IHRoZSBwb2x5IHByb3RvIG9mZnNldCBpcyBh
biBpbmxpbmUgb2Zmc2V0Iik7CiAKIC8vIERlY2xhcmUgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYmVj
YXVzZSB0aGV5IHRlbmQgdG8gZG8gZm9yd2FyZCBjYWxscy4KLWlubGluZSB2b2lkIGNoZWNrT2Zm
c2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zm
c2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJv
cGVydHlPZmZzZXQpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQs
IGludCBpbmxpbmVDYXBhY2l0eSk7Ci1pbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0KTsKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlu
bGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXpl
X3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qg
b2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qg
b2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6ZV90
IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5s
aW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQg
aW5saW5lQ2FwYWNpdHkpOwotCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVydHlPZmZz
ZXQpOworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBp
bnQgaW5saW5lQ2FwYWNpdHkpOworY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0
KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQ
cm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9v
bCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBp
c0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNP
dXRPZkxpbmVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJf
dCBvZmZzZXRJbklubGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGlu
ZSBpbnRwdHJfdCBvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29u
c3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKFByb3BlcnR5
T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNG
b3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBzaXplX3QgbnVt
YmVyT2ZTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5
KTsKKworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBBU1NFUlQob2Zmc2V0ID49
IGludmFsaWRPZmZzZXQpOwogfQogCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCBj
aGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsK
ICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBVTlVTRURfUEFSQU0oaW5saW5lQ2FwYWNp
dHkpOwpAQCAtNjYsNTggKzY2LDU4IEBAIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogICAgICAgICB8fCBpc091dE9mTGlu
ZU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQpOwogICAgIEFT
U0VSVChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpOwogfQogCi1pbmxpbmUgdm9pZCB2YWxpZGF0ZU9m
ZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhw
ciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBp
bmxpbmVDYXBhY2l0eSkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQsIGlubGluZUNhcGFjaXR5
KTsKICAgICBBU1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIGJvb2wg
aXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGJv
b2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZz
ZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0ICE9IGludmFsaWRPZmZzZXQ7CiB9CiAKLWlu
bGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhw
ciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAg
ICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0IDwgZmlyc3RPdXRPZkxp
bmVPZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zm
c2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1
cm4gIWlzSW5saW5lT2Zmc2V0KG9mZnNldCk7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5J
bmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgaW50
cHRyX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAg
ICB2YWxpZGF0ZU9mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc0lubGluZU9mZnNldChvZmZz
ZXQpKTsKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi1pbmxpbmUgc2l6ZV90IG9mZnNldEluT3V0
T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGlu
dHB0cl90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7
CiAgICAgdmFsaWRhdGVPZmZzZXQob2Zmc2V0KTsKICAgICBBU1NFUlQoaXNPdXRPZkxpbmVPZmZz
ZXQob2Zmc2V0KSk7CiAgICAgcmV0dXJuIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNldCAt
IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAtIDE7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5S
ZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5l
IGludHB0cl90IG9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0
KQogewogICAgIGlmIChpc0lubGluZU9mZnNldChvZmZzZXQpKQogICAgICAgICByZXR1cm4gb2Zm
c2V0SW5JbmxpbmVTdG9yYWdlKG9mZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldEluT3V0T2ZMaW5l
U3RvcmFnZShvZmZzZXQpOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xv
dHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSBz
aXplX3QgbnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICBpZiAob2Zmc2V0IDwgZmly
c3RPdXRPZkxpbmVPZmZzZXQpCkBAIC0xMjUsNyArMTI1LDcgQEAgaW5saW5lIHNpemVfdCBudW1i
ZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAg
ICByZXR1cm4gb2Zmc2V0IC0gZmlyc3RPdXRPZkxpbmVPZmZzZXQgKyAxOwogfQogCi1pbmxpbmUg
c2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBp
bnQgaW5saW5lQ2FwYWNpdHkpCitjb25zdGV4cHIgaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3Rz
Rm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQog
ewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgaW5saW5lQ2FwYWNpdHkpOwogICAgIGlmIChvZmZz
ZXQgPCBpbmxpbmVDYXBhY2l0eSkKQEAgLTEzMyw3ICsxMzMsNyBAQCBpbmxpbmUgc2l6ZV90IG51
bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5l
Q2FwYWNpdAogICAgIHJldHVybiBpbmxpbmVDYXBhY2l0eSArIG51bWJlck9mT3V0T2ZMaW5lU2xv
dHNGb3JNYXhPZmZzZXQob2Zmc2V0KTsKIH0KIAotaW5saW5lIFByb3BlcnR5T2Zmc2V0IG9mZnNl
dEZvclByb3BlcnR5TnVtYmVyKGludCBwcm9wZXJ0eU51bWJlciwgaW50IGlubGluZUNhcGFjaXR5
KQorY29uc3RleHByIGlubGluZSBQcm9wZXJ0eU9mZnNldCBvZmZzZXRGb3JQcm9wZXJ0eU51bWJl
cihpbnQgcHJvcGVydHlOdW1iZXIsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBQcm9wZXJ0
eU9mZnNldCBvZmZzZXQgPSBwcm9wZXJ0eU51bWJlcjsKICAgICBpZiAob2Zmc2V0ID49IGlubGlu
ZUNhcGFjaXR5KSB7Cg==
</data>
<flag name="commit-queue"
          id="458242"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435427</attachid>
            <date>2021-08-12 09:08:43 -0700</date>
            <delta_ts>2021-08-23 11:20:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210812120842.patch</filename>
            <type>text/plain</type>
            <size>18884</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MzEzY2E0MjNlOWRhNmE4MmJlNGE1YzA3ZTYwMjc1ZTU4ZmI5N2M3Li40OWViNGRhZmQ2N2UyODhj
ZDZlYTFhMzk2OTE3MjhmY2I3YjllNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MyBAQAorMjAyMS0wOC0xMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkg
ZWxpbWluYXRpb24gdG8gYXJtNjQuIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlCisgICAgICAgIHBy
b3BlcnR5IG9mZnNldCBmdW5jdGlvbnMgYXJlIG5vdyBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1
cm4KKyAgICAgICAgaW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZSB2YWx1ZXMgY2Fu
IGJlIG5lZ2F0aXZlLgorCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JHZXRCeVZh
bCk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAq
IGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9l
bnVtZXJhdG9yX2dldF9ieV92YWwpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2FybTY0LnJiOgorICAgICAgICAqIHJ1bnRpbWUvQnV0dGVyZmx5Lmg6CisgICAgICAg
IChKU0M6OkJ1dHRlcmZseTo6aW5kZXhPZlByb3BlcnR5U3RvcmFnZSk6CisgICAgICAgICogcnVu
dGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpvZmZzZXRJbkJ1dHRlcmZseSk6CisgICAg
ICAgICogcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oOgorICAgICAgICAoSlNDOjpjaGVja09mZnNl
dCk6CisgICAgICAgIChKU0M6OnZhbGlkYXRlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNWYWxp
ZE9mZnNldCk6CisgICAgICAgIChKU0M6OmlzSW5saW5lT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6
aXNPdXRPZkxpbmVPZmZzZXQpOgorICAgICAgICAoSlNDOjpvZmZzZXRJbklubGluZVN0b3JhZ2Up
OgorICAgICAgICAoSlNDOjpvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UpOgorICAgICAgICAoSlND
OjpvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKToKKyAgICAgICAgKEpTQzo6bnVtYmVyT2ZPdXRP
ZkxpbmVTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om51bWJlck9mU2xvdHNGb3JN
YXhPZmZzZXQpOgorICAgICAgICAoSlNDOjpvZmZzZXRGb3JQcm9wZXJ0eU51bWJlcik6CisKIDIw
MjEtMDgtMTAgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2FsbEZyYW1lOjpyZXR1cm5QQyBzaG91bGQgdW50YWcgdGhlIHJldHVybiBhZGRyZXNzIGJl
Zm9yZSBwYXNzaW5nIGl0IHRvIFJldHVybkFkZHJlc3NQdHIKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggZTVhNjFiNmNjZmE2ZTUzNTlm
MzlkZDMwYzkyMGIzOWIzZmYyOGY3MS4uOTQyOWRhOGQ5ZDMyNmI0NjliNWY5Y2RiN2JhYTYzOTQz
NTVmNmM2NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEzNzA2LDcgKzEzNzA2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIG1faml0
LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAg
ICAgIGlmICghaGF2ZVN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUNlbGxHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSksIHN0b3JhZ2VHUFIpOwotICAgICAgICAgICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZG
aXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmly
c3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldElu
QnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7
CiAgICAgICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZUdQUiwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIG9m
ZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJlc3VsdFJlZ3MpOwogICAgICAgICAgICAgICAgIGRvbmVD
YXNlcy5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1MDg3YWI3ZWIwNGI4Y2Vk
ZjFjZWMwMWVjYjcxMDgxZGI5ZGUxYmJmLi5mYzIwYmQ5NDcxMTRiOGEwYjMwZWY5ZTQ4ZDllYzJh
OWJiNzllNjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC0xMzI2NSw3ICsxMzI2NSw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgTFZhbHVl
IHJlYWxJbmRleCA9IG1fb3V0LnNpZ25FeHQzMlRvNjQoCiAgICAgICAgICAgICBtX291dC5uZWco
bV9vdXQuc3ViKGluZGV4LCBpbmxpbmVDYXBhY2l0eSkpKTsKLSAgICAgICAgaW50MzJfdCBvZmZz
ZXRPZkZpcnN0UHJvcGVydHkgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihvZmZzZXRJbkJ1dHRlcmZs
eShmaXJzdE91dE9mTGluZU9mZnNldCkpICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKKyAgICAg
ICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0
dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAg
ICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgIG1fb3V0Lmxv
YWQ2NChtX291dC5iYXNlSW5kZXgobV9oZWFwcy5wcm9wZXJ0aWVzLmF0QW55TnVtYmVyKCksIHN0
b3JhZ2UsIHJlYWxJbmRleCwgU2NhbGVFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSkpKTsK
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCBkMzliYzZkNzUzZDY0ZDZlZjcz
YTc4YTQ1ZjhiOWY2NTgyNTM3MjNmLi40MjQ0MTc2MGZjNDYyYjA5YTBmMzY2ZDY1MGM0MzE4ZGVh
ZDNjMTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcApAQCAtMzA4OCw3ICszMDg4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRv
cl9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
c3ViMzIoQWRkcmVzcyhyZWdUMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRJbmxp
bmVDYXBhY2l0eU9mZnNldCgpKSwgcmVnVDMpOwogICAgIG5lZzMyKHJlZ1QzKTsKICAgICBzaWdu
RXh0ZW5kMzJUb1B0cihyZWdUMywgcmVnVDMpOwotICAgIGludDMyX3Qgb2Zmc2V0T2ZGaXJzdFBy
b3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRP
ZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgY29uc3RleHByIGlu
dHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0
T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAgICAgbG9hZDY0KEJhc2VJ
bmRleChyZWdUMCwgcmVnVDMsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJl
c3VsdEdQUik7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggZTcx
ODNhNzJhMzY4ZjFhMjgwNDY4NGQyYjA3NjQ3ZjIyMDY4ZjEyNS4uZDY0OTg5Yjg5ZTdmYjI5NGM4
MDBmNzI3MDVhNjRiYjYxMWM3NGVlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTk5NCwxMCArMTk5NCw2IEBAIHNs
b3dQYXRoT3AoZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5KQogc2xvd1BhdGhPcChkZWZpbmVfZGF0
YV9wcm9wZXJ0eSkKIHNsb3dQYXRoT3AoZ2V0X2J5X3ZhbF93aXRoX3RoaXMpCiBzbG93UGF0aE9w
KGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQotc2xvd1BhdGhPcChlbnVtZXJhdG9yX25leHQpCi1z
bG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKLXNsb3dQYXRoT3AoZW51bWVyYXRvcl9p
bl9ieV92YWwpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKIAogaWYg
bm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KaW5kZXggMzcxNDgzMWE5Njg4ZjIwZDM4M2E5ZTliNjNiZjFkMjkyZTg2NWJjZi4uYjhh
MGYyMDU0MzkxNGJiZDZhYjVkODMyMTBhZDM3NTc5MzAzMzQ5NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
QEAgLTMwNzksMyArMzA3OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVf
YnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkCiAgICAgZGlzcGF0
Y2goKQogZW5kKQogCitzbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKK3Nsb3dQYXRoT3AoZW51
bWVyYXRvcl9nZXRfYnlfdmFsKQorc2xvd1BhdGhPcChlbnVtZXJhdG9yX2luX2J5X3ZhbCkKK3Ns
b3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA4YTVm
N2QyM2U2NDc2M2JhMjU5ZTFiMmM1ZDg3ZjhkMTZiODI5YWRhLi5lZGY0MThjZjU3YTJmNGEwZDUx
NmY4MzZlM2E3ZWQ3OGQ0MzdmMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNTM0LDYgKzUzNCwxMSBAQCBt
YWNybyBsb2FkVmFyaWFibGUoZ2V0LCBmaWVsZE5hbWUsIHZhbHVlUmVnKQogICAgIGxvYWRxIFtj
ZnIsIHZhbHVlUmVnLCA4XSwgdmFsdWVSZWcKIGVuZAogCittYWNybyBzdG9yZVZhcmlhYmxlKGdl
dCwgZmllbGROYW1lLCBuZXdWYWx1ZVJlZywgc2NyYXRjaFJlZykKKyAgICBnZXQoZmllbGROYW1l
LCBzY3JhdGNoUmVnKQorICAgIHN0b3JlcSBuZXdWYWx1ZVJlZywgW2Nmciwgc2NyYXRjaFJlZywg
OF0KK2VuZAorCiAjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3RlcnMu
IEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCiBtYWNybyBsb2FkQ29uc3RhbnQoc2l6ZSwgaW5kZXgs
IHZhbHVlKQogICAgIG1hY3JvIGxvYWROYXJyb3coKQpAQCAtMzA3Myw4ICszMDc4LDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gKIC5ub3REb25lOgogICAgIG1hY3JvIHN0b3JlVmFsdWVBbmRE
aXNwYXRjaCh2KQogICAgICAgICBtb3ZlIHYsIHQyCi0gICAgICAgIGdldChtX3ZhbHVlLCB0MSkK
LSAgICAgICAgc3RvcmVxIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICAgICAgc3RvcmVWYXJpYWJsZShn
ZXQsIG1fdmFsdWUsIHQyLCB0MSkKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dDAsIDB4YmFkZGIwMWUpCiAgICAgICAgIGRpc3BhdGNoKCkKICAgICBlbmQKQEAgLTMwODksNiAr
MzA5MywxMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJh
dG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBlbmQp
CiAKK2xsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JOZXh0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCkKKyAgICAjIEZJWE1FOiBUaGlzIHdpbGwgYWx3YXlzIGNhbGwg
dGhlIHNsb3cgcGF0aCBvbiBhdCBsZWFzdCB0aGUgZmlyc3QvbGFzdCBleGVjdXRpb24gb2YgRW51
bWVyYXRvck5leHQgZm9yIGFueSBnaXZlbiBsb29wLgorICAgICMgVGhlIHVwc2lkZSBvZiB0aGUg
YWJvdmUgRklYTUUgaXMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHJlY29yZCBhbnkgbWV0YWRhdGEg
b3IgbW9kZSBpbmZvcm1hdGlvbiBoZXJlIGFzIHRoZSBzbG93IHBhdGggd2lsbCBkbyBpdCBmb3Ig
dXMgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gSW5pdE1vZGUvSW5kZXhlZE1vZGUgdG8gT3duU3Ry
dWN0dXJlTW9kZS4KKyAgICBnZXQobV9tb2RlLCB0MCkKKyAgICBiYm5lcSB0MCwgY29uc3RleHBy
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6T3duU3RydWN0dXJlTW9kZSwgLm5leHRTbG93UGF0
aAorCisgICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwo
c2l6ZSwgdDEsIHQwLCAubmV4dFNsb3dQYXRoKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9l
bnVtZXJhdG9yLCB0MSkKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2Fj
aGVkU3RydWN0dXJlSURbdDFdLCB0MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJl
SURbdDBdLCAubmV4dFNsb3dQYXRoCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0
MikKKyAgICBhZGRpIDEsIHQyCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpt
X2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgsIHQzCisgICAgYmlhZXEgdDIsIHQzLCAubmV4dFNs
b3dQYXRoCisKKyAgICBzdG9yZVZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIsIHQzKQorICAgIGxv
YWRwIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9wcm9wZXJ0eU5hbWVzW3QxXSwgdDMKKyAg
ICBsb2FkcCBbdDMsIHQyLCBQdHJTaXplXSwgdDMKKworICAgIHN0b3JlVmFyaWFibGUoZ2V0LCBt
X3Byb3BlcnR5TmFtZSwgdDMsIHQyKQorICAgIGRpc3BhdGNoKCkKKworLm5leHRTbG93UGF0aDoK
KyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX25leHQpCisgICAgZGlzcGF0
Y2goKQorZW5kKQorCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3Zh
bCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorICAgIG1ldGFkYXRhKHQ1LCB0MCkKKworICAgIGxvYWRWYXJpYWJsZShn
ZXQsIG1fbW9kZSwgdDApCisKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvcmIgYnV0IHRo
YXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2FkYiBPcEVudW1lcmF0
b3JHZXRCeVZhbDo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBv
cmkgdDAsIHQxCisgICAgc3RvcmViIHQxLCBPcEVudW1lcmF0b3JHZXRCeVZhbDo6TWV0YWRhdGE6
Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5nZXRTbG93UGF0aAorCisg
ICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwg
dDEsIHQwLCAuZ2V0U2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2VudW1lcmF0
b3IsIHQxKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRTdHJ1
Y3R1cmVJRFt0MV0sIHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0MF0s
IC5nZXRTbG93UGF0aAorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIpCisgICAg
bG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZElubGluZUNhcGFjaXR5W3Qx
XSwgdDEKKyAgICBiaWFlcSB0MiwgdDEsIC5vdXRPZkxpbmUKKworICAgIHN4aTJxIHQyLCB0Mgor
ICAgIGxvYWRxIHNpemVvZiBKU09iamVjdFt0MCwgdDIsIDhdLCB0MgorICAgIGptcCAuZG9uZQor
Cisub3V0T2ZMaW5lOgorICAgIGxvYWRwIEpTT2JqZWN0OjptX2J1dHRlcmZseVt0MF0sIHQwCisg
ICAgc3ViaSB0MSwgdDIKKyAgICBuZWdpIHQyCisgICAgc3hpMnEgdDIsIHQyCisgICAgbG9hZHEg
Y29uc3RleHByICgob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSkpW3QwLCB0MiwgOF0sIHQyCisKKy5kb25lOgorICAgIHZhbHVl
UHJvZmlsZShPcEVudW1lcmF0b3JHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwgdDIpCisgICAgcmV0
dXJuKHQyKQorCisuZ2V0U2xvd1BhdGg6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZW51
bWVyYXRvcl9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKCkKK2VuZCkKKworbWFjcm8gaGFzUHJv
cGVydHlJbXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybiwgc2xvd1BhdGgpCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAgbG9hZFZhcmlhYmxl
KGdldCwgbV9tb2RlLCB0MCkKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvcmIgYnV0IHRo
YXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2FkYiAlb3Bjb2RlU3Ry
dWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBvcmkgdDAs
IHQxCisgICAgc3RvcmViIHQxLCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRv
ck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5jYWxsU2xvd1BhdGgKKworICAgIGdldChtX2Jh
c2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmNh
bGxTbG93UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwgdDEpCisg
ICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZUlEW3Qx
XSwgdDIKKyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93
UGF0aAorCisgICAgbW92ZSBWYWx1ZVRydWUsIHQyCisgICAgcmV0dXJuKHQyKQorCisuY2FsbFNs
b3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgpCitlbmQK
KworbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJh
dG9ySW5CeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwp
CitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3Bl
cnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhh
c093blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xv
d19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2VuZCkKIAogbGxpbnRPcFdpdGhQ
cm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYmFz
ZSwgdDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02
NC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDcy
YjZjM2NmZWMyZjIwYTEzMmY2NWJkMGZkZjY4YWRiMDVjMDgzYjkuLjFhZGQ1NDBkODM1YzM1ZTNm
NzI3Y2RkNjMxYzliODYwOWYxMjY5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FybTY0LnJiCkBAIC04ODQsNyArODg0LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgd2hlbiAibW92ZSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8KICAg
ICAgICAgICAgICAgICBlbWl0QVJNNjRNb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBv
cGVyYW5kc1sxXSkKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRz
WzBdICE9IG9wZXJhbmRzWzFdCiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVy
YW5kcywgOnF1YWQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAibW92ZWQiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CdXR0ZXJmbHkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseS5oCmluZGV4IDQ5MzUxYzc3YzU5ODM5
MDM0MmY5ZWM2MmUwZGQxMTU2M2UxZWM3ZTguLjRiZGRlNGQwNWIzOTZkNDcwNzM3OWNiNjNlZGQy
OWEzZjZkMTJjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1
dHRlcmZseS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseS5o
CkBAIC0yMDksNyArMjA5LDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mUHJvcGVydHlTdG9yYWdlKCkgeyByZXR1cm4gLXN0YXRpY19jYXN0PHB0
cmRpZmZfdD4oc2l6ZW9mKEluZGV4aW5nSGVhZGVyKSk7IH0KLSAgICBzdGF0aWMgaW50IGluZGV4
T2ZQcm9wZXJ0eVN0b3JhZ2UoKQorICAgIGNvbnN0ZXhwciBzdGF0aWMgaW50IGluZGV4T2ZQcm9w
ZXJ0eVN0b3JhZ2UoKQogICAgIHsKICAgICAgICAgQVNTRVJUKHNpemVvZihJbmRleGluZ0hlYWRl
cikgPT0gc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSk7CiAgICAgICAgIHJldHVybiAtMTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IGNhNzQyNjQyNTcxYWM0NDJi
MjRlNzRlZjQyMzVlOGU5M2UwNDI4NTIuLjRjMGViZDFmNjE2NTcyZDA4YWZiMzg1YjZmZTUyOWVi
OGNiNzNkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApAQCAt
MTU2NCw3ICsxNTY0LDcgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OnB1dERpcmVjdChWTSYgdm0s
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUKICAgICByZXR1cm4gcHV0
RGlyZWN0SW50ZXJuYWw8UHV0TW9kZURlZmluZU93blByb3BlcnR5Pih2bSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgMCwgc2xvdCk7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5CdXR0ZXJmbHko
UHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJ
bkJ1dHRlcmZseShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgcmV0dXJuIG9mZnNldElu
T3V0T2ZMaW5lU3RvcmFnZShvZmZzZXQpICsgQnV0dGVyZmx5OjppbmRleE9mUHJvcGVydHlTdG9y
YWdlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9w
ZXJ0eU9mZnNldC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlPZmZz
ZXQuaAppbmRleCBlNzA3MjlmN2VjMzYxMzY1ODMxNmQ5YzlmMzgzNDUzZTRiODc4NjdjLi42OWFl
YmFhZjc4ODljOGUwYWRjMTIxNTQ0NWFiOTY0NzNkNDNjZTYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgKQEAgLTM3LDI2ICszNywyNiBAQCBz
dGF0aWMgY29uc3RleHByIFByb3BlcnR5T2Zmc2V0IGtub3duUG9seVByb3RvT2Zmc2V0ID0gMDsK
IHN0YXRpY19hc3NlcnQoa25vd25Qb2x5UHJvdG9PZmZzZXQgPCBmaXJzdE91dE9mTGluZU9mZnNl
dCwgIldlIGFzc3VtZSBpbiBhbGwgdGhlIEpJVHMgdGhhdCB0aGUgcG9seSBwcm90byBvZmZzZXQg
aXMgYW4gaW5saW5lIG9mZnNldCIpOwogCiAvLyBEZWNsYXJlIGFsbCBvZiB0aGUgZnVuY3Rpb25z
IGJlY2F1c2UgdGhleSB0ZW5kIHRvIGRvIGZvcndhcmQgY2FsbHMuCi1pbmxpbmUgdm9pZCBjaGVj
a09mZnNldChQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0
eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKLWlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0
KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zm
c2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9w
ZXJ0eU9mZnNldCk7Ci1pbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCk7
Ci1pbmxpbmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUg
c2l6ZV90IG9mZnNldEluSW5saW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6
ZV90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6
ZV90IG9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHNp
emVfdCBudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsK
LWlubGluZSBzaXplX3QgbnVtYmVyT2ZTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCwg
aW50IGlubGluZUNhcGFjaXR5KTsKLQotaW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNl
dCwgaW50IGlubGluZUNhcGFjaXR5KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9m
ZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZz
ZXQoUHJvcGVydHlPZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSk7Citjb25zdGV4cHIgaW5saW5l
IGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIGJv
b2wgaXNJbmxpbmVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBib29s
IGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgaW50
cHRyX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBp
bmxpbmUgaW50cHRyX3Qgb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsK
K2NvbnN0ZXhwciBpbmxpbmUgaW50cHRyX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9w
ZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIHNpemVfdCBudW1iZXJPZk91dE9mTGluZVNs
b3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgc2l6ZV90
IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQsIGludCBpbmxpbmVDYXBh
Y2l0eSk7CisKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CiAgICAgQVNTRVJUKG9mZnNl
dCA+PSBpbnZhbGlkT2Zmc2V0KTsKIH0KIAotaW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitjb25zdGV4cHIgaW5saW5lIHZv
aWQgY2hlY2tPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKG9mZnNldCk7CiAgICAgVU5VU0VEX1BBUkFNKGlubGluZUNh
cGFjaXR5KTsKQEAgLTY2LDU4ICs2Niw1OCBAQCBpbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKICAgICAgICAgfHwgaXNPdXRP
ZkxpbmVPZmZzZXQob2Zmc2V0KSk7CiB9CiAKLWlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNl
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAg
ICBBU1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIHZvaWQgdmFsaWRh
dGVPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitjb25z
dGV4cHIgaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBp
bnQgaW5saW5lQ2FwYWNpdHkpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0LCBpbmxpbmVDYXBh
Y2l0eSk7CiAgICAgQVNTRVJUKGlzVmFsaWRPZmZzZXQob2Zmc2V0KSk7CiB9CiAKLWlubGluZSBi
b29sIGlzVmFsaWRPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGlu
ZSBib29sIGlzVmFsaWRPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGNoZWNr
T2Zmc2V0KG9mZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldCAhPSBpbnZhbGlkT2Zmc2V0OwogfQog
Ci1pbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25z
dGV4cHIgaW5saW5lIGJvb2wgaXNJbmxpbmVPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQog
ewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldCA8IGZpcnN0T3V0
T2ZMaW5lT2Zmc2V0OwogfQogCi1pbmxpbmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQcm9wZXJ0
eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNPdXRPZkxpbmVPZmZzZXQo
UHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCk7CiAgICAg
cmV0dXJuICFpc0lubGluZU9mZnNldChvZmZzZXQpOwogfQogCi1pbmxpbmUgc2l6ZV90IG9mZnNl
dEluSW5saW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5l
IGludHB0cl90IG9mZnNldEluSW5saW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7
CiAgICAgdmFsaWRhdGVPZmZzZXQob2Zmc2V0KTsKICAgICBBU1NFUlQoaXNJbmxpbmVPZmZzZXQo
b2Zmc2V0KSk7CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIAotaW5saW5lIHNpemVfdCBvZmZzZXRJ
bk91dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGlu
ZSBpbnRwdHJfdCBvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0
KQogewogICAgIHZhbGlkYXRlT2Zmc2V0KG9mZnNldCk7CiAgICAgQVNTRVJUKGlzT3V0T2ZMaW5l
T2Zmc2V0KG9mZnNldCkpOwogICAgIHJldHVybiAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihvZmZz
ZXQgLSBmaXJzdE91dE9mTGluZU9mZnNldCkgLSAxOwogfQogCi1pbmxpbmUgc2l6ZV90IG9mZnNl
dEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlu
bGluZSBpbnRwdHJfdCBvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCkKIHsKICAgICBpZiAoaXNJbmxpbmVPZmZzZXQob2Zmc2V0KSkKICAgICAgICAgcmV0dXJu
IG9mZnNldEluSW5saW5lU3RvcmFnZShvZmZzZXQpOwogICAgIHJldHVybiBvZmZzZXRJbk91dE9m
TGluZVN0b3JhZ2Uob2Zmc2V0KTsKIH0KIAotaW5saW5lIHNpemVfdCBudW1iZXJPZk91dE9mTGlu
ZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxp
bmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZz
ZXQgb2Zmc2V0KQogewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCk7CiAgICAgaWYgKG9mZnNldCA8
IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KQpAQCAtMTI1LDcgKzEyNSw3IEBAIGlubGluZSBzaXplX3Qg
bnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQp
CiAgICAgcmV0dXJuIG9mZnNldCAtIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0ICsgMTsKIH0KIAotaW5s
aW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCwgaW50IGlubGluZUNhcGFjaXR5KQorY29uc3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZT
bG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0
eSkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQsIGlubGluZUNhcGFjaXR5KTsKICAgICBpZiAo
b2Zmc2V0IDwgaW5saW5lQ2FwYWNpdHkpCkBAIC0xMzMsNyArMTMzLDcgQEAgaW5saW5lIHNpemVf
dCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlu
bGluZUNhcGFjaXQKICAgICByZXR1cm4gaW5saW5lQ2FwYWNpdHkgKyBudW1iZXJPZk91dE9mTGlu
ZVNsb3RzRm9yTWF4T2Zmc2V0KG9mZnNldCk7CiB9CiAKLWlubGluZSBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXRGb3JQcm9wZXJ0eU51bWJlcihpbnQgcHJvcGVydHlOdW1iZXIsIGludCBpbmxpbmVDYXBh
Y2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgUHJvcGVydHlPZmZzZXQgb2Zmc2V0Rm9yUHJvcGVydHlO
dW1iZXIoaW50IHByb3BlcnR5TnVtYmVyLCBpbnQgaW5saW5lQ2FwYWNpdHkpCiB7CiAgICAgUHJv
cGVydHlPZmZzZXQgb2Zmc2V0ID0gcHJvcGVydHlOdW1iZXI7CiAgICAgaWYgKG9mZnNldCA+PSBp
bmxpbmVDYXBhY2l0eSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436213</attachid>
            <date>2021-08-23 11:20:04 -0700</date>
            <delta_ts>2021-08-23 11:56:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210823142003.patch</filename>
            <type>text/plain</type>
            <size>20086</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTgyMmE3MWQ5NDM5YTAzOTllZjQwNDhjZDNiODhlNjc4NWIyNzgyLi4wYmZmZWQ5MGYwMGYzOTFl
MzliYmFlZDBkNjg0MmM1MGUxMDNjOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0wOC0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkg
ZWxpbWluYXRpb24gdG8gYXJtNjQuIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlCisgICAgICAgIHBy
b3BlcnR5IG9mZnNldCBmdW5jdGlvbnMgYXJlIG5vdyBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1
cm4KKyAgICAgICAgaW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZSB2YWx1ZXMgY2Fu
IGJlIG5lZ2F0aXZlLgorCisgICAgICAgIFRoZXJlJ3MgYWxzbyBhIG1pbm9yIGZpeCB0byBkaXNh
YmxlIE1TVkMncyBzaWduZWQgdG8gdW5zaWduZWQKKyAgICAgICAgY2FzdCB3YXJuaW5nIGZvciBM
TEludE9mZnNldHNFeHRyYWN0b3IgYXMgd2UgZG9uJ3QgY2FyZSBhYm91dAorICAgICAgICBzaWdu
ZWRuZXNzIGZvciBleHRyYWN0aW5nIGNvbnN0YW50cy4KKworICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2V0QnlWYWwpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0
cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsKToKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmI6CisgICAgICAgICogcnVudGltZS9CdXR0ZXJm
bHkuaDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjppbmRleE9mUHJvcGVydHlTdG9yYWdlKToK
KyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Om9mZnNldEluQnV0
dGVyZmx5KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5T2Zmc2V0Lmg6CisgICAgICAgIChK
U0M6OmNoZWNrT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVPZmZzZXQpOgorICAgICAg
ICAoSlNDOjppc1ZhbGlkT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNJbmxpbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjppc091dE9mTGluZU9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldElu
SW5saW5lU3RvcmFnZSk6CisgICAgICAgIChKU0M6Om9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZSk6
CisgICAgICAgIChKU0M6Om9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UpOgorICAgICAgICAoSlND
OjpudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6bnVt
YmVyT2ZTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldEZvclByb3BlcnR5
TnVtYmVyKToKKwogMjAyMS0wOC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCBzaG91bGQg
bm90IGxvYWQgaW5kZXhpbmdUeXBlIHVubmVjZXNzYXJpbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggY2ZhYzE3ZWMwOWNmY2JmMDg5
MDk3NjMzZjA3Y2EwM2FiMjMyZTAxYy4uMGYwYzlkZTQzNjYxZjlkOWU0NzliNjQxZjc3ZmJlOTZl
ZmQ0NjFkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEzNjQ3LDcgKzEzNjQ3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIG1faml0
LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAg
ICAgIGlmICghaGF2ZVN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUNlbGxHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSksIHN0b3JhZ2VHUFIpOwotICAgICAgICAgICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZG
aXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmly
c3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldElu
QnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7
CiAgICAgICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZUdQUiwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIG9m
ZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJlc3VsdFJlZ3MpOwogICAgICAgICAgICAgICAgIGRvbmVD
YXNlcy5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1YTNlOThmNzUzNzAxZDNi
MzRmODRiOTgwODNkMjRkYWU4ZWY3MTAwLi5kYjU3NWQwYzllYWFiNTc4YmRhMjAzODAxNzVhM2Qw
M2VmYjAzNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC0xMzI1OCw3ICsxMzI1OCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgTFZhbHVl
IHJlYWxJbmRleCA9IG1fb3V0LnNpZ25FeHQzMlRvNjQoCiAgICAgICAgICAgICBtX291dC5uZWco
bV9vdXQuc3ViKGluZGV4LCBpbmxpbmVDYXBhY2l0eSkpKTsKLSAgICAgICAgaW50MzJfdCBvZmZz
ZXRPZkZpcnN0UHJvcGVydHkgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihvZmZzZXRJbkJ1dHRlcmZs
eShmaXJzdE91dE9mTGluZU9mZnNldCkpICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKKyAgICAg
ICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0
dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAg
ICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgIG1fb3V0Lmxv
YWQ2NChtX291dC5iYXNlSW5kZXgobV9oZWFwcy5wcm9wZXJ0aWVzLmF0QW55TnVtYmVyKCksIHN0
b3JhZ2UsIHJlYWxJbmRleCwgU2NhbGVFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSkpKTsK
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAzZDFkODRmYzgyMDJiZjg4OWJk
ZjIwZWEzMzhkZjhhOTExMDkwNjNiLi44NzMyMDk3MjJlYjEwM2VhMWY2NDFlMGNlMjk5MWIxMTlh
Y2UyMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcApAQCAtMzA4OSw3ICszMDg5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRv
cl9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
c3ViMzIoQWRkcmVzcyhyZWdUMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRJbmxp
bmVDYXBhY2l0eU9mZnNldCgpKSwgcmVnVDMpOwogICAgIG5lZzMyKHJlZ1QzKTsKICAgICBzaWdu
RXh0ZW5kMzJUb1B0cihyZWdUMywgcmVnVDMpOwotICAgIGludDMyX3Qgb2Zmc2V0T2ZGaXJzdFBy
b3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRP
ZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgY29uc3RleHByIGlu
dHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0
T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAgICAgbG9hZDY0KEJhc2VJ
bmRleChyZWdUMCwgcmVnVDMsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJl
c3VsdEdQUik7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggMTdm
YjdiYmJiNjdiNmIyYTFmZGM5Mjg4ZWE5ZmJjMzM0N2M0NzVlYy4uMTVmZjg5NmQzY2MxZTRjZTEz
MTM1N2IwNDJhNDNjY2Q0OTE3NDFiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTk5NiwxMCArMTk5Niw2IEBAIHNs
b3dQYXRoT3AoZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5KQogc2xvd1BhdGhPcChkZWZpbmVfZGF0
YV9wcm9wZXJ0eSkKIHNsb3dQYXRoT3AoZ2V0X2J5X3ZhbF93aXRoX3RoaXMpCiBzbG93UGF0aE9w
KGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQotc2xvd1BhdGhPcChlbnVtZXJhdG9yX25leHQpCi1z
bG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKLXNsb3dQYXRoT3AoZW51bWVyYXRvcl9p
bl9ieV92YWwpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKIAogaWYg
bm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KaW5kZXggMzcxNDgzMWE5Njg4ZjIwZDM4M2E5ZTliNjNiZjFkMjkyZTg2NWJjZi4uYjhh
MGYyMDU0MzkxNGJiZDZhYjVkODMyMTBhZDM3NTc5MzAzMzQ5NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
QEAgLTMwNzksMyArMzA3OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVf
YnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkCiAgICAgZGlzcGF0
Y2goKQogZW5kKQogCitzbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKK3Nsb3dQYXRoT3AoZW51
bWVyYXRvcl9nZXRfYnlfdmFsKQorc2xvd1BhdGhPcChlbnVtZXJhdG9yX2luX2J5X3ZhbCkKK3Ns
b3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA4YTVm
N2QyM2U2NDc2M2JhMjU5ZTFiMmM1ZDg3ZjhkMTZiODI5YWRhLi5lZGY0MThjZjU3YTJmNGEwZDUx
NmY4MzZlM2E3ZWQ3OGQ0MzdmMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNTM0LDYgKzUzNCwxMSBAQCBt
YWNybyBsb2FkVmFyaWFibGUoZ2V0LCBmaWVsZE5hbWUsIHZhbHVlUmVnKQogICAgIGxvYWRxIFtj
ZnIsIHZhbHVlUmVnLCA4XSwgdmFsdWVSZWcKIGVuZAogCittYWNybyBzdG9yZVZhcmlhYmxlKGdl
dCwgZmllbGROYW1lLCBuZXdWYWx1ZVJlZywgc2NyYXRjaFJlZykKKyAgICBnZXQoZmllbGROYW1l
LCBzY3JhdGNoUmVnKQorICAgIHN0b3JlcSBuZXdWYWx1ZVJlZywgW2Nmciwgc2NyYXRjaFJlZywg
OF0KK2VuZAorCiAjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3RlcnMu
IEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCiBtYWNybyBsb2FkQ29uc3RhbnQoc2l6ZSwgaW5kZXgs
IHZhbHVlKQogICAgIG1hY3JvIGxvYWROYXJyb3coKQpAQCAtMzA3Myw4ICszMDc4LDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gKIC5ub3REb25lOgogICAgIG1hY3JvIHN0b3JlVmFsdWVBbmRE
aXNwYXRjaCh2KQogICAgICAgICBtb3ZlIHYsIHQyCi0gICAgICAgIGdldChtX3ZhbHVlLCB0MSkK
LSAgICAgICAgc3RvcmVxIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICAgICAgc3RvcmVWYXJpYWJsZShn
ZXQsIG1fdmFsdWUsIHQyLCB0MSkKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dDAsIDB4YmFkZGIwMWUpCiAgICAgICAgIGRpc3BhdGNoKCkKICAgICBlbmQKQEAgLTMwODksNiAr
MzA5MywxMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJh
dG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBlbmQp
CiAKK2xsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JOZXh0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCkKKyAgICAjIEZJWE1FOiBUaGlzIHdpbGwgYWx3YXlzIGNhbGwg
dGhlIHNsb3cgcGF0aCBvbiBhdCBsZWFzdCB0aGUgZmlyc3QvbGFzdCBleGVjdXRpb24gb2YgRW51
bWVyYXRvck5leHQgZm9yIGFueSBnaXZlbiBsb29wLgorICAgICMgVGhlIHVwc2lkZSBvZiB0aGUg
YWJvdmUgRklYTUUgaXMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHJlY29yZCBhbnkgbWV0YWRhdGEg
b3IgbW9kZSBpbmZvcm1hdGlvbiBoZXJlIGFzIHRoZSBzbG93IHBhdGggd2lsbCBkbyBpdCBmb3Ig
dXMgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gSW5pdE1vZGUvSW5kZXhlZE1vZGUgdG8gT3duU3Ry
dWN0dXJlTW9kZS4KKyAgICBnZXQobV9tb2RlLCB0MCkKKyAgICBiYm5lcSB0MCwgY29uc3RleHBy
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6T3duU3RydWN0dXJlTW9kZSwgLm5leHRTbG93UGF0
aAorCisgICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwo
c2l6ZSwgdDEsIHQwLCAubmV4dFNsb3dQYXRoKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9l
bnVtZXJhdG9yLCB0MSkKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2Fj
aGVkU3RydWN0dXJlSURbdDFdLCB0MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJl
SURbdDBdLCAubmV4dFNsb3dQYXRoCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0
MikKKyAgICBhZGRpIDEsIHQyCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpt
X2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgsIHQzCisgICAgYmlhZXEgdDIsIHQzLCAubmV4dFNs
b3dQYXRoCisKKyAgICBzdG9yZVZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIsIHQzKQorICAgIGxv
YWRwIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9wcm9wZXJ0eU5hbWVzW3QxXSwgdDMKKyAg
ICBsb2FkcCBbdDMsIHQyLCBQdHJTaXplXSwgdDMKKworICAgIHN0b3JlVmFyaWFibGUoZ2V0LCBt
X3Byb3BlcnR5TmFtZSwgdDMsIHQyKQorICAgIGRpc3BhdGNoKCkKKworLm5leHRTbG93UGF0aDoK
KyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX25leHQpCisgICAgZGlzcGF0
Y2goKQorZW5kKQorCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3Zh
bCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorICAgIG1ldGFkYXRhKHQ1LCB0MCkKKworICAgIGxvYWRWYXJpYWJsZShn
ZXQsIG1fbW9kZSwgdDApCisKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvcmIgYnV0IHRo
YXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2FkYiBPcEVudW1lcmF0
b3JHZXRCeVZhbDo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBv
cmkgdDAsIHQxCisgICAgc3RvcmViIHQxLCBPcEVudW1lcmF0b3JHZXRCeVZhbDo6TWV0YWRhdGE6
Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5nZXRTbG93UGF0aAorCisg
ICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwg
dDEsIHQwLCAuZ2V0U2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2VudW1lcmF0
b3IsIHQxKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRTdHJ1
Y3R1cmVJRFt0MV0sIHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0MF0s
IC5nZXRTbG93UGF0aAorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIpCisgICAg
bG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZElubGluZUNhcGFjaXR5W3Qx
XSwgdDEKKyAgICBiaWFlcSB0MiwgdDEsIC5vdXRPZkxpbmUKKworICAgIHN4aTJxIHQyLCB0Mgor
ICAgIGxvYWRxIHNpemVvZiBKU09iamVjdFt0MCwgdDIsIDhdLCB0MgorICAgIGptcCAuZG9uZQor
Cisub3V0T2ZMaW5lOgorICAgIGxvYWRwIEpTT2JqZWN0OjptX2J1dHRlcmZseVt0MF0sIHQwCisg
ICAgc3ViaSB0MSwgdDIKKyAgICBuZWdpIHQyCisgICAgc3hpMnEgdDIsIHQyCisgICAgbG9hZHEg
Y29uc3RleHByICgob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSkpW3QwLCB0MiwgOF0sIHQyCisKKy5kb25lOgorICAgIHZhbHVl
UHJvZmlsZShPcEVudW1lcmF0b3JHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwgdDIpCisgICAgcmV0
dXJuKHQyKQorCisuZ2V0U2xvd1BhdGg6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZW51
bWVyYXRvcl9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKCkKK2VuZCkKKworbWFjcm8gaGFzUHJv
cGVydHlJbXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybiwgc2xvd1BhdGgpCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAgbG9hZFZhcmlhYmxl
KGdldCwgbV9tb2RlLCB0MCkKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvcmIgYnV0IHRo
YXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2FkYiAlb3Bjb2RlU3Ry
dWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBvcmkgdDAs
IHQxCisgICAgc3RvcmViIHQxLCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRv
ck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5jYWxsU2xvd1BhdGgKKworICAgIGdldChtX2Jh
c2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmNh
bGxTbG93UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwgdDEpCisg
ICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZUlEW3Qx
XSwgdDIKKyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93
UGF0aAorCisgICAgbW92ZSBWYWx1ZVRydWUsIHQyCisgICAgcmV0dXJuKHQyKQorCisuY2FsbFNs
b3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgpCitlbmQK
KworbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJh
dG9ySW5CeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwp
CitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3Bl
cnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhh
c093blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xv
d19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2VuZCkKIAogbGxpbnRPcFdpdGhQ
cm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYmFz
ZSwgdDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02
NC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDcy
YjZjM2NmZWMyZjIwYTEzMmY2NWJkMGZkZjY4YWRiMDVjMDgzYjkuLjFhZGQ1NDBkODM1YzM1ZTNm
NzI3Y2RkNjMxYzliODYwOWYxMjY5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FybTY0LnJiCkBAIC04ODQsNyArODg0LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgd2hlbiAibW92ZSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8KICAg
ICAgICAgICAgICAgICBlbWl0QVJNNjRNb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBv
cGVyYW5kc1sxXSkKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRz
WzBdICE9IG9wZXJhbmRzWzFdCiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVy
YW5kcywgOnF1YWQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAibW92ZWQiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRf
ZXh0cmFjdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVf
b2Zmc2V0X2V4dHJhY3Rvci5yYgppbmRleCA0NTRkYjJiMTdjY2VlMThjZjA0NjQ5ZWRlNjFiZGQ4
OTE1ZGJiZjNkLi5jN2I5MWUyYmQ3NDU5NjMxMmU2MTgwMTdlZDEwMWMzMWE4NzE4ZTNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRf
ZXh0cmFjdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVy
YXRlX29mZnNldF9leHRyYWN0b3IucmIKQEAgLTkyLDYgKzkyLDEwIEBAIEZpbGUub3BlbihvdXRw
dXRGbG5tLCAidyIpIHsKICAgICAgICAgICAgIGNvbnN0c0xpc3QgPSBjb25zdHNMaXN0KGxvd0xl
dmVsQVNUKQogCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNl
dHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgeworICAgICAgICAgICAgICAgIGlmICRlbWl0
V2luQXNtCisgICAgICAgICAgICAgICAgICAgICMgV2luZG93cyBjb21wbGFpbnMgYWJvdXQgc2ln
bmVkIGludGVnZXJzIGJlaW5nIGNhc3QgdG8gdW5zaWduZWQgYnV0IHdlIGp1c3Qgd2FudCB0aGUg
Yml0cy4KKyAgICAgICAgICAgICAgICAgICAgb3V0cC5wdXRzICJcI3ByYWdtYSB3YXJuaW5nKGRp
c2FibGU6NDMwOCkiCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICAgICAgY29uc3Rz
TGlzdC5lYWNoX3dpdGhfaW5kZXggewogICAgICAgICAgICAgICAgICAgICB8IGNvbnN0LCBpbmRl
eCB8CiAgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAiY29uc3RleHByIGludDY0X3QgY29u
c3RWYWx1ZSN7aW5kZXh9ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oI3tjb25zdC52YWx1ZX0pOyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKaW5kZXggNDkzNTFjNzdj
NTk4MzkwMzQyZjllYzYyZTBkZDExNTYzZTFlYzdlOC4uNGJkZGU0ZDA1YjM5NmQ0NzA3Mzc5Y2I2
M2VkZDI5YTNmNmQxMmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQnV0dGVyZmx5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVy
Zmx5LmgKQEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIHN0YXRp
YyBwdHJkaWZmX3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAtc3RhdGljX2Nh
c3Q8cHRyZGlmZl90PihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKTsgfQotICAgIHN0YXRpYyBpbnQg
aW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCisgICAgY29uc3RleHByIHN0YXRpYyBpbnQgaW5kZXhP
ZlByb3BlcnR5U3RvcmFnZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZW9mKEluZGV4aW5n
SGVhZGVyKSA9PSBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgcmV0dXJuIC0xOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggY2E3NDI2NDI1NzFh
YzQ0MmIyNGU3NGVmNDIzNWU4ZTkzZTA0Mjg1Mi4uNGMwZWJkMWY2MTY1NzJkMDhhZmIzODViNmZl
NTI5ZWI4Y2I3M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5o
CkBAIC0xNTY0LDcgKzE1NjQsNyBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZN
JiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZQogICAgIHJldHVy
biBwdXREaXJlY3RJbnRlcm5hbDxQdXRNb2RlRGVmaW5lT3duUHJvcGVydHk+KHZtLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCAwLCBzbG90KTsKIH0KIAotaW5saW5lIHNpemVfdCBvZmZzZXRJbkJ1dHRl
cmZseShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9m
ZnNldEluQnV0dGVyZmx5KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICByZXR1cm4gb2Zm
c2V0SW5PdXRPZkxpbmVTdG9yYWdlKG9mZnNldCkgKyBCdXR0ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0
eVN0b3JhZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3BlcnR5T2Zmc2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU9mZnNldC5oCmluZGV4IGU3MDcyOWY3ZWMzNjEzNjU4MzE2ZDljOWYzODM0NTNlNGI4Nzg2N2Mu
LjY5YWViYWFmNzg4OWM4ZTBhZGMxMjE1NDQ1YWI5NjQ3M2Q0M2NlNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlPZmZzZXQuaApAQCAtMzcsMjYgKzM3LDI2
IEBAIHN0YXRpYyBjb25zdGV4cHIgUHJvcGVydHlPZmZzZXQga25vd25Qb2x5UHJvdG9PZmZzZXQg
PSAwOwogc3RhdGljX2Fzc2VydChrbm93blBvbHlQcm90b09mZnNldCA8IGZpcnN0T3V0T2ZMaW5l
T2Zmc2V0LCAiV2UgYXNzdW1lIGluIGFsbCB0aGUgSklUcyB0aGF0IHRoZSBwb2x5IHByb3RvIG9m
ZnNldCBpcyBhbiBpbmxpbmUgb2Zmc2V0Iik7CiAKIC8vIERlY2xhcmUgYWxsIG9mIHRoZSBmdW5j
dGlvbnMgYmVjYXVzZSB0aGV5IHRlbmQgdG8gZG8gZm9yd2FyZCBjYWxscy4KLWlubGluZSB2b2lk
IGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVP
ZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVy
dHlPZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSk7Ci1pbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0
KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zm
c2V0KTsKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlu
bGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGlu
ZSBzaXplX3Qgb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGlu
ZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxp
bmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZz
ZXQpOwotaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zm
c2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJv
cGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOworY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlk
YXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0
ZU9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKK2NvbnN0ZXhwciBp
bmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxp
bmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5l
IGJvb2wgaXNPdXRPZkxpbmVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGlu
ZSBpbnRwdHJfdCBvZmZzZXRJbklubGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3Rl
eHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZz
ZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdl
KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZM
aW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBz
aXplX3QgbnVtYmVyT2ZTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGlu
ZUNhcGFjaXR5KTsKKworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0IG9mZnNldCkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBBU1NFUlQo
b2Zmc2V0ID49IGludmFsaWRPZmZzZXQpOwogfQogCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxp
bmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBh
Y2l0eSkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBVTlVTRURfUEFSQU0oaW5s
aW5lQ2FwYWNpdHkpOwpAQCAtNjYsNTggKzY2LDU4IEBAIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0
KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogICAgICAgICB8fCBp
c091dE9mTGluZU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZz
ZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRl
T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQp
OwogICAgIEFTU0VSVChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpOwogfQogCi1pbmxpbmUgdm9pZCB2
YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkK
K2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZz
ZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQsIGlubGlu
ZUNhcGFjaXR5KTsKICAgICBBU1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5s
aW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIg
aW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAg
Y2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0ICE9IGludmFsaWRPZmZzZXQ7
CiB9CiAKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkK
K2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZz
ZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0IDwgZmly
c3RPdXRPZkxpbmVPZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc091dE9mTGluZU9m
ZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsK
ICAgICByZXR1cm4gIWlzSW5saW5lT2Zmc2V0KG9mZnNldCk7CiB9CiAKLWlubGluZSBzaXplX3Qg
b2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBp
bmxpbmUgaW50cHRyX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCkKIHsKICAgICB2YWxpZGF0ZU9mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc0lubGluZU9m
ZnNldChvZmZzZXQpKTsKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi1pbmxpbmUgc2l6ZV90IG9m
ZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIg
aW5saW5lIGludHB0cl90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQpCiB7CiAgICAgdmFsaWRhdGVPZmZzZXQob2Zmc2V0KTsKICAgICBBU1NFUlQoaXNPdXRP
ZkxpbmVPZmZzZXQob2Zmc2V0KSk7CiAgICAgcmV0dXJuIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+
KG9mZnNldCAtIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAtIDE7CiB9CiAKLWlubGluZSBzaXplX3Qg
b2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4
cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZz
ZXQgb2Zmc2V0KQogewogICAgIGlmIChpc0lubGluZU9mZnNldChvZmZzZXQpKQogICAgICAgICBy
ZXR1cm4gb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKG9mZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldElu
T3V0T2ZMaW5lU3RvcmFnZShvZmZzZXQpOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0
T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHBy
IGlubGluZSBzaXplX3QgbnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0
eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICBpZiAob2Zm
c2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQpCkBAIC0xMjUsNyArMTI1LDcgQEAgaW5saW5lIHNp
emVfdCBudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCkKICAgICByZXR1cm4gb2Zmc2V0IC0gZmlyc3RPdXRPZkxpbmVPZmZzZXQgKyAxOwogfQog
Ci1pbmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQg
b2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitjb25zdGV4cHIgaW5saW5lIHNpemVfdCBudW1i
ZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNh
cGFjaXR5KQogewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgaW5saW5lQ2FwYWNpdHkpOwogICAg
IGlmIChvZmZzZXQgPCBpbmxpbmVDYXBhY2l0eSkKQEAgLTEzMyw3ICsxMzMsNyBAQCBpbmxpbmUg
c2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBp
bnQgaW5saW5lQ2FwYWNpdAogICAgIHJldHVybiBpbmxpbmVDYXBhY2l0eSArIG51bWJlck9mT3V0
T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQob2Zmc2V0KTsKIH0KIAotaW5saW5lIFByb3BlcnR5T2Zm
c2V0IG9mZnNldEZvclByb3BlcnR5TnVtYmVyKGludCBwcm9wZXJ0eU51bWJlciwgaW50IGlubGlu
ZUNhcGFjaXR5KQorY29uc3RleHByIGlubGluZSBQcm9wZXJ0eU9mZnNldCBvZmZzZXRGb3JQcm9w
ZXJ0eU51bWJlcihpbnQgcHJvcGVydHlOdW1iZXIsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAg
ICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBwcm9wZXJ0eU51bWJlcjsKICAgICBpZiAob2Zmc2V0
ID49IGlubGluZUNhcGFjaXR5KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436217</attachid>
            <date>2021-08-23 11:57:01 -0700</date>
            <delta_ts>2021-08-23 12:30:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210823145700.patch</filename>
            <type>text/plain</type>
            <size>20113</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTgyMmE3MWQ5NDM5YTAzOTllZjQwNDhjZDNiODhlNjc4NWIyNzgyLi4wYmZmZWQ5MGYwMGYzOTFl
MzliYmFlZDBkNjg0MmM1MGUxMDNjOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0wOC0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkg
ZWxpbWluYXRpb24gdG8gYXJtNjQuIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlCisgICAgICAgIHBy
b3BlcnR5IG9mZnNldCBmdW5jdGlvbnMgYXJlIG5vdyBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1
cm4KKyAgICAgICAgaW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZSB2YWx1ZXMgY2Fu
IGJlIG5lZ2F0aXZlLgorCisgICAgICAgIFRoZXJlJ3MgYWxzbyBhIG1pbm9yIGZpeCB0byBkaXNh
YmxlIE1TVkMncyBzaWduZWQgdG8gdW5zaWduZWQKKyAgICAgICAgY2FzdCB3YXJuaW5nIGZvciBM
TEludE9mZnNldHNFeHRyYWN0b3IgYXMgd2UgZG9uJ3QgY2FyZSBhYm91dAorICAgICAgICBzaWdu
ZWRuZXNzIGZvciBleHRyYWN0aW5nIGNvbnN0YW50cy4KKworICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2V0QnlWYWwpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0
cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsKToKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmI6CisgICAgICAgICogcnVudGltZS9CdXR0ZXJm
bHkuaDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjppbmRleE9mUHJvcGVydHlTdG9yYWdlKToK
KyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Om9mZnNldEluQnV0
dGVyZmx5KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5T2Zmc2V0Lmg6CisgICAgICAgIChK
U0M6OmNoZWNrT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVPZmZzZXQpOgorICAgICAg
ICAoSlNDOjppc1ZhbGlkT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNJbmxpbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjppc091dE9mTGluZU9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldElu
SW5saW5lU3RvcmFnZSk6CisgICAgICAgIChKU0M6Om9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZSk6
CisgICAgICAgIChKU0M6Om9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UpOgorICAgICAgICAoSlND
OjpudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6bnVt
YmVyT2ZTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldEZvclByb3BlcnR5
TnVtYmVyKToKKwogMjAyMS0wOC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCBzaG91bGQg
bm90IGxvYWQgaW5kZXhpbmdUeXBlIHVubmVjZXNzYXJpbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggY2ZhYzE3ZWMwOWNmY2JmMDg5
MDk3NjMzZjA3Y2EwM2FiMjMyZTAxYy4uMGYwYzlkZTQzNjYxZjlkOWU0NzliNjQxZjc3ZmJlOTZl
ZmQ0NjFkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEzNjQ3LDcgKzEzNjQ3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIG1faml0
LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAg
ICAgIGlmICghaGF2ZVN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUNlbGxHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSksIHN0b3JhZ2VHUFIpOwotICAgICAgICAgICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZG
aXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmly
c3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldElu
QnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7
CiAgICAgICAgICAgICAgICAgbV9qaXQubG9hZFZhbHVlKE1hY3JvQXNzZW1ibGVyOjpCYXNlSW5k
ZXgoc3RvcmFnZUdQUiwgc2NyYXRjaEdQUiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzRWlnaHQsIG9m
ZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJlc3VsdFJlZ3MpOwogICAgICAgICAgICAgICAgIGRvbmVD
YXNlcy5hcHBlbmQobV9qaXQuanVtcCgpKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCA1YTNlOThmNzUzNzAxZDNi
MzRmODRiOTgwODNkMjRkYWU4ZWY3MTAwLi5kYjU3NWQwYzllYWFiNTc4YmRhMjAzODAxNzVhM2Qw
M2VmYjAzNjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCkBAIC0xMzI1OCw3ICsxMzI1OCw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgTFZhbHVl
IHJlYWxJbmRleCA9IG1fb3V0LnNpZ25FeHQzMlRvNjQoCiAgICAgICAgICAgICBtX291dC5uZWco
bV9vdXQuc3ViKGluZGV4LCBpbmxpbmVDYXBhY2l0eSkpKTsKLSAgICAgICAgaW50MzJfdCBvZmZz
ZXRPZkZpcnN0UHJvcGVydHkgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihvZmZzZXRJbkJ1dHRlcmZs
eShmaXJzdE91dE9mTGluZU9mZnNldCkpICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKTsKKyAgICAg
ICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0
dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAg
ICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcigKICAgICAgICAgICAgIG1fb3V0Lmxv
YWQ2NChtX291dC5iYXNlSW5kZXgobV9oZWFwcy5wcm9wZXJ0aWVzLmF0QW55TnVtYmVyKCksIHN0
b3JhZ2UsIHJlYWxJbmRleCwgU2NhbGVFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSkpKTsK
ICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAzZDFkODRmYzgyMDJiZjg4OWJk
ZjIwZWEzMzhkZjhhOTExMDkwNjNiLi44NzMyMDk3MjJlYjEwM2VhMWY2NDFlMGNlMjk5MWIxMTlh
Y2UyMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzLmNwcApAQCAtMzA4OSw3ICszMDg5LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZW51bWVyYXRv
cl9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAg
c3ViMzIoQWRkcmVzcyhyZWdUMiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjYWNoZWRJbmxp
bmVDYXBhY2l0eU9mZnNldCgpKSwgcmVnVDMpOwogICAgIG5lZzMyKHJlZ1QzKTsKICAgICBzaWdu
RXh0ZW5kMzJUb1B0cihyZWdUMywgcmVnVDMpOwotICAgIGludDMyX3Qgb2Zmc2V0T2ZGaXJzdFBy
b3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRP
ZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgY29uc3RleHByIGlu
dHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0
T2ZMaW5lT2Zmc2V0KSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CiAgICAgbG9hZDY0KEJhc2VJ
bmRleChyZWdUMCwgcmVnVDMsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSksIHJl
c3VsdEdQUik7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggMTdm
YjdiYmJiNjdiNmIyYTFmZGM5Mjg4ZWE5ZmJjMzM0N2M0NzVlYy4uMTVmZjg5NmQzY2MxZTRjZTEz
MTM1N2IwNDJhNDNjY2Q0OTE3NDFiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTk5NiwxMCArMTk5Niw2IEBAIHNs
b3dQYXRoT3AoZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5KQogc2xvd1BhdGhPcChkZWZpbmVfZGF0
YV9wcm9wZXJ0eSkKIHNsb3dQYXRoT3AoZ2V0X2J5X3ZhbF93aXRoX3RoaXMpCiBzbG93UGF0aE9w
KGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQotc2xvd1BhdGhPcChlbnVtZXJhdG9yX25leHQpCi1z
bG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKLXNsb3dQYXRoT3AoZW51bWVyYXRvcl9p
bl9ieV92YWwpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKIAogaWYg
bm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQu
YXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KaW5kZXggMzcxNDgzMWE5Njg4ZjIwZDM4M2E5ZTliNjNiZjFkMjkyZTg2NWJjZi4uYjhh
MGYyMDU0MzkxNGJiZDZhYjVkODMyMTBhZDM3NTc5MzAzMzQ5NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20KKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20K
QEAgLTMwNzksMyArMzA3OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVf
YnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkCiAgICAgZGlzcGF0
Y2goKQogZW5kKQogCitzbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKK3Nsb3dQYXRoT3AoZW51
bWVyYXRvcl9nZXRfYnlfdmFsKQorc2xvd1BhdGhPcChlbnVtZXJhdG9yX2luX2J5X3ZhbCkKK3Ns
b3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA4YTVm
N2QyM2U2NDc2M2JhMjU5ZTFiMmM1ZDg3ZjhkMTZiODI5YWRhLi5lZGY0MThjZjU3YTJmNGEwZDUx
NmY4MzZlM2E3ZWQ3OGQ0MzdmMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNTM0LDYgKzUzNCwxMSBAQCBt
YWNybyBsb2FkVmFyaWFibGUoZ2V0LCBmaWVsZE5hbWUsIHZhbHVlUmVnKQogICAgIGxvYWRxIFtj
ZnIsIHZhbHVlUmVnLCA4XSwgdmFsdWVSZWcKIGVuZAogCittYWNybyBzdG9yZVZhcmlhYmxlKGdl
dCwgZmllbGROYW1lLCBuZXdWYWx1ZVJlZywgc2NyYXRjaFJlZykKKyAgICBnZXQoZmllbGROYW1l
LCBzY3JhdGNoUmVnKQorICAgIHN0b3JlcSBuZXdWYWx1ZVJlZywgW2Nmciwgc2NyYXRjaFJlZywg
OF0KK2VuZAorCiAjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3RlcnMu
IEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCiBtYWNybyBsb2FkQ29uc3RhbnQoc2l6ZSwgaW5kZXgs
IHZhbHVlKQogICAgIG1hY3JvIGxvYWROYXJyb3coKQpAQCAtMzA3Myw4ICszMDc4LDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gKIC5ub3REb25lOgogICAgIG1hY3JvIHN0b3JlVmFsdWVBbmRE
aXNwYXRjaCh2KQogICAgICAgICBtb3ZlIHYsIHQyCi0gICAgICAgIGdldChtX3ZhbHVlLCB0MSkK
LSAgICAgICAgc3RvcmVxIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICAgICAgc3RvcmVWYXJpYWJsZShn
ZXQsIG1fdmFsdWUsIHQyLCB0MSkKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJBbGlnbm1lbnQo
dDAsIDB4YmFkZGIwMWUpCiAgICAgICAgIGRpc3BhdGNoKCkKICAgICBlbmQKQEAgLTMwODksNiAr
MzA5MywxMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJh
dG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBlbmQp
CiAKK2xsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JOZXh0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCkKKyAgICAjIEZJWE1FOiBUaGlzIHdpbGwgYWx3YXlzIGNhbGwg
dGhlIHNsb3cgcGF0aCBvbiBhdCBsZWFzdCB0aGUgZmlyc3QvbGFzdCBleGVjdXRpb24gb2YgRW51
bWVyYXRvck5leHQgZm9yIGFueSBnaXZlbiBsb29wLgorICAgICMgVGhlIHVwc2lkZSBvZiB0aGUg
YWJvdmUgRklYTUUgaXMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHJlY29yZCBhbnkgbWV0YWRhdGEg
b3IgbW9kZSBpbmZvcm1hdGlvbiBoZXJlIGFzIHRoZSBzbG93IHBhdGggd2lsbCBkbyBpdCBmb3Ig
dXMgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gSW5pdE1vZGUvSW5kZXhlZE1vZGUgdG8gT3duU3Ry
dWN0dXJlTW9kZS4KKyAgICBnZXQobV9tb2RlLCB0MCkKKyAgICBiYm5lcSB0MCwgY29uc3RleHBy
IEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6T3duU3RydWN0dXJlTW9kZSwgLm5leHRTbG93UGF0
aAorCisgICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwo
c2l6ZSwgdDEsIHQwLCAubmV4dFNsb3dQYXRoKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9l
bnVtZXJhdG9yLCB0MSkKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2Fj
aGVkU3RydWN0dXJlSURbdDFdLCB0MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJl
SURbdDBdLCAubmV4dFNsb3dQYXRoCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0
MikKKyAgICBhZGRpIDEsIHQyCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpt
X2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgsIHQzCisgICAgYmlhZXEgdDIsIHQzLCAubmV4dFNs
b3dQYXRoCisKKyAgICBzdG9yZVZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIsIHQzKQorICAgIGxv
YWRwIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9wcm9wZXJ0eU5hbWVzW3QxXSwgdDMKKyAg
ICBsb2FkcCBbdDMsIHQyLCBQdHJTaXplXSwgdDMKKworICAgIHN0b3JlVmFyaWFibGUoZ2V0LCBt
X3Byb3BlcnR5TmFtZSwgdDMsIHQyKQorICAgIGRpc3BhdGNoKCkKKworLm5leHRTbG93UGF0aDoK
KyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX25leHQpCisgICAgZGlzcGF0
Y2goKQorZW5kKQorCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3Zh
bCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorICAgIG1ldGFkYXRhKHQ1LCB0MCkKKworICAgIGxvYWRWYXJpYWJsZShn
ZXQsIG1fbW9kZSwgdDApCisKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvcmIgYnV0IHRo
YXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2FkYiBPcEVudW1lcmF0
b3JHZXRCeVZhbDo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBv
cmkgdDAsIHQxCisgICAgc3RvcmViIHQxLCBPcEVudW1lcmF0b3JHZXRCeVZhbDo6TWV0YWRhdGE6
Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5nZXRTbG93UGF0aAorCisg
ICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwg
dDEsIHQwLCAuZ2V0U2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2VudW1lcmF0
b3IsIHQxKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRTdHJ1
Y3R1cmVJRFt0MV0sIHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0MF0s
IC5nZXRTbG93UGF0aAorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIpCisgICAg
bG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZElubGluZUNhcGFjaXR5W3Qx
XSwgdDEKKyAgICBiaWFlcSB0MiwgdDEsIC5vdXRPZkxpbmUKKworICAgIHN4aTJxIHQyLCB0Mgor
ICAgIGxvYWRxIHNpemVvZiBKU09iamVjdFt0MCwgdDIsIDhdLCB0MgorICAgIGptcCAuZG9uZQor
Cisub3V0T2ZMaW5lOgorICAgIGxvYWRwIEpTT2JqZWN0OjptX2J1dHRlcmZseVt0MF0sIHQwCisg
ICAgc3ViaSB0MSwgdDIKKyAgICBuZWdpIHQyCisgICAgc3hpMnEgdDIsIHQyCisgICAgbG9hZHEg
Y29uc3RleHByICgob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSkpW3QwLCB0MiwgOF0sIHQyCisKKy5kb25lOgorICAgIHZhbHVl
UHJvZmlsZShPcEVudW1lcmF0b3JHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwgdDIpCisgICAgcmV0
dXJuKHQyKQorCisuZ2V0U2xvd1BhdGg6CisgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZW51
bWVyYXRvcl9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKCkKK2VuZCkKKworbWFjcm8gaGFzUHJv
cGVydHlJbXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybiwgc2xvd1BhdGgpCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAgbG9hZFZhcmlhYmxl
KGdldCwgbV9tb2RlLCB0MCkKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBvcmIgYnV0IHRo
YXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2FkYiAlb3Bjb2RlU3Ry
dWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBvcmkgdDAs
IHQxCisgICAgc3RvcmViIHQxLCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRv
ck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5jYWxsU2xvd1BhdGgKKworICAgIGdldChtX2Jh
c2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmNh
bGxTbG93UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwgdDEpCisg
ICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZUlEW3Qx
XSwgdDIKKyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93
UGF0aAorCisgICAgbW92ZSBWYWx1ZVRydWUsIHQyCisgICAgcmV0dXJuKHQyKQorCisuY2FsbFNs
b3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgpCitlbmQK
KworbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJh
dG9ySW5CeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwp
CitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3Bl
cnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhh
c093blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xv
d19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2VuZCkKIAogbGxpbnRPcFdpdGhQ
cm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYmFz
ZSwgdDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02
NC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDcy
YjZjM2NmZWMyZjIwYTEzMmY2NWJkMGZkZjY4YWRiMDVjMDgzYjkuLjFhZGQ1NDBkODM1YzM1ZTNm
NzI3Y2RkNjMxYzliODYwOWYxMjY5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FybTY0LnJiCkBAIC04ODQsNyArODg0LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgd2hlbiAibW92ZSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8KICAg
ICAgICAgICAgICAgICBlbWl0QVJNNjRNb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBv
cGVyYW5kc1sxXSkKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRz
WzBdICE9IG9wZXJhbmRzWzFdCiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVy
YW5kcywgOnF1YWQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAibW92ZWQiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRf
ZXh0cmFjdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVf
b2Zmc2V0X2V4dHJhY3Rvci5yYgppbmRleCA0NTRkYjJiMTdjY2VlMThjZjA0NjQ5ZWRlNjFiZGQ4
OTE1ZGJiZjNkLi5mMWEwODcyYTYyMmQxN2JmZGQxMWQ2OGFmYjU2M2JkODA0OWU2NTNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRf
ZXh0cmFjdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVy
YXRlX29mZnNldF9leHRyYWN0b3IucmIKQEAgLTkyLDYgKzkyLDExIEBAIEZpbGUub3BlbihvdXRw
dXRGbG5tLCAidyIpIHsKICAgICAgICAgICAgIGNvbnN0c0xpc3QgPSBjb25zdHNMaXN0KGxvd0xl
dmVsQVNUKQogCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNl
dHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgeworCisgICAgICAgICAgICAgICAgIyBXaW5k
b3dzIGNvbXBsYWlucyBhYm91dCBzaWduZWQgaW50ZWdlcnMgYmVpbmcgY2FzdCB0byB1bnNpZ25l
ZCBidXQgd2UganVzdCB3YW50IHRoZSBiaXRzLgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAi
XCNpZiBDT01QSUxFUihNU1ZDKSIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIlwjcHJhZ21h
IHdhcm5pbmcoZGlzYWJsZTo0MzA4KSIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIlwjZW5k
aWYiCiAgICAgICAgICAgICAgICAgY29uc3RzTGlzdC5lYWNoX3dpdGhfaW5kZXggewogICAgICAg
ICAgICAgICAgICAgICB8IGNvbnN0LCBpbmRleCB8CiAgICAgICAgICAgICAgICAgICAgIG91dHAu
cHV0cyAiY29uc3RleHByIGludDY0X3QgY29uc3RWYWx1ZSN7aW5kZXh9ID0gc3RhdGljX2Nhc3Q8
aW50NjRfdD4oI3tjb25zdC52YWx1ZX0pOyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0J1dHRlcmZseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QnV0dGVyZmx5LmgKaW5kZXggNDkzNTFjNzdjNTk4MzkwMzQyZjllYzYyZTBkZDExNTYzZTFlYzdl
OC4uNGJkZGU0ZDA1YjM5NmQ0NzA3Mzc5Y2I2M2VkZDI5YTNmNmQxMmMzYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKQEAgLTIwOSw3ICsyMDksNyBAQCBwdWJs
aWM6CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0
b3JhZ2UoKSB7IHJldHVybiAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoSW5kZXhpbmdI
ZWFkZXIpKTsgfQotICAgIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCisgICAg
Y29uc3RleHByIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCiAgICAgewogICAg
ICAgICBBU1NFUlQoc2l6ZW9mKEluZGV4aW5nSGVhZGVyKSA9PSBzaXplb2YoRW5jb2RlZEpTVmFs
dWUpKTsKICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKaW5kZXggY2E3NDI2NDI1NzFhYzQ0MmIyNGU3NGVmNDIzNWU4ZTkzZTA0Mjg1Mi4u
NGMwZWJkMWY2MTY1NzJkMDhhZmIzODViNmZlNTI5ZWI4Y2I3M2RiOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTY0LDcgKzE1NjQsNyBAQCBpbmxpbmUg
Ym9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZQogICAgIHJldHVybiBwdXREaXJlY3RJbnRlcm5hbDxQdXRNb2RlRGVm
aW5lT3duUHJvcGVydHk+KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBzbG90KTsKIH0KIAot
aW5saW5lIHNpemVfdCBvZmZzZXRJbkJ1dHRlcmZseShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitj
b25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluQnV0dGVyZmx5KFByb3BlcnR5T2Zmc2V0
IG9mZnNldCkKIHsKICAgICByZXR1cm4gb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKG9mZnNldCkg
KyBCdXR0ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0eVN0b3JhZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oCmluZGV4IGU3MDcyOWY3ZWMzNjEz
NjU4MzE2ZDljOWYzODM0NTNlNGI4Nzg2N2MuLjY5YWViYWFmNzg4OWM4ZTBhZGMxMjE1NDQ1YWI5
NjQ3M2Q0M2NlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3BlcnR5T2Zmc2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlPZmZzZXQuaApAQCAtMzcsMjYgKzM3LDI2IEBAIHN0YXRpYyBjb25zdGV4cHIgUHJvcGVydHlP
ZmZzZXQga25vd25Qb2x5UHJvdG9PZmZzZXQgPSAwOwogc3RhdGljX2Fzc2VydChrbm93blBvbHlQ
cm90b09mZnNldCA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0LCAiV2UgYXNzdW1lIGluIGFsbCB0aGUg
SklUcyB0aGF0IHRoZSBwb2x5IHByb3RvIG9mZnNldCBpcyBhbiBpbmxpbmUgb2Zmc2V0Iik7CiAK
IC8vIERlY2xhcmUgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYmVjYXVzZSB0aGV5IHRlbmQgdG8gZG8g
Zm9yd2FyZCBjYWxscy4KLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsK
LWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNp
dHkpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5l
IHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSk7
Ci1pbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29s
IGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzT3V0T2ZMaW5l
T2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9y
YWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5PdXRPZkxpbmVTdG9y
YWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3Rv
cmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xv
dHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHNpemVfdCBudW1iZXJPZlNs
b3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotCi1p
bmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIg
aW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGlu
ZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwor
Y29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2Nv
bnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlu
bGluZUNhcGFjaXR5KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3Bl
cnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0
eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNPdXRPZkxpbmVPZmZzZXQoUHJvcGVy
dHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbklubGluZVN0b3Jh
Z2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbk91
dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJf
dCBvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBp
bmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlP
ZmZzZXQpOworY29uc3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZTbG90c0Zvck1heE9mZnNl
dChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKKworY29uc3RleHByIGlubGlu
ZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBVTlVTRURf
UEFSQU0ob2Zmc2V0KTsKICAgICBBU1NFUlQob2Zmc2V0ID49IGludmFsaWRPZmZzZXQpOwogfQog
Ci1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxp
bmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zm
c2V0KTsKICAgICBVTlVTRURfUEFSQU0oaW5saW5lQ2FwYWNpdHkpOwpAQCAtNjYsNTggKzY2LDU4
IEBAIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlu
bGluZUNhcGFjaXR5KQogICAgICAgICB8fCBpc091dE9mTGluZU9mZnNldChvZmZzZXQpKTsKIH0K
IAotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29u
c3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkK
IHsKICAgICBjaGVja09mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc1ZhbGlkT2Zmc2V0KG9m
ZnNldCkpOwogfQogCi1pbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0
ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAg
ICBjaGVja09mZnNldChvZmZzZXQsIGlubGluZUNhcGFjaXR5KTsKICAgICBBU1NFUlQoaXNWYWxp
ZE9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0
eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1
cm4gb2Zmc2V0ICE9IGludmFsaWRPZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzSW5saW5lT2Zm
c2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGlu
ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0
KTsKICAgICByZXR1cm4gb2Zmc2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQ7CiB9CiAKLWlubGlu
ZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhw
ciBpbmxpbmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7
CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gIWlzSW5saW5lT2Zmc2V0KG9m
ZnNldCk7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5
T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgaW50cHRyX3Qgb2Zmc2V0SW5JbmxpbmVT
dG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICB2YWxpZGF0ZU9mZnNldChvZmZz
ZXQpOwogICAgIEFTU0VSVChpc0lubGluZU9mZnNldChvZmZzZXQpKTsKICAgICByZXR1cm4gb2Zm
c2V0OwogfQogCi1pbmxpbmUgc2l6ZV90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0
eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluT3V0T2ZM
aW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgdmFsaWRhdGVPZmZzZXQo
b2Zmc2V0KTsKICAgICBBU1NFUlQoaXNPdXRPZkxpbmVPZmZzZXQob2Zmc2V0KSk7CiAgICAgcmV0
dXJuIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNldCAtIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0
KSAtIDE7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluUmVz
cGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGlmIChpc0lubGlu
ZU9mZnNldChvZmZzZXQpKQogICAgICAgICByZXR1cm4gb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKG9m
ZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShvZmZzZXQpOwogfQog
Ci1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZPdXRPZkxp
bmVTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tP
ZmZzZXQob2Zmc2V0KTsKICAgICBpZiAob2Zmc2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQpCkBA
IC0xMjUsNyArMTI1LDcgQEAgaW5saW5lIHNpemVfdCBudW1iZXJPZk91dE9mTGluZVNsb3RzRm9y
TWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAgICByZXR1cm4gb2Zmc2V0IC0gZmly
c3RPdXRPZkxpbmVPZmZzZXQgKyAxOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNG
b3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitj
b25zdGV4cHIgaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5
T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogewogICAgIGNoZWNrT2Zmc2V0KG9m
ZnNldCwgaW5saW5lQ2FwYWNpdHkpOwogICAgIGlmIChvZmZzZXQgPCBpbmxpbmVDYXBhY2l0eSkK
QEAgLTEzMyw3ICsxMzMsNyBAQCBpbmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZz
ZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdAogICAgIHJldHVybiBp
bmxpbmVDYXBhY2l0eSArIG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQob2Zmc2V0
KTsKIH0KIAotaW5saW5lIFByb3BlcnR5T2Zmc2V0IG9mZnNldEZvclByb3BlcnR5TnVtYmVyKGlu
dCBwcm9wZXJ0eU51bWJlciwgaW50IGlubGluZUNhcGFjaXR5KQorY29uc3RleHByIGlubGluZSBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXRGb3JQcm9wZXJ0eU51bWJlcihpbnQgcHJvcGVydHlOdW1iZXIs
IGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBwcm9w
ZXJ0eU51bWJlcjsKICAgICBpZiAob2Zmc2V0ID49IGlubGluZUNhcGFjaXR5KSB7Cg==
</data>
<flag name="commit-queue"
          id="459210"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436219</attachid>
            <date>2021-08-23 12:08:30 -0700</date>
            <delta_ts>2021-08-24 10:00:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210823150829.patch</filename>
            <type>text/plain</type>
            <size>20182</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTgyMmE3MWQ5NDM5YTAzOTllZjQwNDhjZDNiODhlNjc4NWIyNzgyLi4wYmZmZWQ5MGYwMGYzOTFl
MzliYmFlZDBkNjg0MmM1MGUxMDNjOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0wOC0yMyAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkg
ZWxpbWluYXRpb24gdG8gYXJtNjQuIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlCisgICAgICAgIHBy
b3BlcnR5IG9mZnNldCBmdW5jdGlvbnMgYXJlIG5vdyBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1
cm4KKyAgICAgICAgaW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZSB2YWx1ZXMgY2Fu
IGJlIG5lZ2F0aXZlLgorCisgICAgICAgIFRoZXJlJ3MgYWxzbyBhIG1pbm9yIGZpeCB0byBkaXNh
YmxlIE1TVkMncyBzaWduZWQgdG8gdW5zaWduZWQKKyAgICAgICAgY2FzdCB3YXJuaW5nIGZvciBM
TEludE9mZnNldHNFeHRyYWN0b3IgYXMgd2UgZG9uJ3QgY2FyZSBhYm91dAorICAgICAgICBzaWdu
ZWRuZXNzIGZvciBleHRyYWN0aW5nIGNvbnN0YW50cy4KKworICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2V0QnlWYWwpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0
cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsKToKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmI6CisgICAgICAgICogcnVudGltZS9CdXR0ZXJm
bHkuaDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjppbmRleE9mUHJvcGVydHlTdG9yYWdlKToK
KyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Om9mZnNldEluQnV0
dGVyZmx5KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5T2Zmc2V0Lmg6CisgICAgICAgIChK
U0M6OmNoZWNrT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVPZmZzZXQpOgorICAgICAg
ICAoSlNDOjppc1ZhbGlkT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNJbmxpbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjppc091dE9mTGluZU9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldElu
SW5saW5lU3RvcmFnZSk6CisgICAgICAgIChKU0M6Om9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZSk6
CisgICAgICAgIChKU0M6Om9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UpOgorICAgICAgICAoSlND
OjpudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6bnVt
YmVyT2ZTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldEZvclByb3BlcnR5
TnVtYmVyKToKKwogMjAyMS0wOC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCBzaG91bGQg
bm90IGxvYWQgaW5kZXhpbmdUeXBlIHVubmVjZXNzYXJpbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggY2ZhYzE3ZWMwOWNmY2JmMDg5
MDk3NjMzZjA3Y2EwM2FiMjMyZTAxYy4uYWVjODRhMDA4YjQ5NzE0ODU5NjJlZWRkMjk0ODk3MTkx
MzFiYjY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEzNjQ3LDcgKzEzNjQ3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIG1faml0
LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAg
ICAgIGlmICghaGF2ZVN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUNlbGxHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSksIHN0b3JhZ2VHUFIpOwotICAgICAgICAgICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZG
aXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmly
c3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldElu
QnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHN0YXRpY19jYXN0PGludHB0cl90Pihz
aXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUo
TWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzY3JhdGNoR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6VGltZXNFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSwgcmVzdWx0UmVncyk7
CiAgICAgICAgICAgICAgICAgZG9uZUNhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwogICAgICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CmluZGV4IDVhM2U5OGY3NTM3MDFkM2IzNGY4NGI5ODA4M2QyNGRhZThlZjcxMDAuLmZmMjE5MDk1
MzM5NzA2Mjk4ZGRlMzQ2YmRjOGNiZGQyZTAxNWNmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEzMjU4LDcgKzEzMjU4LDcgQEAgcHJp
dmF0ZToKIAogICAgICAgICBMVmFsdWUgcmVhbEluZGV4ID0gbV9vdXQuc2lnbkV4dDMyVG82NCgK
ICAgICAgICAgICAgIG1fb3V0Lm5lZyhtX291dC5zdWIoaW5kZXgsIGlubGluZUNhcGFjaXR5KSkp
OwotICAgICAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGlu
dDMyX3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2Yo
RW5jb2RlZEpTVmFsdWUpOworICAgICAgICBjb25zdGV4cHIgaW50cHRyX3Qgb2Zmc2V0T2ZGaXJz
dFByb3BlcnR5ID0gb2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpICogc3Rh
dGljX2Nhc3Q8aW50cHRyX3Q+KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpOwogICAgICAgICByZXN1
bHRzLmFwcGVuZChtX291dC5hbmNob3IoCiAgICAgICAgICAgICBtX291dC5sb2FkNjQobV9vdXQu
YmFzZUluZGV4KG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpLCBzdG9yYWdlLCByZWFs
SW5kZXgsIFNjYWxlRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSkpKSk7CiAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggM2QxZDg0ZmM4MjAyYmY4ODliZGYyMGVhMzM4ZGY4
YTkxMTA5MDYzYi4uZDEzZTg1YmVkYWNkNjMzYjM1NmUzZThkZjA3OGJjNTA4ZWM5ZjNjNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAg
LTMwODksNyArMzA4OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3Zh
bChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHN1YjMyKEFkZHJl
c3MocmVnVDIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlP
ZmZzZXQoKSksIHJlZ1QzKTsKICAgICBuZWczMihyZWdUMyk7CiAgICAgc2lnbkV4dGVuZDMyVG9Q
dHIocmVnVDMsIHJlZ1QzKTsKLSAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0
YXRpY19jYXN0PGludDMyX3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0
KSkgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOworICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZz
ZXRPZkZpcnN0UHJvcGVydHkgPSBvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNl
dCkgKiBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSk7CiAgICAg
bG9hZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDMsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQ
cm9wZXJ0eSksIHJlc3VsdEdQUik7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KaW5kZXggMTdmYjdiYmJiNjdiNmIyYTFmZGM5Mjg4ZWE5ZmJjMzM0N2M0NzVlYy4uMTVmZjg5
NmQzY2MxZTRjZTEzMTM1N2IwNDJhNDNjY2Q0OTE3NDFiMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTk5NiwxMCAr
MTk5Niw2IEBAIHNsb3dQYXRoT3AoZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5KQogc2xvd1BhdGhP
cChkZWZpbmVfZGF0YV9wcm9wZXJ0eSkKIHNsb3dQYXRoT3AoZ2V0X2J5X3ZhbF93aXRoX3RoaXMp
CiBzbG93UGF0aE9wKGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQotc2xvd1BhdGhPcChlbnVtZXJh
dG9yX25leHQpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKLXNsb3dQYXRoT3Ao
ZW51bWVyYXRvcl9pbl9ieV92YWwpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9w
ZXJ0eSkKIAogaWYgbm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9v
ZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggMzcxNDgzMWE5Njg4ZjIwZDM4M2E5ZTliNjNiZjFkMjky
ZTg2NWJjZi4uYjhhMGYyMDU0MzkxNGJiZDZhYjVkODMyMTBhZDM3NTc5MzAzMzQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KQEAgLTMwNzksMyArMzA3OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
c2V0X3ByaXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
CiAgICAgZGlzcGF0Y2goKQogZW5kKQogCitzbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKK3Ns
b3dQYXRoT3AoZW51bWVyYXRvcl9nZXRfYnlfdmFsKQorc2xvd1BhdGhPcChlbnVtZXJhdG9yX2lu
X2J5X3ZhbCkKK3Nsb3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQppbmRleCA4YTVmN2QyM2U2NDc2M2JhMjU5ZTFiMmM1ZDg3ZjhkMTZiODI5YWRhLi5lZGY0MThj
ZjU3YTJmNGEwZDUxNmY4MzZlM2E3ZWQ3OGQ0MzdmMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNTM0LDYg
KzUzNCwxMSBAQCBtYWNybyBsb2FkVmFyaWFibGUoZ2V0LCBmaWVsZE5hbWUsIHZhbHVlUmVnKQog
ICAgIGxvYWRxIFtjZnIsIHZhbHVlUmVnLCA4XSwgdmFsdWVSZWcKIGVuZAogCittYWNybyBzdG9y
ZVZhcmlhYmxlKGdldCwgZmllbGROYW1lLCBuZXdWYWx1ZVJlZywgc2NyYXRjaFJlZykKKyAgICBn
ZXQoZmllbGROYW1lLCBzY3JhdGNoUmVnKQorICAgIHN0b3JlcSBuZXdWYWx1ZVJlZywgW2Nmciwg
c2NyYXRjaFJlZywgOF0KK2VuZAorCiAjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVu
dCByZWdpc3RlcnMuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCiBtYWNybyBsb2FkQ29uc3RhbnQo
c2l6ZSwgaW5kZXgsIHZhbHVlKQogICAgIG1hY3JvIGxvYWROYXJyb3coKQpAQCAtMzA3Myw4ICsz
MDc4LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9y
TmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKIC5ub3REb25lOgogICAgIG1hY3JvIHN0
b3JlVmFsdWVBbmREaXNwYXRjaCh2KQogICAgICAgICBtb3ZlIHYsIHQyCi0gICAgICAgIGdldCht
X3ZhbHVlLCB0MSkKLSAgICAgICAgc3RvcmVxIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICAgICAgc3Rv
cmVWYXJpYWJsZShnZXQsIG1fdmFsdWUsIHQyLCB0MSkKICAgICAgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQodDAsIDB4YmFkZGIwMWUpCiAgICAgICAgIGRpc3BhdGNoKCkKICAgICBlbmQK
QEAgLTMwODksNiArMzA5MywxMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9u
ZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNw
YXRjaCgpCiBlbmQpCiAKK2xsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JO
ZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKKyAgICAjIEZJWE1FOiBUaGlzIHdpbGwg
YWx3YXlzIGNhbGwgdGhlIHNsb3cgcGF0aCBvbiBhdCBsZWFzdCB0aGUgZmlyc3QvbGFzdCBleGVj
dXRpb24gb2YgRW51bWVyYXRvck5leHQgZm9yIGFueSBnaXZlbiBsb29wLgorICAgICMgVGhlIHVw
c2lkZSBvZiB0aGUgYWJvdmUgRklYTUUgaXMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHJlY29yZCBh
bnkgbWV0YWRhdGEgb3IgbW9kZSBpbmZvcm1hdGlvbiBoZXJlIGFzIHRoZSBzbG93IHBhdGggd2ls
bCBkbyBpdCBmb3IgdXMgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gSW5pdE1vZGUvSW5kZXhlZE1v
ZGUgdG8gT3duU3RydWN0dXJlTW9kZS4KKyAgICBnZXQobV9tb2RlLCB0MCkKKyAgICBiYm5lcSB0
MCwgY29uc3RleHByIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6T3duU3RydWN0dXJlTW9kZSwg
Lm5leHRTbG93UGF0aAorCisgICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZUNlbGwoc2l6ZSwgdDEsIHQwLCAubmV4dFNsb3dQYXRoKQorCisgICAgbG9hZFZhcmlh
YmxlKGdldCwgbV9lbnVtZXJhdG9yLCB0MSkKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlSURbdDFdLCB0MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6
Om1fc3RydWN0dXJlSURbdDBdLCAubmV4dFNsb3dQYXRoCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0
LCBtX2luZGV4LCB0MikKKyAgICBhZGRpIDEsIHQyCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOjptX2VuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgsIHQzCisgICAgYmlhZXEgdDIs
IHQzLCAubmV4dFNsb3dQYXRoCisKKyAgICBzdG9yZVZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIs
IHQzKQorICAgIGxvYWRwIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9wcm9wZXJ0eU5hbWVz
W3QxXSwgdDMKKyAgICBsb2FkcCBbdDMsIHQyLCBQdHJTaXplXSwgdDMKKworICAgIHN0b3JlVmFy
aWFibGUoZ2V0LCBtX3Byb3BlcnR5TmFtZSwgdDMsIHQyKQorICAgIGRpc3BhdGNoKCkKKworLm5l
eHRTbG93UGF0aDoKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX25leHQp
CisgICAgZGlzcGF0Y2goKQorZW5kKQorCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0
b3JfZ2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIG1ldGFkYXRhKHQ1LCB0MCkKKworICAgIGxv
YWRWYXJpYWJsZShnZXQsIG1fbW9kZSwgdDApCisKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSBvcmIgYnV0IHRoYXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2Fk
YiBPcEVudW1lcmF0b3JHZXRCeVZhbDo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1
XSwgdDEKKyAgICBvcmkgdDAsIHQxCisgICAgc3RvcmViIHQxLCBPcEVudW1lcmF0b3JHZXRCeVZh
bDo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNv
bnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5nZXRT
bG93UGF0aAorCisgICAgZ2V0KG1fYmFzZSwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZUNlbGwoc2l6ZSwgdDEsIHQwLCAuZ2V0U2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0
LCBtX2VudW1lcmF0b3IsIHQxKQorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
bV9jYWNoZWRTdHJ1Y3R1cmVJRFt0MV0sIHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1
Y3R1cmVJRFt0MF0sIC5nZXRTbG93UGF0aAorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9pbmRl
eCwgdDIpCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZElubGlu
ZUNhcGFjaXR5W3QxXSwgdDEKKyAgICBiaWFlcSB0MiwgdDEsIC5vdXRPZkxpbmUKKworICAgIHN4
aTJxIHQyLCB0MgorICAgIGxvYWRxIHNpemVvZiBKU09iamVjdFt0MCwgdDIsIDhdLCB0MgorICAg
IGptcCAuZG9uZQorCisub3V0T2ZMaW5lOgorICAgIGxvYWRwIEpTT2JqZWN0OjptX2J1dHRlcmZs
eVt0MF0sIHQwCisgICAgc3ViaSB0MSwgdDIKKyAgICBuZWdpIHQyCisgICAgc3hpMnEgdDIsIHQy
CisgICAgbG9hZHEgY29uc3RleHByICgob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVP
ZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpW3QwLCB0MiwgOF0sIHQyCisKKy5kb25l
OgorICAgIHZhbHVlUHJvZmlsZShPcEVudW1lcmF0b3JHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwg
dDIpCisgICAgcmV0dXJuKHQyKQorCisuZ2V0U2xvd1BhdGg6CisgICAgY2FsbFNsb3dQYXRoKF9z
bG93X3BhdGhfZW51bWVyYXRvcl9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKCkKK2VuZCkKKwor
bWFjcm8gaGFzUHJvcGVydHlJbXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybiwgc2xvd1BhdGgpCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAg
bG9hZFZhcmlhYmxlKGdldCwgbV9tb2RlLCB0MCkKKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSBvcmIgYnV0IHRoYXQgZG9lc24ndCBleGlzdCBmb3Igc29tZSByZWFzb24uLi4KKyAgICBsb2Fk
YiAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEK
KyAgICBvcmkgdDAsIHQxCisgICAgc3RvcmViIHQxLCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6
Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5jYWxsU2xvd1BhdGgKKwor
ICAgIGdldChtX2Jhc2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUs
IHQxLCB0MCwgLmNhbGxTbG93UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVy
YXRvciwgdDEpCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0
cnVjdHVyZUlEW3QxXSwgdDIKKyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3Qw
XSwgLmNhbGxTbG93UGF0aAorCisgICAgbW92ZSBWYWx1ZVRydWUsIHQyCisgICAgcmV0dXJuKHQy
KQorCisuY2FsbFNsb3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNw
YXRjaCgpCitlbmQKKworbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3Zh
bCwgT3BFbnVtZXJhdG9ySW5CeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
YXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRv
cl9pbl9ieV92YWwpCitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9o
YXNfb3duX3Byb3BlcnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBsKE9w
RW51bWVyYXRvckhhc093blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuLCBfc2xvd19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2VuZCkKIAog
bGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZp
ZWxkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGxvYWRWYXJpYWJs
ZShnZXQsIG1fYmFzZSwgdDEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hcm02NC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0
LnJiCmluZGV4IDcyYjZjM2NmZWMyZjIwYTEzMmY2NWJkMGZkZjY4YWRiMDVjMDgzYjkuLjFhZGQ1
NDBkODM1YzM1ZTNmNzI3Y2RkNjMxYzliODYwOWYxMjY5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCkBAIC04ODQsNyArODg0LDcgQEAgY2xhc3MgSW5zdHJ1
Y3Rpb24KICAgICAgICAgd2hlbiAibW92ZSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmlt
bWVkaWF0ZT8KICAgICAgICAgICAgICAgICBlbWl0QVJNNjRNb3ZlSW1tZWRpYXRlKG9wZXJhbmRz
WzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVs
c2lmIG9wZXJhbmRzWzBdICE9IG9wZXJhbmRzWzFdCiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0
KCJtb3YiLCBvcGVyYW5kcywgOnF1YWQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAi
bW92ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5l
cmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYgppbmRleCA0NTRkYjJiMTdjY2VlMThjZjA0
NjQ5ZWRlNjFiZGQ4OTE1ZGJiZjNkLi5mMWEwODcyYTYyMmQxN2JmZGQxMWQ2OGFmYjU2M2JkODA0
OWU2NTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5l
cmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmIKQEAgLTkyLDYgKzkyLDExIEBAIEZp
bGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKICAgICAgICAgICAgIGNvbnN0c0xpc3QgPSBjb25z
dHNMaXN0KGxvd0xldmVsQVNUKQogCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlv
bihjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgeworCisgICAgICAgICAg
ICAgICAgIyBXaW5kb3dzIGNvbXBsYWlucyBhYm91dCBzaWduZWQgaW50ZWdlcnMgYmVpbmcgY2Fz
dCB0byB1bnNpZ25lZCBidXQgd2UganVzdCB3YW50IHRoZSBiaXRzLgorICAgICAgICAgICAgICAg
IG91dHAucHV0cyAiXCNpZiBDT01QSUxFUihNU1ZDKSIKKyAgICAgICAgICAgICAgICBvdXRwLnB1
dHMgIlwjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzA4KSIKKyAgICAgICAgICAgICAgICBvdXRw
LnB1dHMgIlwjZW5kaWYiCiAgICAgICAgICAgICAgICAgY29uc3RzTGlzdC5lYWNoX3dpdGhfaW5k
ZXggewogICAgICAgICAgICAgICAgICAgICB8IGNvbnN0LCBpbmRleCB8CiAgICAgICAgICAgICAg
ICAgICAgIG91dHAucHV0cyAiY29uc3RleHByIGludDY0X3QgY29uc3RWYWx1ZSN7aW5kZXh9ID0g
c3RhdGljX2Nhc3Q8aW50NjRfdD4oI3tjb25zdC52YWx1ZX0pOyIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKaW5kZXggNDkzNTFjNzdjNTk4MzkwMzQyZjllYzYyZTBk
ZDExNTYzZTFlYzdlOC4uNGJkZGU0ZDA1YjM5NmQ0NzA3Mzc5Y2I2M2VkZDI5YTNmNmQxMmMzYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKQEAgLTIwOSw3ICsy
MDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0
T2ZQcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXpl
b2YoSW5kZXhpbmdIZWFkZXIpKTsgfQotICAgIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5U3Rv
cmFnZSgpCisgICAgY29uc3RleHByIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5U3RvcmFnZSgp
CiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZW9mKEluZGV4aW5nSGVhZGVyKSA9PSBzaXplb2Yo
RW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggY2E3NDI2NDI1NzFhYzQ0MmIyNGU3NGVmNDIzNWU4
ZTkzZTA0Mjg1Mi4uNGMwZWJkMWY2MTY1NzJkMDhhZmIzODViNmZlNTI5ZWI4Y2I3M2RiOCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTY0LDcgKzE1NjQs
NyBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGlyZWN0KFZNJiB2bSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZQogICAgIHJldHVybiBwdXREaXJlY3RJbnRlcm5h
bDxQdXRNb2RlRGVmaW5lT3duUHJvcGVydHk+KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBz
bG90KTsKIH0KIAotaW5saW5lIHNpemVfdCBvZmZzZXRJbkJ1dHRlcmZseShQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluQnV0dGVyZmx5KFBy
b3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICByZXR1cm4gb2Zmc2V0SW5PdXRPZkxpbmVTdG9y
YWdlKG9mZnNldCkgKyBCdXR0ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0eVN0b3JhZ2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oCmluZGV4IGU3
MDcyOWY3ZWMzNjEzNjU4MzE2ZDljOWYzODM0NTNlNGI4Nzg2N2MuLjY5YWViYWFmNzg4OWM4ZTBh
ZGMxMjE1NDQ1YWI5NjQ3M2Q0M2NlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlPZmZzZXQuaApAQCAtMzcsMjYgKzM3LDI2IEBAIHN0YXRpYyBjb25zdGV4
cHIgUHJvcGVydHlPZmZzZXQga25vd25Qb2x5UHJvdG9PZmZzZXQgPSAwOwogc3RhdGljX2Fzc2Vy
dChrbm93blBvbHlQcm90b09mZnNldCA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0LCAiV2UgYXNzdW1l
IGluIGFsbCB0aGUgSklUcyB0aGF0IHRoZSBwb2x5IHByb3RvIG9mZnNldCBpcyBhbiBpbmxpbmUg
b2Zmc2V0Iik7CiAKIC8vIERlY2xhcmUgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYmVjYXVzZSB0aGV5
IHRlbmQgdG8gZG8gZm9yd2FyZCBjYWxscy4KLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3Bl
cnR5T2Zmc2V0KTsKLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQg
aW5saW5lQ2FwYWNpdHkpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZz
ZXQpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQsIGludCBpbmxp
bmVDYXBhY2l0eSk7Ci1pbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsK
LWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29s
IGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0
SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5P
dXRPZkxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5S
ZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6ZV90IG51bWJlck9m
T3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHNpemVf
dCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2Fw
YWNpdHkpOwotCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQp
Citjb25zdGV4cHIgaW5saW5lIHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29u
c3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5l
Q2FwYWNpdHkpOworY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5
T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9m
ZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZhbGlk
T2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9m
ZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNPdXRPZkxpbmVP
ZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJ
bklubGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJf
dCBvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlu
bGluZSBpbnRwdHJfdCBvZmZzZXRJblJlc3BlY3RpdmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsK
K2NvbnN0ZXhwciBpbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZz
ZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZTbG90
c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKKworY29u
c3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsK
ICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBBU1NFUlQob2Zmc2V0ID49IGludmFsaWRP
ZmZzZXQpOwogfQogCi1pbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZz
ZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCBjaGVja09mZnNl
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBVTlVT
RURfUEFSQU0ob2Zmc2V0KTsKICAgICBVTlVTRURfUEFSQU0oaW5saW5lQ2FwYWNpdHkpOwpAQCAt
NjYsNTggKzY2LDU4IEBAIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogICAgICAgICB8fCBpc091dE9mTGluZU9mZnNldChv
ZmZzZXQpKTsKIH0KIAotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQg
b2Zmc2V0KQorY29uc3RleHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zm
c2V0IG9mZnNldCkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc1Zh
bGlkT2Zmc2V0KG9mZnNldCkpOwogfQogCi1pbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9w
ZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUg
dm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBh
Y2l0eSkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQsIGlubGluZUNhcGFjaXR5KTsKICAgICBB
U1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIGJvb2wgaXNWYWxpZE9m
ZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWYWxp
ZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0
KTsKICAgICByZXR1cm4gb2Zmc2V0ICE9IGludmFsaWRPZmZzZXQ7CiB9CiAKLWlubGluZSBib29s
IGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUg
Ym9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tP
ZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQ7
CiB9CiAKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gIWlzSW5s
aW5lT2Zmc2V0KG9mZnNldCk7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9y
YWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgaW50cHRyX3Qgb2Zm
c2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICB2YWxpZGF0
ZU9mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc0lubGluZU9mZnNldChvZmZzZXQpKTsKICAg
ICByZXR1cm4gb2Zmc2V0OwogfQogCi1pbmxpbmUgc2l6ZV90IG9mZnNldEluT3V0T2ZMaW5lU3Rv
cmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9m
ZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgdmFs
aWRhdGVPZmZzZXQob2Zmc2V0KTsKICAgICBBU1NFUlQoaXNPdXRPZkxpbmVPZmZzZXQob2Zmc2V0
KSk7CiAgICAgcmV0dXJuIC1zdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNldCAtIGZpcnN0T3V0
T2ZMaW5lT2Zmc2V0KSAtIDE7CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZl
U3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90
IG9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAg
IGlmIChpc0lubGluZU9mZnNldChvZmZzZXQpKQogICAgICAgICByZXR1cm4gb2Zmc2V0SW5Jbmxp
bmVTdG9yYWdlKG9mZnNldCk7CiAgICAgcmV0dXJuIG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShv
ZmZzZXQpOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhP
ZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSBzaXplX3QgbnVt
YmVyT2ZPdXRPZkxpbmVTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7
CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICBpZiAob2Zmc2V0IDwgZmlyc3RPdXRPZkxp
bmVPZmZzZXQpCkBAIC0xMjUsNyArMTI1LDcgQEAgaW5saW5lIHNpemVfdCBudW1iZXJPZk91dE9m
TGluZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAgICByZXR1cm4g
b2Zmc2V0IC0gZmlyc3RPdXRPZkxpbmVPZmZzZXQgKyAxOwogfQogCi1pbmxpbmUgc2l6ZV90IG51
bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5l
Q2FwYWNpdHkpCitjb25zdGV4cHIgaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zm
c2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogewogICAgIGNo
ZWNrT2Zmc2V0KG9mZnNldCwgaW5saW5lQ2FwYWNpdHkpOwogICAgIGlmIChvZmZzZXQgPCBpbmxp
bmVDYXBhY2l0eSkKQEAgLTEzMyw3ICsxMzMsNyBAQCBpbmxpbmUgc2l6ZV90IG51bWJlck9mU2xv
dHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdAog
ICAgIHJldHVybiBpbmxpbmVDYXBhY2l0eSArIG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhP
ZmZzZXQob2Zmc2V0KTsKIH0KIAotaW5saW5lIFByb3BlcnR5T2Zmc2V0IG9mZnNldEZvclByb3Bl
cnR5TnVtYmVyKGludCBwcm9wZXJ0eU51bWJlciwgaW50IGlubGluZUNhcGFjaXR5KQorY29uc3Rl
eHByIGlubGluZSBQcm9wZXJ0eU9mZnNldCBvZmZzZXRGb3JQcm9wZXJ0eU51bWJlcihpbnQgcHJv
cGVydHlOdW1iZXIsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQgPSBwcm9wZXJ0eU51bWJlcjsKICAgICBpZiAob2Zmc2V0ID49IGlubGluZUNhcGFjaXR5
KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436300</attachid>
            <date>2021-08-24 10:00:32 -0700</date>
            <delta_ts>2021-08-25 09:47:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229038-20210824130032.patch</filename>
            <type>text/plain</type>
            <size>20320</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTgyMmE3MWQ5NDM5YTAzOTllZjQwNDhjZDNiODhlNjc4NWIyNzgyLi4zNWZhZjA3YjVhOGUzNjQ0
YmM0NmQ3ZDIxNWI5NWIzNzJhNDYxN2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0wOC0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVj
dHVyZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNo
IGFsc28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkg
ZWxpbWluYXRpb24gdG8gYXJtNjQuIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlCisgICAgICAgIHBy
b3BlcnR5IG9mZnNldCBmdW5jdGlvbnMgYXJlIG5vdyBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1
cm4KKyAgICAgICAgaW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZSB2YWx1ZXMgY2Fu
IGJlIG5lZ2F0aXZlLgorCisgICAgICAgIFRoZXJlJ3MgYWxzbyBhIG1pbm9yIGZpeCB0byBkaXNh
YmxlIE1TVkMncyBzaWduZWQgdG8gdW5zaWduZWQKKyAgICAgICAgY2FzdCB3YXJuaW5nIGZvciBM
TEludE9mZnNldHNFeHRyYWN0b3IgYXMgd2UgZG9uJ3QgY2FyZSBhYm91dAorICAgICAgICBzaWdu
ZWRuZXNzIGZvciBleHRyYWN0aW5nIGNvbnN0YW50cy4KKworICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVFbnVtZXJhdG9yR2V0QnlWYWwpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0
cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsKToKKyAgICAgICAgKiBsbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c206CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNt
L2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3IucmI6CisgICAgICAgICogcnVudGltZS9CdXR0ZXJm
bHkuaDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjppbmRleE9mUHJvcGVydHlTdG9yYWdlKToK
KyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Om9mZnNldEluQnV0
dGVyZmx5KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5T2Zmc2V0Lmg6CisgICAgICAgIChK
U0M6OmNoZWNrT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVPZmZzZXQpOgorICAgICAg
ICAoSlNDOjppc1ZhbGlkT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNJbmxpbmVPZmZzZXQpOgor
ICAgICAgICAoSlNDOjppc091dE9mTGluZU9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldElu
SW5saW5lU3RvcmFnZSk6CisgICAgICAgIChKU0M6Om9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZSk6
CisgICAgICAgIChKU0M6Om9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UpOgorICAgICAgICAoSlND
OjpudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6bnVt
YmVyT2ZTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldEZvclByb3BlcnR5
TnVtYmVyKToKKwogMjAyMS0wOC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCBzaG91bGQg
bm90IGxvYWQgaW5kZXhpbmdUeXBlIHVubmVjZXNzYXJpbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggY2ZhYzE3ZWMwOWNmY2JmMDg5
MDk3NjMzZjA3Y2EwM2FiMjMyZTAxYy4uYWVjODRhMDA4YjQ5NzE0ODU5NjJlZWRkMjk0ODk3MTkx
MzFiYjY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEzNjQ3LDcgKzEzNjQ3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIG1faml0
LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAg
ICAgIGlmICghaGF2ZVN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIo
TWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUNlbGxHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSksIHN0b3JhZ2VHUFIpOwotICAgICAgICAgICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZG
aXJzdFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmly
c3RPdXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgICAg
ICAgICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldElu
QnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHN0YXRpY19jYXN0PGludHB0cl90Pihz
aXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUo
TWFjcm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzY3JhdGNoR1BSLCBNYWNyb0Fz
c2VtYmxlcjo6VGltZXNFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSwgcmVzdWx0UmVncyk7
CiAgICAgICAgICAgICAgICAgZG9uZUNhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwogICAgICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CmluZGV4IDVhM2U5OGY3NTM3MDFkM2IzNGY4NGI5ODA4M2QyNGRhZThlZjcxMDAuLmZmMjE5MDk1
MzM5NzA2Mjk4ZGRlMzQ2YmRjOGNiZGQyZTAxNWNmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEzMjU4LDcgKzEzMjU4LDcgQEAgcHJp
dmF0ZToKIAogICAgICAgICBMVmFsdWUgcmVhbEluZGV4ID0gbV9vdXQuc2lnbkV4dDMyVG82NCgK
ICAgICAgICAgICAgIG1fb3V0Lm5lZyhtX291dC5zdWIoaW5kZXgsIGlubGluZUNhcGFjaXR5KSkp
OwotICAgICAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGlu
dDMyX3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2Yo
RW5jb2RlZEpTVmFsdWUpOworICAgICAgICBjb25zdGV4cHIgaW50cHRyX3Qgb2Zmc2V0T2ZGaXJz
dFByb3BlcnR5ID0gb2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpICogc3Rh
dGljX2Nhc3Q8aW50cHRyX3Q+KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpOwogICAgICAgICByZXN1
bHRzLmFwcGVuZChtX291dC5hbmNob3IoCiAgICAgICAgICAgICBtX291dC5sb2FkNjQobV9vdXQu
YmFzZUluZGV4KG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpLCBzdG9yYWdlLCByZWFs
SW5kZXgsIFNjYWxlRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSkpKSk7CiAgICAgICAgIG1f
b3V0Lmp1bXAoY29udGludWF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggM2QxZDg0ZmM4MjAyYmY4ODliZGYyMGVhMzM4ZGY4
YTkxMTA5MDYzYi4uZDEzZTg1YmVkYWNkNjMzYjM1NmUzZThkZjA3OGJjNTA4ZWM5ZjNjNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAg
LTMwODksNyArMzA4OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3Zh
bChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHN1YjMyKEFkZHJl
c3MocmVnVDIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlP
ZmZzZXQoKSksIHJlZ1QzKTsKICAgICBuZWczMihyZWdUMyk7CiAgICAgc2lnbkV4dGVuZDMyVG9Q
dHIocmVnVDMsIHJlZ1QzKTsKLSAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0
YXRpY19jYXN0PGludDMyX3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0
KSkgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOworICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZz
ZXRPZkZpcnN0UHJvcGVydHkgPSBvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNl
dCkgKiBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSk7CiAgICAg
bG9hZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDMsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQ
cm9wZXJ0eSksIHJlc3VsdEdQUik7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KaW5kZXggMTdmYjdiYmJiNjdiNmIyYTFmZGM5Mjg4ZWE5ZmJjMzM0N2M0NzVlYy4uMTVmZjg5
NmQzY2MxZTRjZTEzMTM1N2IwNDJhNDNjY2Q0OTE3NDFiMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTk5NiwxMCAr
MTk5Niw2IEBAIHNsb3dQYXRoT3AoZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5KQogc2xvd1BhdGhP
cChkZWZpbmVfZGF0YV9wcm9wZXJ0eSkKIHNsb3dQYXRoT3AoZ2V0X2J5X3ZhbF93aXRoX3RoaXMp
CiBzbG93UGF0aE9wKGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQotc2xvd1BhdGhPcChlbnVtZXJh
dG9yX25leHQpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKLXNsb3dQYXRoT3Ao
ZW51bWVyYXRvcl9pbl9ieV92YWwpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9w
ZXJ0eSkKIAogaWYgbm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9v
ZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVy
cHJldGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20KaW5kZXggMzcxNDgzMWE5Njg4ZjIwZDM4M2E5ZTliNjNiZjFkMjky
ZTg2NWJjZi4uYjhhMGYyMDU0MzkxNGJiZDZhYjVkODMyMTBhZDM3NTc5MzAzMzQ5NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82
NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KQEAgLTMwNzksMyArMzA3OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
c2V0X3ByaXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
CiAgICAgZGlzcGF0Y2goKQogZW5kKQogCitzbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKK3Ns
b3dQYXRoT3AoZW51bWVyYXRvcl9nZXRfYnlfdmFsKQorc2xvd1BhdGhPcChlbnVtZXJhdG9yX2lu
X2J5X3ZhbCkKK3Nsb3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQppbmRleCA4YTVmN2QyM2U2NDc2M2JhMjU5ZTFiMmM1ZDg3ZjhkMTZiODI5YWRhLi5iMjdlOTQ4
YTVmZTNkNDA4ODJlOWUwYTVkOGQ3ZDVlODNhMjkyNjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNTM0LDYg
KzUzNCwxMSBAQCBtYWNybyBsb2FkVmFyaWFibGUoZ2V0LCBmaWVsZE5hbWUsIHZhbHVlUmVnKQog
ICAgIGxvYWRxIFtjZnIsIHZhbHVlUmVnLCA4XSwgdmFsdWVSZWcKIGVuZAogCittYWNybyBzdG9y
ZVZhcmlhYmxlKGdldCwgZmllbGROYW1lLCBuZXdWYWx1ZVJlZywgc2NyYXRjaFJlZykKKyAgICBn
ZXQoZmllbGROYW1lLCBzY3JhdGNoUmVnKQorICAgIHN0b3JlcSBuZXdWYWx1ZVJlZywgW2Nmciwg
c2NyYXRjaFJlZywgOF0KK2VuZAorCiAjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVu
dCByZWdpc3RlcnMuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCiBtYWNybyBsb2FkQ29uc3RhbnQo
c2l6ZSwgaW5kZXgsIHZhbHVlKQogICAgIG1hY3JvIGxvYWROYXJyb3coKQpAQCAtMzA3Myw4ICsz
MDc4LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9y
TmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKIC5ub3REb25lOgogICAgIG1hY3JvIHN0
b3JlVmFsdWVBbmREaXNwYXRjaCh2KQogICAgICAgICBtb3ZlIHYsIHQyCi0gICAgICAgIGdldCht
X3ZhbHVlLCB0MSkKLSAgICAgICAgc3RvcmVxIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICAgICAgc3Rv
cmVWYXJpYWJsZShnZXQsIG1fdmFsdWUsIHQyLCB0MSkKICAgICAgICAgY2hlY2tTdGFja1BvaW50
ZXJBbGlnbm1lbnQodDAsIDB4YmFkZGIwMWUpCiAgICAgICAgIGRpc3BhdGNoKCkKICAgICBlbmQK
QEAgLTMwODksNiArMzA5MywxMTMgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9u
ZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNw
YXRjaCgpCiBlbmQpCiAKK2xsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JO
ZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKKyAgICAjIE5vdGU6IHRoaXMgd2lsbCBh
bHdheXMgY2FsbCB0aGUgc2xvdyBwYXRoIG9uIGF0IGxlYXN0IHRoZSBmaXJzdC9sYXN0IGV4ZWN1
dGlvbiBvZiBFbnVtZXJhdG9yTmV4dCBmb3IgYW55IGdpdmVuIGxvb3AuCisgICAgIyBUaGUgdXBz
aWRlIHRoaXMgaXMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHJlY29yZCBhbnkgbWV0YWRhdGEgb3Ig
bW9kZSBpbmZvcm1hdGlvbiBoZXJlIGFzIHRoZSBzbG93IHBhdGggd2lsbCBkbyBpdCBmb3IgdXMg
d2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gSW5pdE1vZGUvSW5kZXhlZE1vZGUgdG8gT3duU3RydWN0
dXJlTW9kZSwgb3IgZnJvbSBPd25TdHJ1Y3R1cmVNb2RlIHRvIEdlbmVyaWNNb2RlLgorICAgIGdl
dChtX21vZGUsIHQwKQorICAgIGJibmVxIHQwLCBjb25zdGV4cHIgSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yOjpPd25TdHJ1Y3R1cmVNb2RlLCAubmV4dFNsb3dQYXRoCisKKyAgICBnZXQobV9iYXNl
LCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MSwgdDAsIC5uZXh0
U2xvd1BhdGgpCisKKyAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2VudW1lcmF0b3IsIHQxKQorICAg
IGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRTdHJ1Y3R1cmVJRFt0MV0s
IHQyCisgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0MF0sIC5uZXh0U2xvd1Bh
dGgKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1faW5kZXgsIHQyKQorICAgIGFkZHEgMSwgdDIK
KyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fZW5kU3RydWN0dXJlUHJvcGVy
dHlJbmRleCwgdDMKKyAgICBiaWFlcSB0MiwgdDMsIC5uZXh0U2xvd1BhdGgKKworICAgIHN0b3Jl
VmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0MiwgdDMpCisgICAgbG9hZHAgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOjptX3Byb3BlcnR5TmFtZXNbdDFdLCB0MworICAgIHp4aTJxIHQyLCB0MgorICAg
IGxvYWRwIFt0MywgdDIsIFB0clNpemVdLCB0MworCisgICAgc3RvcmVWYXJpYWJsZShnZXQsIG1f
cHJvcGVydHlOYW1lLCB0MywgdDIpCisgICAgZGlzcGF0Y2goKQorCisubmV4dFNsb3dQYXRoOgor
ICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2VudW1lcmF0b3JfbmV4dCkKKyAgICBkaXNwYXRj
aCgpCitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9nZXRfYnlfdmFs
LCBPcEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
YXRhLCByZXR1cm4pCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAgbG9hZFZhcmlhYmxlKGdl
dCwgbV9tb2RlLCB0MCkKKworICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIG9yYiBidXQgdGhh
dCBkb2Vzbid0IGV4aXN0IGZvciBzb21lIHJlYXNvbi4uLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NDQ1CisgICAgbG9hZGIgT3BFbnVtZXJhdG9yR2V0QnlWYWw6
Ok1ldGFkYXRhOjptX2VudW1lcmF0b3JNZXRhZGF0YVt0NV0sIHQxCisgICAgb3JpIHQwLCB0MQor
ICAgIHN0b3JlYiB0MSwgT3BFbnVtZXJhdG9yR2V0QnlWYWw6Ok1ldGFkYXRhOjptX2VudW1lcmF0
b3JNZXRhZGF0YVt0NV0KKworICAgIGJibmVxIHQwLCBjb25zdGV4cHIgSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yOjpPd25TdHJ1Y3R1cmVNb2RlLCAuZ2V0U2xvd1BhdGgKKworICAgIGdldChtX2Jh
c2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmdl
dFNsb3dQYXRoKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9lbnVtZXJhdG9yLCB0MSkKKyAg
ICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlSURbdDFd
LCB0MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDBdLCAuZ2V0U2xvd1Bh
dGgKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1faW5kZXgsIHQyKQorICAgIGxvYWRpIEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRJbmxpbmVDYXBhY2l0eVt0MV0sIHQxCisgICAg
YmlhZXEgdDIsIHQxLCAub3V0T2ZMaW5lCisKKyAgICB6eGkycSB0MiwgdDIKKyAgICBsb2FkcSBz
aXplb2YgSlNPYmplY3RbdDAsIHQyLCA4XSwgdDIKKyAgICBqbXAgLmRvbmUKKworLm91dE9mTGlu
ZToKKyAgICBsb2FkcCBKU09iamVjdDo6bV9idXR0ZXJmbHlbdDBdLCB0MAorICAgIHN1YmkgdDEs
IHQyCisgICAgbmVnaSB0MgorICAgIHN4aTJxIHQyLCB0MgorICAgIGxvYWRxIGNvbnN0ZXhwciAo
KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5jb2Rl
ZEpTVmFsdWUpKVt0MCwgdDIsIDhdLCB0MgorCisuZG9uZToKKyAgICB2YWx1ZVByb2ZpbGUoT3BF
bnVtZXJhdG9yR2V0QnlWYWwsIG1fcHJvZmlsZSwgdDUsIHQyKQorICAgIHJldHVybih0MikKKwor
LmdldFNsb3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2VudW1lcmF0b3JfZ2V0
X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCgpCitlbmQpCisKK21hY3JvIGhhc1Byb3BlcnR5SW1wbChv
cGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIHNsb3dQ
YXRoKQorICAgIG1ldGFkYXRhKHQ1LCB0MCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fbW9k
ZSwgdDApCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgb3JiIGJ1dCB0aGF0IGRvZXNuJ3Qg
ZXhpc3QgZm9yIHNvbWUgcmVhc29uLi4uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjk0NDUKKyAgICBsb2FkYiAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51
bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBvcmkgdDAsIHQxCisgICAgc3RvcmViIHQxLCAl
b3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XQorCisgICAg
YmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVy
ZU1vZGUsIC5jYWxsU2xvd1BhdGgKKworICAgIGdldChtX2Jhc2UsIHQxKQorICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmNhbGxTbG93UGF0aCkKKworICAgIGxv
YWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwgdDEpCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZUlEW3QxXSwgdDIKKyAgICBiaW5lcSB0Miwg
SlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93UGF0aAorCisgICAgbW92ZSBWYWx1
ZVRydWUsIHQyCisgICAgcmV0dXJuKHQyKQorCisuY2FsbFNsb3dQYXRoOgorICAgIGNhbGxTbG93
UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgpCitlbmQKKworbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJhdG9ySW5CeVZhbCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBs
KE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwpCitlbmQpCisKK2xsaW50T3BXaXRo
TWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5LCBPcEVudW1lcmF0b3JIYXNP
d25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhhc093blByb3BlcnR5LCBzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xvd19wYXRoX2VudW1lcmF0b3JfaGFz
X293bl9wcm9wZXJ0eSkKK2VuZCkKIAogbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9pbnRlcm5h
bF9maWVsZCwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYmFzZSwgdDEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYiBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDcyYjZjM2NmZWMyZjIwYTEzMmY2NWJk
MGZkZjY4YWRiMDVjMDgzYjkuLjFhZGQ1NDBkODM1YzM1ZTNmNzI3Y2RkNjMxYzliODYwOWYxMjY5
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJi
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCkBAIC04ODQs
NyArODg0LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibW92ZSIKICAgICAg
ICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8KICAgICAgICAgICAgICAgICBlbWl0QVJN
NjRNb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5kc1sxXSkKLSAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdICE9IG9wZXJhbmRzWzFdCiAg
ICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVyYW5kcywgOnF1YWQpCiAgICAgICAg
ICAgICBlbmQKICAgICAgICAgd2hlbiAibW92ZWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYgpp
bmRleCA0NTRkYjJiMTdjY2VlMThjZjA0NjQ5ZWRlNjFiZGQ4OTE1ZGJiZjNkLi5mMWEwODcyYTYy
MmQxN2JmZGQxMWQ2OGFmYjU2M2JkODA0OWU2NTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVyYXRlX29mZnNldF9leHRyYWN0b3Iu
cmIKQEAgLTkyLDYgKzkyLDExIEBAIEZpbGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKICAgICAg
ICAgICAgIGNvbnN0c0xpc3QgPSBjb25zdHNMaXN0KGxvd0xldmVsQVNUKQogCiAgICAgICAgICAg
ICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwg
YmFja2VuZCkgeworCisgICAgICAgICAgICAgICAgIyBXaW5kb3dzIGNvbXBsYWlucyBhYm91dCBz
aWduZWQgaW50ZWdlcnMgYmVpbmcgY2FzdCB0byB1bnNpZ25lZCBidXQgd2UganVzdCB3YW50IHRo
ZSBiaXRzLgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiXCNpZiBDT01QSUxFUihNU1ZDKSIK
KyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIlwjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MzA4
KSIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIlwjZW5kaWYiCiAgICAgICAgICAgICAgICAg
Y29uc3RzTGlzdC5lYWNoX3dpdGhfaW5kZXggewogICAgICAgICAgICAgICAgICAgICB8IGNvbnN0
LCBpbmRleCB8CiAgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAiY29uc3RleHByIGludDY0
X3QgY29uc3RWYWx1ZSN7aW5kZXh9ID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oI3tjb25zdC52YWx1
ZX0pOyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZs
eS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKaW5kZXggNDkz
NTFjNzdjNTk4MzkwMzQyZjllYzYyZTBkZDExNTYzZTFlYzdlOC4uNGJkZGU0ZDA1YjM5NmQ0NzA3
Mzc5Y2I2M2VkZDI5YTNmNmQxMmMzYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQnV0dGVyZmx5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QnV0dGVyZmx5LmgKQEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAg
IHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2UoKSB7IHJldHVybiAtc3Rh
dGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoSW5kZXhpbmdIZWFkZXIpKTsgfQotICAgIHN0YXRp
YyBpbnQgaW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCisgICAgY29uc3RleHByIHN0YXRpYyBpbnQg
aW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZW9mKElu
ZGV4aW5nSGVhZGVyKSA9PSBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgcmV0dXJu
IC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggY2E3NDI2
NDI1NzFhYzQ0MmIyNGU3NGVmNDIzNWU4ZTkzZTA0Mjg1Mi4uNGMwZWJkMWY2MTY1NzJkMDhhZmIz
ODViNmZlNTI5ZWI4Y2I3M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09i
amVjdC5oCkBAIC0xNTY0LDcgKzE1NjQsNyBAQCBpbmxpbmUgYm9vbCBKU09iamVjdDo6cHV0RGly
ZWN0KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZQogICAg
IHJldHVybiBwdXREaXJlY3RJbnRlcm5hbDxQdXRNb2RlRGVmaW5lT3duUHJvcGVydHk+KHZtLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBzbG90KTsKIH0KIAotaW5saW5lIHNpemVfdCBvZmZzZXRJ
bkJ1dHRlcmZseShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0
cl90IG9mZnNldEluQnV0dGVyZmx5KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICByZXR1
cm4gb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKG9mZnNldCkgKyBCdXR0ZXJmbHk6OmluZGV4T2ZQ
cm9wZXJ0eVN0b3JhZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1Byb3BlcnR5T2Zmc2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Q
cm9wZXJ0eU9mZnNldC5oCmluZGV4IGU3MDcyOWY3ZWMzNjEzNjU4MzE2ZDljOWYzODM0NTNlNGI4
Nzg2N2MuLjY5YWViYWFmNzg4OWM4ZTBhZGMxMjE1NDQ1YWI5NjQ3M2Q0M2NlNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlPZmZzZXQuaApAQCAtMzcsMjYg
KzM3LDI2IEBAIHN0YXRpYyBjb25zdGV4cHIgUHJvcGVydHlPZmZzZXQga25vd25Qb2x5UHJvdG9P
ZmZzZXQgPSAwOwogc3RhdGljX2Fzc2VydChrbm93blBvbHlQcm90b09mZnNldCA8IGZpcnN0T3V0
T2ZMaW5lT2Zmc2V0LCAiV2UgYXNzdW1lIGluIGFsbCB0aGUgSklUcyB0aGF0IHRoZSBwb2x5IHBy
b3RvIG9mZnNldCBpcyBhbiBpbmxpbmUgb2Zmc2V0Iik7CiAKIC8vIERlY2xhcmUgYWxsIG9mIHRo
ZSBmdW5jdGlvbnMgYmVjYXVzZSB0aGV5IHRlbmQgdG8gZG8gZm9yd2FyZCBjYWxscy4KLWlubGlu
ZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSB2b2lkIGNoZWNrT2Zm
c2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotaW5saW5lIHZvaWQgdmFs
aWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQo
UHJvcGVydHlPZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSk7Ci1pbmxpbmUgYm9vbCBpc1ZhbGlk
T2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3Bl
cnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0
KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsK
LWlubGluZSBzaXplX3Qgb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsK
LWlubGluZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCk7
Ci1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVy
dHlPZmZzZXQpOwotaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3Bl
cnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotCi1pbmxpbmUgdm9pZCBjaGVja09mZnNl
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIHZvaWQgY2hlY2tPZmZz
ZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOworY29uc3RleHByIGlubGluZSB2b2lk
IHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2
YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKK2NvbnN0
ZXhwciBpbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhw
ciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCk7Citjb25zdGV4cHIg
aW5saW5lIGJvb2wgaXNPdXRPZkxpbmVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHBy
IGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbklubGluZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOwor
Y29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbk91dE9mTGluZVN0b3JhZ2UoUHJvcGVy
dHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJblJlc3BlY3RpdmVT
dG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgc2l6ZV90IG51bWJlck9m
T3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlu
bGluZSBzaXplX3QgbnVtYmVyT2ZTbG90c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50
IGlubGluZUNhcGFjaXR5KTsKKworY29uc3RleHByIGlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBB
U1NFUlQob2Zmc2V0ID49IGludmFsaWRPZmZzZXQpOwogfQogCi1pbmxpbmUgdm9pZCBjaGVja09m
ZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhw
ciBpbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxp
bmVDYXBhY2l0eSkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsKICAgICBVTlVTRURfUEFS
QU0oaW5saW5lQ2FwYWNpdHkpOwpAQCAtNjYsNTggKzY2LDU4IEBAIGlubGluZSB2b2lkIGNoZWNr
T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogICAgICAg
ICB8fCBpc091dE9mTGluZU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5saW5lIHZvaWQgdmFsaWRh
dGVPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSB2b2lkIHZh
bGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBjaGVja09mZnNldChv
ZmZzZXQpOwogICAgIEFTU0VSVChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkpOwogfQogCi1pbmxpbmUg
dm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBh
Y2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBjaGVja09mZnNldChvZmZzZXQs
IGlubGluZUNhcGFjaXR5KTsKICAgICBBU1NFUlQoaXNWYWxpZE9mZnNldChvZmZzZXQpKTsKIH0K
IAotaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25z
dGV4cHIgaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7
CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0ICE9IGludmFsaWRP
ZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9m
ZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zmc2V0
IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zm
c2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc091dE9m
TGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zm
c2V0KTsKICAgICByZXR1cm4gIWlzSW5saW5lT2Zmc2V0KG9mZnNldCk7CiB9CiAKLWlubGluZSBz
aXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0
ZXhwciBpbmxpbmUgaW50cHRyX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0
IG9mZnNldCkKIHsKICAgICB2YWxpZGF0ZU9mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc0lu
bGluZU9mZnNldChvZmZzZXQpKTsKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi1pbmxpbmUgc2l6
ZV90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25z
dGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQpCiB7CiAgICAgdmFsaWRhdGVPZmZzZXQob2Zmc2V0KTsKICAgICBBU1NFUlQo
aXNPdXRPZkxpbmVPZmZzZXQob2Zmc2V0KSk7CiAgICAgcmV0dXJuIC1zdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KG9mZnNldCAtIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAtIDE7CiB9CiAKLWlubGluZSBz
aXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitj
b25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UoUHJvcGVy
dHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGlmIChpc0lubGluZU9mZnNldChvZmZzZXQpKQogICAg
ICAgICByZXR1cm4gb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKG9mZnNldCk7CiAgICAgcmV0dXJuIG9m
ZnNldEluT3V0T2ZMaW5lU3RvcmFnZShvZmZzZXQpOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJl
ck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29u
c3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZPdXRPZkxpbmVTbG90c0Zvck1heE9mZnNldChQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICBp
ZiAob2Zmc2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQpCkBAIC0xMjUsNyArMTI1LDcgQEAgaW5s
aW5lIHNpemVfdCBudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zm
c2V0IG9mZnNldCkKICAgICByZXR1cm4gb2Zmc2V0IC0gZmlyc3RPdXRPZkxpbmVPZmZzZXQgKyAx
OwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlP
ZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitjb25zdGV4cHIgaW5saW5lIHNpemVf
dCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlu
bGluZUNhcGFjaXR5KQogewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgaW5saW5lQ2FwYWNpdHkp
OwogICAgIGlmIChvZmZzZXQgPCBpbmxpbmVDYXBhY2l0eSkKQEAgLTEzMyw3ICsxMzMsNyBAQCBp
bmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zm
c2V0LCBpbnQgaW5saW5lQ2FwYWNpdAogICAgIHJldHVybiBpbmxpbmVDYXBhY2l0eSArIG51bWJl
ck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQob2Zmc2V0KTsKIH0KIAotaW5saW5lIFByb3Bl
cnR5T2Zmc2V0IG9mZnNldEZvclByb3BlcnR5TnVtYmVyKGludCBwcm9wZXJ0eU51bWJlciwgaW50
IGlubGluZUNhcGFjaXR5KQorY29uc3RleHByIGlubGluZSBQcm9wZXJ0eU9mZnNldCBvZmZzZXRG
b3JQcm9wZXJ0eU51bWJlcihpbnQgcHJvcGVydHlOdW1iZXIsIGludCBpbmxpbmVDYXBhY2l0eSkK
IHsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBwcm9wZXJ0eU51bWJlcjsKICAgICBpZiAo
b2Zmc2V0ID49IGlubGluZUNhcGFjaXR5KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436395</attachid>
            <date>2021-08-25 09:47:53 -0700</date>
            <delta_ts>2021-08-25 11:00:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-229038-20210825124752.patch</filename>
            <type>text/plain</type>
            <size>20335</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YTgyMmE3MWQ5NDM5YTAzOTllZjQwNDhjZDNiODhlNjc4NWIyNzgyLi40YTIwMGQ2ZWRjOWE0Y2Vl
YTNmZmU3ZTczZGVlN2QyM2NiMzQwOWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0OCBAQAorMjAyMS0wOC0yNCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgZm9yLWluIE93blN0cnVjdHVyZU1vZGUgb3B0aW1pemF0aW9u
cyB0byBMTEludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI5MDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpbWl6YXRpb25zIHdlIGhhdmUgZm9yIE93blN0cnVjdHVy
ZU1vZGUgaW4KKyAgICAgICAgdGhlIEJhc2VsaW5lIHRvIHRoZSBMTEludC4gVGhlIHBhdGNoIGFs
c28gYWRkcyByZWR1bmRhbnQgc2VsZiBtb3ZlCisgICAgICAgIChpLmUuIG1vdmUgYSwgYSkgZWxp
bWluYXRpb24gdG8gYXJtNjQuIEZpbmFsbHksIGEgYnVuY2ggb2YgdGhlCisgICAgICAgIHByb3Bl
cnR5IG9mZnNldCBmdW5jdGlvbnMgYXJlIG5vdyBtYXJrZWQgY29uc3RleHByIGFuZCByZXR1cm4K
KyAgICAgICAgaW50cHRyX3QgcmF0aGVyIHRoYW4gc2l6ZV90IGFzIHRoZSB2YWx1ZXMgY2FuIGJl
IG5lZ2F0aXZlLgorCisgICAgICAgIFRoZXJlJ3MgYWxzbyBhIG1pbm9yIGZpeCB0byBkaXNhYmxl
IE1TVkMncyBzaWduZWQgdG8gdW5zaWduZWQKKyAgICAgICAgY2FzdCB3YXJuaW5nIGZvciBMTElu
dE9mZnNldHNFeHRyYWN0b3IgYXMgd2UgZG9uJ3QgY2FyZSBhYm91dAorICAgICAgICBzaWduZWRu
ZXNzIGZvciBleHRyYWN0aW5nIGNvbnN0YW50cy4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVF
bnVtZXJhdG9yR2V0QnlWYWwpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgor
ICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmlj
dEVxKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsKToKKyAgICAgICAgKiBsbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc206
CisgICAgICAgICogb2ZmbGluZWFzbS9hcm02NC5yYjoKKyAgICAgICAgKiBvZmZsaW5lYXNtL2dl
bmVyYXRlX29mZnNldF9leHRyYWN0b3IucmI6CisgICAgICAgICogcnVudGltZS9CdXR0ZXJmbHku
aDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjppbmRleE9mUHJvcGVydHlTdG9yYWdlKToKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAgICAgIChKU0M6Om9mZnNldEluQnV0dGVy
Zmx5KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5T2Zmc2V0Lmg6CisgICAgICAgIChKU0M6
OmNoZWNrT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6dmFsaWRhdGVPZmZzZXQpOgorICAgICAgICAo
SlNDOjppc1ZhbGlkT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6aXNJbmxpbmVPZmZzZXQpOgorICAg
ICAgICAoSlNDOjppc091dE9mTGluZU9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldEluSW5s
aW5lU3RvcmFnZSk6CisgICAgICAgIChKU0M6Om9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZSk6Cisg
ICAgICAgIChKU0M6Om9mZnNldEluUmVzcGVjdGl2ZVN0b3JhZ2UpOgorICAgICAgICAoSlNDOjpu
dW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zmc2V0KToKKyAgICAgICAgKEpTQzo6bnVtYmVy
T2ZTbG90c0Zvck1heE9mZnNldCk6CisgICAgICAgIChKU0M6Om9mZnNldEZvclByb3BlcnR5TnVt
YmVyKToKKwogMjAyMS0wOC0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgog
CiAgICAgICAgIFtKU0NdIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbCBzaG91bGQgbm90
IGxvYWQgaW5kZXhpbmdUeXBlIHVubmVjZXNzYXJpbHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggY2ZhYzE3ZWMwOWNmY2JmMDg5MDk3
NjMzZjA3Y2EwM2FiMjMyZTAxYy4uYWVjODRhMDA4YjQ5NzE0ODU5NjJlZWRkMjk0ODk3MTkxMzFi
YjY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKQEAgLTEzNjQ3LDcgKzEzNjQ3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUVudW1lcmF0b3JHZXRCeVZhbChOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIG1faml0LnNp
Z25FeHRlbmQzMlRvUHRyKHNjcmF0Y2hHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAg
IGlmICghaGF2ZVN0b3JhZ2UpCiAgICAgICAgICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZUNlbGxHUFIsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZz
ZXQoKSksIHN0b3JhZ2VHUFIpOwotICAgICAgICAgICAgICAgIGludDMyX3Qgb2Zmc2V0T2ZGaXJz
dFByb3BlcnR5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4ob2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RP
dXRPZkxpbmVPZmZzZXQpKSAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSk7CisgICAgICAgICAgICAg
ICAgY29uc3RleHByIGludHB0cl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IG9mZnNldEluQnV0
dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAqIHN0YXRpY19jYXN0PGludHB0cl90PihzaXpl
b2YoRW5jb2RlZEpTVmFsdWUpKTsKICAgICAgICAgICAgICAgICBtX2ppdC5sb2FkVmFsdWUoTWFj
cm9Bc3NlbWJsZXI6OkJhc2VJbmRleChzdG9yYWdlR1BSLCBzY3JhdGNoR1BSLCBNYWNyb0Fzc2Vt
Ymxlcjo6VGltZXNFaWdodCwgb2Zmc2V0T2ZGaXJzdFByb3BlcnR5KSwgcmVzdWx0UmVncyk7CiAg
ICAgICAgICAgICAgICAgZG9uZUNhc2VzLmFwcGVuZChtX2ppdC5qdW1wKCkpOwogICAgICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmlu
ZGV4IDVhM2U5OGY3NTM3MDFkM2IzNGY4NGI5ODA4M2QyNGRhZThlZjcxMDAuLmZmMjE5MDk1MzM5
NzA2Mjk4ZGRlMzQ2YmRjOGNiZGQyZTAxNWNmMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEzMjU4LDcgKzEzMjU4LDcgQEAgcHJpdmF0
ZToKIAogICAgICAgICBMVmFsdWUgcmVhbEluZGV4ID0gbV9vdXQuc2lnbkV4dDMyVG82NCgKICAg
ICAgICAgICAgIG1fb3V0Lm5lZyhtX291dC5zdWIoaW5kZXgsIGlubGluZUNhcGFjaXR5KSkpOwot
ICAgICAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRpY19jYXN0PGludDMy
X3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkgKiBzaXplb2YoRW5j
b2RlZEpTVmFsdWUpOworICAgICAgICBjb25zdGV4cHIgaW50cHRyX3Qgb2Zmc2V0T2ZGaXJzdFBy
b3BlcnR5ID0gb2Zmc2V0SW5CdXR0ZXJmbHkoZmlyc3RPdXRPZkxpbmVPZmZzZXQpICogc3RhdGlj
X2Nhc3Q8aW50cHRyX3Q+KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpOwogICAgICAgICByZXN1bHRz
LmFwcGVuZChtX291dC5hbmNob3IoCiAgICAgICAgICAgICBtX291dC5sb2FkNjQobV9vdXQuYmFz
ZUluZGV4KG1faGVhcHMucHJvcGVydGllcy5hdEFueU51bWJlcigpLCBzdG9yYWdlLCByZWFsSW5k
ZXgsIFNjYWxlRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9wZXJ0eSkpKSk7CiAgICAgICAgIG1fb3V0
Lmp1bXAoY29udGludWF0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggM2QxZDg0ZmM4MjAyYmY4ODliZGYyMGVhMzM4ZGY4YTkx
MTA5MDYzYi4uZDEzZTg1YmVkYWNkNjMzYjM1NmUzZThkZjA3OGJjNTA4ZWM5ZjNjNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTMw
ODksNyArMzA4OSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbChj
b25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHN1YjMyKEFkZHJlc3Mo
cmVnVDIsIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6Y2FjaGVkSW5saW5lQ2FwYWNpdHlPZmZz
ZXQoKSksIHJlZ1QzKTsKICAgICBuZWczMihyZWdUMyk7CiAgICAgc2lnbkV4dGVuZDMyVG9QdHIo
cmVnVDMsIHJlZ1QzKTsKLSAgICBpbnQzMl90IG9mZnNldE9mRmlyc3RQcm9wZXJ0eSA9IHN0YXRp
Y19jYXN0PGludDMyX3Q+KG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkg
KiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpOworICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBvZmZzZXRP
ZkZpcnN0UHJvcGVydHkgPSBvZmZzZXRJbkJ1dHRlcmZseShmaXJzdE91dE9mTGluZU9mZnNldCkg
KiBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSk7CiAgICAgbG9h
ZDY0KEJhc2VJbmRleChyZWdUMCwgcmVnVDMsIFRpbWVzRWlnaHQsIG9mZnNldE9mRmlyc3RQcm9w
ZXJ0eSksIHJlc3VsdEdQUik7CiAgICAgZG9uZUNhc2VzLmFwcGVuZChqdW1wKCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
aW5kZXggMTdmYjdiYmJiNjdiNmIyYTFmZGM5Mjg4ZWE5ZmJjMzM0N2M0NzVlYy4uMTVmZjg5NmQz
Y2MxZTRjZTEzMTM1N2IwNDJhNDNjY2Q0OTE3NDFiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTk5NiwxMCArMTk5
Niw2IEBAIHNsb3dQYXRoT3AoZGVmaW5lX2FjY2Vzc29yX3Byb3BlcnR5KQogc2xvd1BhdGhPcChk
ZWZpbmVfZGF0YV9wcm9wZXJ0eSkKIHNsb3dQYXRoT3AoZ2V0X2J5X3ZhbF93aXRoX3RoaXMpCiBz
bG93UGF0aE9wKGdldF9wcm9wZXJ0eV9lbnVtZXJhdG9yKQotc2xvd1BhdGhPcChlbnVtZXJhdG9y
X25leHQpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKLXNsb3dQYXRoT3AoZW51
bWVyYXRvcl9pbl9ieV92YWwpCi1zbG93UGF0aE9wKGVudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0
eSkKIAogaWYgbm90IEpTVkFMVUU2NAogICAgIHNsb3dQYXRoT3AoZ2V0X3Byb3RvdHlwZV9vZikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyMzJfNjQuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIzMl82NC5hc20KaW5kZXggMzcxNDgzMWE5Njg4ZjIwZDM4M2E5ZTliNjNiZjFkMjkyZTg2
NWJjZi4uYjhhMGYyMDU0MzkxNGJiZDZhYjVkODMyMTBhZDM3NTc5MzAzMzQ5NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20KQEAgLTMwNzksMyArMzA3OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0
X3ByaXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkCiAg
ICAgZGlzcGF0Y2goKQogZW5kKQogCitzbG93UGF0aE9wKGVudW1lcmF0b3JfbmV4dCkKK3Nsb3dQ
YXRoT3AoZW51bWVyYXRvcl9nZXRfYnlfdmFsKQorc2xvd1BhdGhPcChlbnVtZXJhdG9yX2luX2J5
X3ZhbCkKK3Nsb3dQYXRoT3AoZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpp
bmRleCA4YTVmN2QyM2U2NDc2M2JhMjU5ZTFiMmM1ZDg3ZjhkMTZiODI5YWRhLi5iYWEwNzZhMDhm
NDMwM2UyYzgyY2JmMGE3YzM5OGUyM2M2NTIxNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNTM0LDYgKzUz
NCwxMSBAQCBtYWNybyBsb2FkVmFyaWFibGUoZ2V0LCBmaWVsZE5hbWUsIHZhbHVlUmVnKQogICAg
IGxvYWRxIFtjZnIsIHZhbHVlUmVnLCA4XSwgdmFsdWVSZWcKIGVuZAogCittYWNybyBzdG9yZVZh
cmlhYmxlKGdldCwgZmllbGROYW1lLCBuZXdWYWx1ZVJlZywgc2NyYXRjaFJlZykKKyAgICBnZXQo
ZmllbGROYW1lLCBzY3JhdGNoUmVnKQorICAgIHN0b3JlcSBuZXdWYWx1ZVJlZywgW2Nmciwgc2Ny
YXRjaFJlZywgOF0KK2VuZAorCiAjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVudCBy
ZWdpc3RlcnMuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCiBtYWNybyBsb2FkQ29uc3RhbnQoc2l6
ZSwgaW5kZXgsIHZhbHVlKQogICAgIG1hY3JvIGxvYWROYXJyb3coKQpAQCAtMzA3Myw4ICszMDc4
LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4
dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKIC5ub3REb25lOgogICAgIG1hY3JvIHN0b3Jl
VmFsdWVBbmREaXNwYXRjaCh2KQogICAgICAgICBtb3ZlIHYsIHQyCi0gICAgICAgIGdldChtX3Zh
bHVlLCB0MSkKLSAgICAgICAgc3RvcmVxIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICAgICAgc3RvcmVW
YXJpYWJsZShnZXQsIG1fdmFsdWUsIHQyLCB0MSkKICAgICAgICAgY2hlY2tTdGFja1BvaW50ZXJB
bGlnbm1lbnQodDAsIDB4YmFkZGIwMWUpCiAgICAgICAgIGRpc3BhdGNoKCkKICAgICBlbmQKQEAg
LTMwODksNiArMzA5MywxMTMgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0
LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRj
aCgpCiBlbmQpCiAKK2xsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JOZXh0
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKKyAgICAjIE5vdGU6IHRoaXMgd2lsbCBhbHdh
eXMgY2FsbCB0aGUgc2xvdyBwYXRoIG9uIGF0IGxlYXN0IHRoZSBmaXJzdC9sYXN0IGV4ZWN1dGlv
biBvZiBFbnVtZXJhdG9yTmV4dCBmb3IgYW55IGdpdmVuIGxvb3AuCisgICAgIyBUaGUgdXBzaWRl
IHRoaXMgaXMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIHJlY29yZCBhbnkgbWV0YWRhdGEgb3IgbW9k
ZSBpbmZvcm1hdGlvbiBoZXJlIGFzIHRoZSBzbG93IHBhdGggd2lsbCBkbyBpdCBmb3IgdXMgd2hl
biB0cmFuc2l0aW9uaW5nIGZyb20gSW5pdE1vZGUvSW5kZXhlZE1vZGUgdG8gT3duU3RydWN0dXJl
TW9kZSwgb3IgZnJvbSBPd25TdHJ1Y3R1cmVNb2RlIHRvIEdlbmVyaWNNb2RlLgorICAgIGxvYWRW
YXJpYWJsZShnZXQsIG1fbW9kZSwgdDApCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5uZXh0U2xvd1BhdGgKKworICAg
IGdldChtX2Jhc2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQx
LCB0MCwgLm5leHRTbG93UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRv
ciwgdDEpCisgICAgbG9hZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVj
dHVyZUlEW3QxXSwgdDIKKyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwg
Lm5leHRTbG93UGF0aAorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9pbmRleCwgdDIpCisgICAg
YWRkcSAxLCB0MgorICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9lbmRTdHJ1
Y3R1cmVQcm9wZXJ0eUluZGV4W3QxXSwgdDMKKyAgICBiaWFlcSB0MiwgdDMsIC5uZXh0U2xvd1Bh
dGgKKworICAgIHN0b3JlVmFyaWFibGUoZ2V0LCBtX2luZGV4LCB0MiwgdDMpCisgICAgbG9hZHAg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX3Byb3BlcnR5TmFtZXNbdDFdLCB0MworICAgIHp4
aTJxIHQyLCB0MgorICAgIGxvYWRwIFt0MywgdDIsIFB0clNpemVdLCB0MworCisgICAgc3RvcmVW
YXJpYWJsZShnZXQsIG1fcHJvcGVydHlOYW1lLCB0MywgdDIpCisgICAgZGlzcGF0Y2goKQorCisu
bmV4dFNsb3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2VudW1lcmF0b3JfbmV4
dCkKKyAgICBkaXNwYXRjaCgpCitlbmQpCisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVy
YXRvcl9nZXRfYnlfdmFsLCBPcEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbWV0YWRhdGEodDUsIHQwKQorCisgICAg
bG9hZFZhcmlhYmxlKGdldCwgbV9tb2RlLCB0MCkKKworICAgICMgRklYTUU6IFRoaXMgc2hvdWxk
IGJlIG9yYiBidXQgdGhhdCBkb2Vzbid0IGV4aXN0IGZvciBzb21lIHJlYXNvbi4uLiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI5NDQ1CisgICAgbG9hZGIgT3BFbnVt
ZXJhdG9yR2V0QnlWYWw6Ok1ldGFkYXRhOjptX2VudW1lcmF0b3JNZXRhZGF0YVt0NV0sIHQxCisg
ICAgb3JpIHQwLCB0MQorICAgIHN0b3JlYiB0MSwgT3BFbnVtZXJhdG9yR2V0QnlWYWw6Ok1ldGFk
YXRhOjptX2VudW1lcmF0b3JNZXRhZGF0YVt0NV0KKworICAgIGJibmVxIHQwLCBjb25zdGV4cHIg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpPd25TdHJ1Y3R1cmVNb2RlLCAuZ2V0U2xvd1BhdGgK
KworICAgIGdldChtX2Jhc2UsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNp
emUsIHQxLCB0MCwgLmdldFNsb3dQYXRoKQorCisgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9lbnVt
ZXJhdG9yLCB0MSkKKyAgICBsb2FkaSBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6Om1fY2FjaGVk
U3RydWN0dXJlSURbdDFdLCB0MgorICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJlSURb
dDBdLCAuZ2V0U2xvd1BhdGgKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1faW5kZXgsIHQyKQor
ICAgIGxvYWRpIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6bV9jYWNoZWRJbmxpbmVDYXBhY2l0
eVt0MV0sIHQxCisgICAgYmlhZXEgdDIsIHQxLCAub3V0T2ZMaW5lCisKKyAgICB6eGkycSB0Miwg
dDIKKyAgICBsb2FkcSBzaXplb2YgSlNPYmplY3RbdDAsIHQyLCA4XSwgdDIKKyAgICBqbXAgLmRv
bmUKKworLm91dE9mTGluZToKKyAgICBsb2FkcCBKU09iamVjdDo6bV9idXR0ZXJmbHlbdDBdLCB0
MAorICAgIHN1YmkgdDEsIHQyCisgICAgbmVnaSB0MgorICAgIHN4aTJxIHQyLCB0MgorICAgIGxv
YWRxIGNvbnN0ZXhwciAoKG9mZnNldEluQnV0dGVyZmx5KGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSkg
KiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKVt0MCwgdDIsIDhdLCB0MgorCisuZG9uZToKKyAgICB2
YWx1ZVByb2ZpbGUoT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1fcHJvZmlsZSwgdDUsIHQyKQorICAg
IHJldHVybih0MikKKworLmdldFNsb3dQYXRoOgorICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRo
X2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCgpCitlbmQpCisKK21hY3JvIGhh
c1Byb3BlcnR5SW1wbChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4sIHNsb3dQYXRoKQorICAgIG1ldGFkYXRhKHQ1LCB0MCkKKworICAgIGxvYWRWYXJp
YWJsZShnZXQsIG1fbW9kZSwgdDApCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgb3JiIGJ1
dCB0aGF0IGRvZXNuJ3QgZXhpc3QgZm9yIHNvbWUgcmVhc29uLi4uIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjk0NDUKKyAgICBsb2FkYiAlb3Bjb2RlU3RydWN0JTo6
TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFkYXRhW3Q1XSwgdDEKKyAgICBvcmkgdDAsIHQxCisg
ICAgc3RvcmViIHQxLCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fZW51bWVyYXRvck1ldGFk
YXRhW3Q1XQorCisgICAgYmJuZXEgdDAsIGNvbnN0ZXhwciBKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3I6Ok93blN0cnVjdHVyZU1vZGUsIC5jYWxsU2xvd1BhdGgKKworICAgIGdldChtX2Jhc2UsIHQx
KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLmNhbGxTbG93
UGF0aCkKKworICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fZW51bWVyYXRvciwgdDEpCisgICAgbG9h
ZGkgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZUlEW3QxXSwgdDIK
KyAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93UGF0aAor
CisgICAgbW92ZSBWYWx1ZVRydWUsIHQyCisgICAgcmV0dXJuKHQyKQorCisuY2FsbFNsb3dQYXRo
OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgpCitlbmQKKworbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJhdG9ySW5C
eVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAg
aGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwpCitlbmQp
CisKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5LCBP
cEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCByZXR1cm4pCisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhhc093blBy
b3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xvd19wYXRo
X2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2VuZCkKIAogbGxpbnRPcFdpdGhQcm9maWxl
KG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYmFzZSwgdDEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm02NC5yYiBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybTY0LnJiCmluZGV4IDcyYjZjM2Nm
ZWMyZjIwYTEzMmY2NWJkMGZkZjY4YWRiMDVjMDgzYjkuLjFhZGQ1NDBkODM1YzM1ZTNmNzI3Y2Rk
NjMxYzliODYwOWYxMjY5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FybTY0LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fy
bTY0LnJiCkBAIC04ODQsNyArODg0LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hl
biAibW92ZSIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzWzBdLmltbWVkaWF0ZT8KICAgICAgICAg
ICAgICAgICBlbWl0QVJNNjRNb3ZlSW1tZWRpYXRlKG9wZXJhbmRzWzBdLnZhbHVlLCBvcGVyYW5k
c1sxXSkKLSAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVsc2lmIG9wZXJhbmRzWzBdICE9
IG9wZXJhbmRzWzFdCiAgICAgICAgICAgICAgICAgZW1pdEFSTTY0KCJtb3YiLCBvcGVyYW5kcywg
OnF1YWQpCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAibW92ZWQiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFj
dG9yLnJiIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0
X2V4dHJhY3Rvci5yYgppbmRleCA0NTRkYjJiMTdjY2VlMThjZjA0NjQ5ZWRlNjFiZGQ4OTE1ZGJi
ZjNkLi5mMWEwODcyYTYyMmQxN2JmZGQxMWQ2OGFmYjU2M2JkODA0OWU2NTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFj
dG9yLnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2dlbmVyYXRlX29m
ZnNldF9leHRyYWN0b3IucmIKQEAgLTkyLDYgKzkyLDExIEBAIEZpbGUub3BlbihvdXRwdXRGbG5t
LCAidyIpIHsKICAgICAgICAgICAgIGNvbnN0c0xpc3QgPSBjb25zdHNMaXN0KGxvd0xldmVsQVNU
KQogCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNldHRpbmdz
LCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgeworCisgICAgICAgICAgICAgICAgIyBXaW5kb3dzIGNv
bXBsYWlucyBhYm91dCBzaWduZWQgaW50ZWdlcnMgYmVpbmcgY2FzdCB0byB1bnNpZ25lZCBidXQg
d2UganVzdCB3YW50IHRoZSBiaXRzLgorICAgICAgICAgICAgICAgIG91dHAucHV0cyAiXCNpZiBD
T01QSUxFUihNU1ZDKSIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIlwjcHJhZ21hIHdhcm5p
bmcoZGlzYWJsZTo0MzA4KSIKKyAgICAgICAgICAgICAgICBvdXRwLnB1dHMgIlwjZW5kaWYiCiAg
ICAgICAgICAgICAgICAgY29uc3RzTGlzdC5lYWNoX3dpdGhfaW5kZXggewogICAgICAgICAgICAg
ICAgICAgICB8IGNvbnN0LCBpbmRleCB8CiAgICAgICAgICAgICAgICAgICAgIG91dHAucHV0cyAi
Y29uc3RleHByIGludDY0X3QgY29uc3RWYWx1ZSN7aW5kZXh9ID0gc3RhdGljX2Nhc3Q8aW50NjRf
dD4oI3tjb25zdC52YWx1ZX0pOyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0J1dHRlcmZseS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVy
Zmx5LmgKaW5kZXggNDkzNTFjNzdjNTk4MzkwMzQyZjllYzYyZTBkZDExNTYzZTFlYzdlOC4uNGJk
ZGU0ZDA1YjM5NmQ0NzA3Mzc5Y2I2M2VkZDI5YTNmNmQxMmMzYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgKQEAgLTIwOSw3ICsyMDksNyBAQCBwdWJsaWM6CiAg
ICAgfQogICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZQcm9wZXJ0eVN0b3JhZ2Uo
KSB7IHJldHVybiAtc3RhdGljX2Nhc3Q8cHRyZGlmZl90PihzaXplb2YoSW5kZXhpbmdIZWFkZXIp
KTsgfQotICAgIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCisgICAgY29uc3Rl
eHByIHN0YXRpYyBpbnQgaW5kZXhPZlByb3BlcnR5U3RvcmFnZSgpCiAgICAgewogICAgICAgICBB
U1NFUlQoc2l6ZW9mKEluZGV4aW5nSGVhZGVyKSA9PSBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKTsK
ICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0
LmgKaW5kZXggY2E3NDI2NDI1NzFhYzQ0MmIyNGU3NGVmNDIzNWU4ZTkzZTA0Mjg1Mi4uNGMwZWJk
MWY2MTY1NzJkMDhhZmIzODViNmZlNTI5ZWI4Y2I3M2RiOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0xNTY0LDcgKzE1NjQsNyBAQCBpbmxpbmUgYm9vbCBK
U09iamVjdDo6cHV0RGlyZWN0KFZNJiB2bSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZQogICAgIHJldHVybiBwdXREaXJlY3RJbnRlcm5hbDxQdXRNb2RlRGVmaW5lT3du
UHJvcGVydHk+KHZtLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAwLCBzbG90KTsKIH0KIAotaW5saW5l
IHNpemVfdCBvZmZzZXRJbkJ1dHRlcmZseShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4
cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluQnV0dGVyZmx5KFByb3BlcnR5T2Zmc2V0IG9mZnNl
dCkKIHsKICAgICByZXR1cm4gb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKG9mZnNldCkgKyBCdXR0
ZXJmbHk6OmluZGV4T2ZQcm9wZXJ0eVN0b3JhZ2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5T2Zmc2V0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eU9mZnNldC5oCmluZGV4IGU3MDcyOWY3ZWMzNjEzNjU4MzE2
ZDljOWYzODM0NTNlNGI4Nzg2N2MuLjY5YWViYWFmNzg4OWM4ZTBhZGMxMjE1NDQ1YWI5NjQ3M2Q0
M2NlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
T2Zmc2V0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlPZmZz
ZXQuaApAQCAtMzcsMjYgKzM3LDI2IEBAIHN0YXRpYyBjb25zdGV4cHIgUHJvcGVydHlPZmZzZXQg
a25vd25Qb2x5UHJvdG9PZmZzZXQgPSAwOwogc3RhdGljX2Fzc2VydChrbm93blBvbHlQcm90b09m
ZnNldCA8IGZpcnN0T3V0T2ZMaW5lT2Zmc2V0LCAiV2UgYXNzdW1lIGluIGFsbCB0aGUgSklUcyB0
aGF0IHRoZSBwb2x5IHByb3RvIG9mZnNldCBpcyBhbiBpbmxpbmUgb2Zmc2V0Iik7CiAKIC8vIERl
Y2xhcmUgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYmVjYXVzZSB0aGV5IHRlbmQgdG8gZG8gZm9yd2Fy
ZCBjYWxscy4KLWlubGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGlu
ZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwot
aW5saW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHZvaWQg
dmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSk7Ci1pbmxp
bmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzSW5s
aW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBib29sIGlzT3V0T2ZMaW5lT2Zmc2V0
KFByb3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFBy
b3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5PdXRPZkxpbmVTdG9yYWdlKFBy
b3BlcnR5T2Zmc2V0KTsKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQ
cm9wZXJ0eU9mZnNldCk7Ci1pbmxpbmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JN
YXhPZmZzZXQoUHJvcGVydHlPZmZzZXQpOwotaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9y
TWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOwotCi1pbmxpbmUg
dm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5l
IHZvaWQgY2hlY2tPZmZzZXQoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSB2b2lk
IGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpOworY29uc3Rl
eHByIGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhw
ciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCwgaW50IGlubGluZUNh
cGFjaXR5KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc1ZhbGlkT2Zmc2V0KFByb3BlcnR5T2Zm
c2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNldChQcm9wZXJ0eU9mZnNl
dCk7Citjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNPdXRPZkxpbmVPZmZzZXQoUHJvcGVydHlPZmZz
ZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbklubGluZVN0b3JhZ2UoUHJv
cGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZzZXRJbk91dE9mTGlu
ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQpOworY29uc3RleHByIGlubGluZSBpbnRwdHJfdCBvZmZz
ZXRJblJlc3BlY3RpdmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0KTsKK2NvbnN0ZXhwciBpbmxpbmUg
c2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZzZXQp
OworY29uc3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZTbG90c0Zvck1heE9mZnNldChQcm9w
ZXJ0eU9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KTsKKworY29uc3RleHByIGlubGluZSB2b2lk
IGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICBVTlVTRURfUEFSQU0o
b2Zmc2V0KTsKICAgICBBU1NFUlQob2Zmc2V0ID49IGludmFsaWRPZmZzZXQpOwogfQogCi1pbmxp
bmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBh
Y2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCBjaGVja09mZnNldChQcm9wZXJ0eU9mZnNldCBv
ZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBVTlVTRURfUEFSQU0ob2Zmc2V0KTsK
ICAgICBVTlVTRURfUEFSQU0oaW5saW5lQ2FwYWNpdHkpOwpAQCAtNjYsNTggKzY2LDU4IEBAIGlu
bGluZSB2b2lkIGNoZWNrT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCwgaW50IGlubGluZUNh
cGFjaXR5KQogICAgICAgICB8fCBpc091dE9mTGluZU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW5s
aW5lIHZvaWQgdmFsaWRhdGVPZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQorY29uc3RleHBy
IGlubGluZSB2b2lkIHZhbGlkYXRlT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAg
ICBjaGVja09mZnNldChvZmZzZXQpOwogICAgIEFTU0VSVChpc1ZhbGlkT2Zmc2V0KG9mZnNldCkp
OwogfQogCi1pbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQs
IGludCBpbmxpbmVDYXBhY2l0eSkKK2NvbnN0ZXhwciBpbmxpbmUgdm9pZCB2YWxpZGF0ZU9mZnNl
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQsIGludCBpbmxpbmVDYXBhY2l0eSkKIHsKICAgICBjaGVj
a09mZnNldChvZmZzZXQsIGlubGluZUNhcGFjaXR5KTsKICAgICBBU1NFUlQoaXNWYWxpZE9mZnNl
dChvZmZzZXQpKTsKIH0KIAotaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGJvb2wgaXNWYWxpZE9mZnNldChQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gb2Zm
c2V0ICE9IGludmFsaWRPZmZzZXQ7CiB9CiAKLWlubGluZSBib29sIGlzSW5saW5lT2Zmc2V0KFBy
b3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgYm9vbCBpc0lubGluZU9mZnNl
dChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQob2Zmc2V0KTsKICAg
ICByZXR1cm4gb2Zmc2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQ7CiB9CiAKLWlubGluZSBib29s
IGlzT3V0T2ZMaW5lT2Zmc2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxp
bmUgYm9vbCBpc091dE9mTGluZU9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAg
Y2hlY2tPZmZzZXQob2Zmc2V0KTsKICAgICByZXR1cm4gIWlzSW5saW5lT2Zmc2V0KG9mZnNldCk7
CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKFByb3BlcnR5T2Zmc2V0
IG9mZnNldCkKK2NvbnN0ZXhwciBpbmxpbmUgaW50cHRyX3Qgb2Zmc2V0SW5JbmxpbmVTdG9yYWdl
KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKIHsKICAgICB2YWxpZGF0ZU9mZnNldChvZmZzZXQpOwog
ICAgIEFTU0VSVChpc0lubGluZU9mZnNldChvZmZzZXQpKTsKICAgICByZXR1cm4gb2Zmc2V0Owog
fQogCi1pbmxpbmUgc2l6ZV90IG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShQcm9wZXJ0eU9mZnNl
dCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluT3V0T2ZMaW5lU3Rv
cmFnZShQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgdmFsaWRhdGVPZmZzZXQob2Zmc2V0
KTsKICAgICBBU1NFUlQoaXNPdXRPZkxpbmVPZmZzZXQob2Zmc2V0KSk7CiAgICAgcmV0dXJuIC1z
dGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNldCAtIGZpcnN0T3V0T2ZMaW5lT2Zmc2V0KSAtIDE7
CiB9CiAKLWlubGluZSBzaXplX3Qgb2Zmc2V0SW5SZXNwZWN0aXZlU3RvcmFnZShQcm9wZXJ0eU9m
ZnNldCBvZmZzZXQpCitjb25zdGV4cHIgaW5saW5lIGludHB0cl90IG9mZnNldEluUmVzcGVjdGl2
ZVN0b3JhZ2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0KQogewogICAgIGlmIChpc0lubGluZU9mZnNl
dChvZmZzZXQpKQogICAgICAgICByZXR1cm4gb2Zmc2V0SW5JbmxpbmVTdG9yYWdlKG9mZnNldCk7
CiAgICAgcmV0dXJuIG9mZnNldEluT3V0T2ZMaW5lU3RvcmFnZShvZmZzZXQpOwogfQogCi1pbmxp
bmUgc2l6ZV90IG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQoUHJvcGVydHlPZmZz
ZXQgb2Zmc2V0KQorY29uc3RleHByIGlubGluZSBzaXplX3QgbnVtYmVyT2ZPdXRPZkxpbmVTbG90
c0Zvck1heE9mZnNldChQcm9wZXJ0eU9mZnNldCBvZmZzZXQpCiB7CiAgICAgY2hlY2tPZmZzZXQo
b2Zmc2V0KTsKICAgICBpZiAob2Zmc2V0IDwgZmlyc3RPdXRPZkxpbmVPZmZzZXQpCkBAIC0xMjUs
NyArMTI1LDcgQEAgaW5saW5lIHNpemVfdCBudW1iZXJPZk91dE9mTGluZVNsb3RzRm9yTWF4T2Zm
c2V0KFByb3BlcnR5T2Zmc2V0IG9mZnNldCkKICAgICByZXR1cm4gb2Zmc2V0IC0gZmlyc3RPdXRP
ZkxpbmVPZmZzZXQgKyAxOwogfQogCi1pbmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhP
ZmZzZXQoUHJvcGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdHkpCitjb25zdGV4
cHIgaW5saW5lIHNpemVfdCBudW1iZXJPZlNsb3RzRm9yTWF4T2Zmc2V0KFByb3BlcnR5T2Zmc2V0
IG9mZnNldCwgaW50IGlubGluZUNhcGFjaXR5KQogewogICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwg
aW5saW5lQ2FwYWNpdHkpOwogICAgIGlmIChvZmZzZXQgPCBpbmxpbmVDYXBhY2l0eSkKQEAgLTEz
Myw3ICsxMzMsNyBAQCBpbmxpbmUgc2l6ZV90IG51bWJlck9mU2xvdHNGb3JNYXhPZmZzZXQoUHJv
cGVydHlPZmZzZXQgb2Zmc2V0LCBpbnQgaW5saW5lQ2FwYWNpdAogICAgIHJldHVybiBpbmxpbmVD
YXBhY2l0eSArIG51bWJlck9mT3V0T2ZMaW5lU2xvdHNGb3JNYXhPZmZzZXQob2Zmc2V0KTsKIH0K
IAotaW5saW5lIFByb3BlcnR5T2Zmc2V0IG9mZnNldEZvclByb3BlcnR5TnVtYmVyKGludCBwcm9w
ZXJ0eU51bWJlciwgaW50IGlubGluZUNhcGFjaXR5KQorY29uc3RleHByIGlubGluZSBQcm9wZXJ0
eU9mZnNldCBvZmZzZXRGb3JQcm9wZXJ0eU51bWJlcihpbnQgcHJvcGVydHlOdW1iZXIsIGludCBp
bmxpbmVDYXBhY2l0eSkKIHsKICAgICBQcm9wZXJ0eU9mZnNldCBvZmZzZXQgPSBwcm9wZXJ0eU51
bWJlcjsKICAgICBpZiAob2Zmc2V0ID49IGlubGluZUNhcGFjaXR5KSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>